Browse Source

Porting usage of possibleLengths from Java to Javascript (#1359)

pull/1365/head
lararennie 9 years ago
committed by GitHub
parent
commit
5605b8ae67
4 changed files with 172 additions and 131 deletions
  1. +48
    -48
      javascript/i18n/phonenumbers/demo-compiled.js
  2. +75
    -37
      javascript/i18n/phonenumbers/metadatafortesting.js
  3. +49
    -46
      javascript/i18n/phonenumbers/phonenumberutil.js
  4. BIN
      tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar

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

@ -6,10 +6,10 @@ else if("function"==b&&"undefined"==typeof a.call)return"object";return b}functi
function na(a,b,c){if(null==b)c.push("null");else{if("object"==typeof b){if("array"==da(b)){var d=b;b=d.length;c.push("[");for(var e="",f=0;f<b;f++)c.push(e),na(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),pa(d,c),c.push(":"),na(a,f,c),e=","));c.push("}");return}}switch(typeof b){case "string":pa(b,c);break;case "number":c.push(isFinite(b)&& function na(a,b,c){if(null==b)c.push("null");else{if("object"==typeof b){if("array"==da(b)){var d=b;b=d.length;c.push("[");for(var e="",f=0;f<b;f++)c.push(e),na(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),pa(d,c),c.push(":"),na(a,f,c),e=","));c.push("}");return}}switch(typeof b){case "string":pa(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 qa={'"':'\\"',"\\":"\\\\","/":"\\/","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\u000b"},ra=/\uffff/.test("\uffff")?/[\\\"\x00-\x1f\x7f-\uffff]/g:/[\\\"\x00-\x1f\x7f-\xff]/g; !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 qa={'"':'\\"',"\\":"\\\\","/":"\\/","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\u000b"},ra=/\uffff/.test("\uffff")?/[\\\"\x00-\x1f\x7f-\uffff]/g:/[\\\"\x00-\x1f\x7f-\xff]/g;
function pa(a,b){b.push('"',a.replace(ra,function(a){var b=qa[a];b||(b="\\u"+(a.charCodeAt(0)|65536).toString(16).substr(1),qa[a]=b);return b}),'"')};function sa(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 ta:case ua:case va:case wa:case xa:case ya:case za:this.i=!0}this.g=b.defaultValue}var za=1,ya=2,ta=3,ua=4,va=6,wa=16,xa=18;function Aa(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 Ba(a){a=ka(a.a);ia(a,function(a,c){return a.a-c.a});return a}function Ca(a,b){return la(a.a,function(a){return a.l==b})||null};function q(){this.b={};this.f=this.h().a;this.a=this.g=null}function Da(a,b){for(var c in a.b){var d=Number(c);a.f[d]||b.call(a,d,a.b[c])}}q.prototype.has=function(a){return r(this,a.a)};q.prototype.get=function(a,b){return t(this,a.a,b)};q.prototype.set=function(a,b){u(this,a.a,b)}; function pa(a,b){b.push('"',a.replace(ra,function(a){var b=qa[a];b||(b="\\u"+(a.charCodeAt(0)|65536).toString(16).substr(1),qa[a]=b);return b}),'"')};function sa(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 ta:case ua:case va:case wa:case xa:case ya:case za:this.i=!0}this.g=b.defaultValue}var za=1,ya=2,ta=3,ua=4,va=6,wa=16,xa=18;function Aa(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 Ba(a){a=ka(a.a);ia(a,function(a,c){return a.a-c.a});return a}function Ca(a,b){return la(a.a,function(a){return a.l==b})||null};function q(){this.b={};this.f=this.h().a;this.a=this.g=null}function Da(a,b){for(var c in a.b){var d=Number(c);a.f[d]||b.call(a,d,a.b[c])}}q.prototype.has=function(a){return r(this,a.a)};q.prototype.get=function(a,b){return t(this,a.a,b)};q.prototype.set=function(a,b){u(this,a.a,b)};
function Ea(a,b){for(var c=Ba(a.h()),d=0;d<c.length;d++){var e=c[d],f=e.a;if(r(b,f)){a.a&&delete a.a[e.a];var g=11==e.b||10==e.b;if(e.f)for(var e=v(b,f)||[],h=0;h<e.length;h++)Fa(a,f,g?e[h].clone():e[h]);else e=v(b,f),g?(g=v(a,f))?Ea(g,e):u(a,f,e.clone()):u(a,f,e)}}}q.prototype.clone=function(){var a=new this.constructor;a!=this&&(a.b={},a.a&&(a.a={}),Ea(a,this));return a};function r(a,b){return null!=a.b[b]}
function v(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 t(a,b,c){var d=v(a,b);return a.f[b].f?d[c||0]:d}function w(a,b){var c;if(r(a,b))c=t(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 a.f[b].f?r(a,b)?a.b[b].length:0:r(a,b)?1:0}function u(a,b,c){a.b[b]=c;a.a&&(a.a[b]=c)}function Fa(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 y(a,b){var c=[],d;for(d in b)0!=d&&c.push(new sa(d,b[d]));return new Aa(a,c)};function z(){}z.prototype.b=function(a,b){return 11==a.b||10==a.b?this.g(b):"number"!=typeof b||isFinite(b)?b:b.toString()};z.prototype.f=function(a,b){var c=new a.b;this.i(c,b);return c};
z.prototype.a=function(a,b){if(11==a.b||10==a.b)return b instanceof q?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 A(a,b){this.j=a;this.l=b}l(A,z);A.prototype.g=function(a){for(var b=Ba(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<x(a,e.a);f++)g.push(this.b(e,a.get(e,f)))}else c[f]=this.b(e,a.get(e))}Da(a,function(a,b){c[a]=b});return c};A.prototype.b=function(a,b){return this.l&&8==a.b&&"boolean"==typeof b?b?1:0:A.ha.b.call(this,a,b)};A.prototype.a=function(a,b){return 8==a.b&&"number"==typeof b?!!b:A.ha.a.call(this,a,b)};
function Ea(a,b){for(var c=Ba(a.h()),d=0;d<c.length;d++){var e=c[d],f=e.a;if(r(b,f)){a.a&&delete a.a[e.a];var g=11==e.b||10==e.b;if(e.f)for(var e=v(b,f),h=0;h<e.length;h++)Fa(a,f,g?e[h].clone():e[h]);else e=w(b,f),g?(g=w(a,f))?Ea(g,e):u(a,f,e.clone()):u(a,f,e)}}}q.prototype.clone=function(){var a=new this.constructor;a!=this&&(a.b={},a.a&&(a.a={}),Ea(a,this));return a};function r(a,b){return null!=a.b[b]}
function w(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 t(a,b,c){var d=w(a,b);return a.f[b].f?d[c||0]:d}function x(a,b){var c;if(r(a,b))c=t(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 v(a,b){return w(a,b)||[]}function y(a,b){return a.f[b].f?r(a,b)?a.b[b].length:0:r(a,b)?1:0}function u(a,b,c){a.b[b]=c;a.a&&(a.a[b]=c)}function Fa(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 sa(d,b[d]));return new Aa(a,c)};function z(){}z.prototype.b=function(a,b){return 11==a.b||10==a.b?this.g(b):"number"!=typeof b||isFinite(b)?b:b.toString()};z.prototype.f=function(a,b){var c=new a.b;this.i(c,b);return c};
z.prototype.a=function(a,b){if(11==a.b||10==a.b)return b instanceof q?b:this.f(a.j.prototype.h(),b);if(14==a.b){if(k(b)&&Ia.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||Ia.test(b)))return Number(b);return b};var Ia=/^-?[0-9]+$/;function A(a,b){this.j=a;this.l=b}l(A,z);A.prototype.g=function(a){for(var b=Ba(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<y(a,e.a);f++)g.push(this.b(e,a.get(e,f)))}else c[f]=this.b(e,a.get(e))}Da(a,function(a,b){c[a]=b});return c};A.prototype.b=function(a,b){return this.l&&8==a.b&&"boolean"==typeof b?b?1:0:A.ha.b.call(this,a,b)};A.prototype.a=function(a,b){return 8==a.b&&"number"==typeof b?!!b:A.ha.a.call(this,a,b)};
A.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:Ca(c,d))if(e.f)for(g=0;g<f.length;g++){var h=this.a(e,f[g]);Fa(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]):ga("Failed to find field: "+e)}};function B(a,b){null!=a&&this.a.apply(this,arguments)}B.prototype.b="";B.prototype.set=function(a){this.b=""+a};B.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 C(a){a.b=""}B.prototype.toString=function(){return this.b};/* A.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:Ca(c,d))if(e.f)for(g=0;g<f.length;g++){var h=this.a(e,f[g]);Fa(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]):ga("Failed to find field: "+e)}};function B(a,b){null!=a&&this.a.apply(this,arguments)}B.prototype.b="";B.prototype.set=function(a){this.b=""+a};B.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 C(a){a.b=""}B.prototype.toString=function(){return this.b};/*
Protocol Buffer 2 Copyright 2008 Google Inc. Protocol Buffer 2 Copyright 2008 Google Inc.
@ -28,14 +28,14 @@ A.prototype.i=function(a,b){var c=a.h(),d;for(d in b){var e,f=b[d],g=!/[^0-9]/.t
See the License for the specific language governing permissions and See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
*/ */
function E(){q.call(this)}l(E,q);var Ia=null;function F(){q.call(this)}l(F,q);var Ja=null;function G(){q.call(this)}l(G,q);var Ka=null;
E.prototype.h=function(){var a=Ia;a||(Ia=a=y(E,{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,type:Boolean},5:{name:"domestic_carrier_code_formatting_rule",c:9,type:String}}));return a};E.h=E.prototype.h;
F.prototype.h=function(){var a=Ja;a||(Ja=a=y(F,{0:{name:"PhoneNumberDesc",ba:"i18n.phonenumbers.PhoneNumberDesc"},2:{name:"national_number_pattern",c:9,type:String},3:{name:"possible_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},7:{name:"national_number_matcher_data",c:12,type:String},8:{name:"possible_number_matcher_data",c:12,type:String}}));return a};F.h=F.prototype.h;
G.prototype.h=function(){var a=Ka;a||(Ka=a=y(G,{0:{name:"PhoneMetadata",ba:"i18n.phonenumbers.PhoneMetadata"},1:{name:"general_desc",c:11,type:F},2:{name:"fixed_line",c:11,type:F},3:{name:"mobile",c:11,type:F},4:{name:"toll_free",c:11,type:F},5:{name:"premium_rate",c:11,type:F},6:{name:"shared_cost",c:11,type:F},7:{name:"personal_number",c:11,type:F},8:{name:"voip",c:11,type:F},21:{name:"pager",c:11,type:F},25:{name:"uan",c:11,type:F},27:{name:"emergency",c:11,type:F},28:{name:"voicemail",c:11,type:F},
function E(){q.call(this)}l(E,q);var Ja=null;function F(){q.call(this)}l(F,q);var Ka=null;function G(){q.call(this)}l(G,q);var La=null;
E.prototype.h=function(){var a=Ja;a||(Ja=a=Ha(E,{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,type:Boolean},5:{name:"domestic_carrier_code_formatting_rule",c:9,type:String}}));return a};E.h=E.prototype.h;
F.prototype.h=function(){var a=Ka;a||(Ka=a=Ha(F,{0:{name:"PhoneNumberDesc",ba:"i18n.phonenumbers.PhoneNumberDesc"},2:{name:"national_number_pattern",c:9,type:String},3:{name:"possible_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},7:{name:"national_number_matcher_data",c:12,type:String},8:{name:"possible_number_matcher_data",c:12,type:String}}));return a};F.h=F.prototype.h;
G.prototype.h=function(){var a=La;a||(La=a=Ha(G,{0:{name:"PhoneMetadata",ba:"i18n.phonenumbers.PhoneMetadata"},1:{name:"general_desc",c:11,type:F},2:{name:"fixed_line",c:11,type:F},3:{name:"mobile",c:11,type:F},4:{name:"toll_free",c:11,type:F},5:{name:"premium_rate",c:11,type:F},6:{name:"shared_cost",c:11,type:F},7:{name:"personal_number",c:11,type:F},8:{name:"voip",c:11,type:F},21:{name:"pager",c:11,type:F},25:{name:"uan",c:11,type:F},27:{name:"emergency",c:11,type:F},28:{name:"voicemail",c:11,type:F},
24:{name:"no_international_dialling",c:11,type:F},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, 24:{name:"no_international_dialling",c:11,type:F},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:E},20:{name:"intl_number_format",u:!0,c:11,type:E},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};G.h=G.prototype.h;function H(){q.call(this)}var La;l(H,q);var Ma={la:1,ka:5,ja:10,ia:20};
H.prototype.h=function(){La||(La=y(H,{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:1,type:Ma},7:{name:"preferred_domestic_carrier_code",c:9,type:String}}));
return La};H.ctor=H;H.ctor.h=H.prototype.h;function Na(){}l(Na,z);Na.prototype.f=function(a,b){var c=new a.b;c.g=this;c.b=b;c.a={};return c};Na.prototype.i=function(){throw Error("Unimplemented");};function I(){}l(I,Na);I.prototype.g=function(a){for(var b=Ba(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<x(a,e.a);g++)c[f][g]=this.b(e,a.get(e,g))}else c[f]=this.b(e,a.get(e))}}Da(a,function(a,b){c[a]=b});return c};I.prototype.b=function(a,b){return 8==a.b?b?1:0:z.prototype.b.apply(this,arguments)};I.prototype.a=function(a,b){return 8==a.b?!!b:z.prototype.a.apply(this,arguments)};/*
type:Boolean},19:{name:"number_format",u:!0,c:11,type:E},20:{name:"intl_number_format",u:!0,c:11,type:E},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};G.h=G.prototype.h;function H(){q.call(this)}var Ma;l(H,q);var Na={la:1,ka:5,ja:10,ia:20};
H.prototype.h=function(){Ma||(Ma=Ha(H,{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:1,type:Na},7:{name:"preferred_domestic_carrier_code",c:9,type:String}}));
return Ma};H.ctor=H;H.ctor.h=H.prototype.h;function Oa(){}l(Oa,z);Oa.prototype.f=function(a,b){var c=new a.b;c.g=this;c.b=b;c.a={};return c};Oa.prototype.i=function(){throw Error("Unimplemented");};function I(){}l(I,Oa);I.prototype.g=function(a){for(var b=Ba(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<y(a,e.a);g++)c[f][g]=this.b(e,a.get(e,g))}else c[f]=this.b(e,a.get(e))}}Da(a,function(a,b){c[a]=b});return c};I.prototype.b=function(a,b){return 8==a.b?b?1:0:z.prototype.b.apply(this,arguments)};I.prototype.a=function(a,b){return 8==a.b?!!b:z.prototype.a.apply(this,arguments)};/*
Copyright (C) 2010 The Libphonenumber Authors Copyright (C) 2010 The Libphonenumber Authors
@ -55,7 +55,7 @@ var J={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"], 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"],385:["HR"],386:["SI"], 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"],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"], 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"]},Oa={AC:[,[,,"[46]\\d{4}|[01589]\\d{5}","\\d{5,6}",,
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:[,[,,"[46]\\d{4}|[01589]\\d{5}","\\d{5,6}",,
,,,,[5,6]],[,,"6[2-467]\\d{3}","\\d{5}",,,"62889",,,[5]],[,,"4\\d{4}","\\d{5}",,,"40123",,,[5]],[,,"NA","NA",,,,,,[-1]],[,,"NA","NA",,,,,,[-1]],[,,"NA","NA",,,,,,[-1]],[,,"NA","NA",,,,,,[-1]],[,,"NA","NA",,,,,,[-1]],"AC",247,"00",,,,,,,,,,[,,"NA","NA",,,,,,[-1]],,,[,,"NA","NA",,,,,,[-1]],[,,"[01589]\\d{5}","\\d{6}",,,"542011",,,[6]],,,[,,"NA","NA",,,,,,[-1]]],AD:[,[,,"(?:[346-9]|180)\\d{5}","\\d{6,8}",,,,,,[6,8]],[,,"[78]\\d{5}","\\d{6}",,,"712345",,,[6]],[,,"[346]\\d{5}","\\d{6}",,,"312345",,,[6]], ,,,,[5,6]],[,,"6[2-467]\\d{3}","\\d{5}",,,"62889",,,[5]],[,,"4\\d{4}","\\d{5}",,,"40123",,,[5]],[,,"NA","NA",,,,,,[-1]],[,,"NA","NA",,,,,,[-1]],[,,"NA","NA",,,,,,[-1]],[,,"NA","NA",,,,,,[-1]],[,,"NA","NA",,,,,,[-1]],"AC",247,"00",,,,,,,,,,[,,"NA","NA",,,,,,[-1]],,,[,,"NA","NA",,,,,,[-1]],[,,"[01589]\\d{5}","\\d{6}",,,"542011",,,[6]],,,[,,"NA","NA",,,,,,[-1]]],AD:[,[,,"(?:[346-9]|180)\\d{5}","\\d{6,8}",,,,,,[6,8]],[,,"[78]\\d{5}","\\d{6}",,,"712345",,,[6]],[,,"[346]\\d{5}","\\d{6}",,,"312345",,,[6]],
[,,"180[02]\\d{4}","\\d{8}",,,"18001234",,,[8]],[,,"9\\d{5}","\\d{6}",,,"912345",,,[6]],[,,"NA","NA",,,,,,[-1]],[,,"NA","NA",,,,,,[-1]],[,,"NA","NA",,,,,,[-1]],"AD",376,"00",,,,,,,,[[,"(\\d{3})(\\d{3})","$1 $2",["[346-9]"]],[,"(180[02])(\\d{4})","$1 $2",["1"]]],,[,,"NA","NA",,,,,,[-1]],,,[,,"NA","NA",,,,,,[-1]],[,,"NA","NA",,,,,,[-1]],,,[,,"NA","NA",,,,,,[-1]]],AE:[,[,,"[2-79]\\d{7,8}|800\\d{2,9}","\\d{5,12}",,,,,,[5,6,7,8,9,10,11,12]],[,,"[2-4679][2-8]\\d{6}","\\d{7,8}",,,"22345678",,,[8]],[,,"5[024-6]\\d{7}", [,,"180[02]\\d{4}","\\d{8}",,,"18001234",,,[8]],[,,"9\\d{5}","\\d{6}",,,"912345",,,[6]],[,,"NA","NA",,,,,,[-1]],[,,"NA","NA",,,,,,[-1]],[,,"NA","NA",,,,,,[-1]],"AD",376,"00",,,,,,,,[[,"(\\d{3})(\\d{3})","$1 $2",["[346-9]"]],[,"(180[02])(\\d{4})","$1 $2",["1"]]],,[,,"NA","NA",,,,,,[-1]],,,[,,"NA","NA",,,,,,[-1]],[,,"NA","NA",,,,,,[-1]],,,[,,"NA","NA",,,,,,[-1]]],AE:[,[,,"[2-79]\\d{7,8}|800\\d{2,9}","\\d{5,12}",,,,,,[5,6,7,8,9,10,11,12]],[,,"[2-4679][2-8]\\d{6}","\\d{7,8}",,,"22345678",,,[8]],[,,"5[024-6]\\d{7}",
"\\d{9}",,,"501234567",,,[9]],[,,"400\\d{6}|800\\d{2,9}","\\d{5,12}",,,"800123456"],[,,"900[02]\\d{5}","\\d{9}",,,"900234567",,,[9]],[,,"700[05]\\d{5}","\\d{9}",,,"700012345",,,[9]],[,,"NA","NA",,,,,,[-1]],[,,"NA","NA",,,,,,[-1]],"AE",971,"00","0",,,"0",,,,[[,"([2-4679])(\\d{3})(\\d{4})","$1 $2 $3",["[2-4679][2-8]"],"0$1"],[,"(5\\d)(\\d{3})(\\d{4})","$1 $2 $3",["5"],"0$1"],[,"([479]00)(\\d)(\\d{5})","$1 $2 $3",["[479]0"],"$1"],[,"([68]00)(\\d{2,9})","$1 $2",["60|8"],"$1"]],,[,,"NA","NA",,,,,,[-1]], "\\d{9}",,,"501234567",,,[9]],[,,"400\\d{6}|800\\d{2,9}","\\d{5,12}",,,"800123456"],[,,"900[02]\\d{5}","\\d{9}",,,"900234567",,,[9]],[,,"700[05]\\d{5}","\\d{9}",,,"700012345",,,[9]],[,,"NA","NA",,,,,,[-1]],[,,"NA","NA",,,,,,[-1]],"AE",971,"00","0",,,"0",,,,[[,"([2-4679])(\\d{3})(\\d{4})","$1 $2 $3",["[2-4679][2-8]"],"0$1"],[,"(5\\d)(\\d{3})(\\d{4})","$1 $2 $3",["5"],"0$1"],[,"([479]00)(\\d)(\\d{5})","$1 $2 $3",["[479]0"],"$1"],[,"([68]00)(\\d{2,9})","$1 $2",["60|8"],"$1"]],,[,,"NA","NA",,,,,,[-1]],
@ -470,39 +470,39 @@ TO:[,[,,"[02-8]\\d{4,6}","\\d{5,7}",,,,,,[5,7]],[,,"(?:2\\d|3[1-8]|4[1-4]|[56]0|
limitations under the License. limitations under the License.
*/ */
function K(){this.a={}}K.a=function(){return K.b?K.b:K.b=new K}; function K(){this.a={}}K.a=function(){return K.b?K.b:K.b=new K};
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"},Pa={0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",
7:"7",8:"8",9:"9","+":"+","*":"*"},Qa={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"},Ra=/[\d]+(?:[~\u2053\u223C\uFF5E][\d]+)?/,Sa=RegExp("[+\uff0b]+"),M=RegExp("^[+\uff0b]+"),Ta=RegExp("([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9])"),Ua=RegExp("[+\uff0b0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]"),Va=/[\\\/] *x/,Wa=RegExp("[^0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9A-Za-z#]+$"),Xa=/(?:.*?[A-Za-z]){3}.*/,Ya=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?|[,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"),Za=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?|[,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=/(\$\d)/,ab=/\$NP/,bb=/\$FG/,cb=/\$CC/,db=/^\(?\$1\)?$/;function fb(a){var b=a.search(Ua);0<=b?(a=a.substring(b),a=a.replace(Wa,""),b=a.search(Va),0<=b&&(a=a.substring(0,b))):a="";return a}function gb(a){return 2>a.length?!1:N(Za,a)}function hb(a){return N(Xa,a)?O(a,Qa):O(a,L)}function ib(a){var b=hb(a.toString());C(a);a.a(b)}function O(a,b){for(var c=new B,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 jb(a){return null!=a&&isNaN(a)&&a.toUpperCase()in Oa}function Q(a,b,c){if(0==t(b,2)&&r(b,5)){var d=w(b,5);if(0<d.length)return d}var d=w(b,1),e=R(b);if(0==c)return S(d,0,e,"");if(!(d in J))return e;a=T(a,d,U(d));b=kb(b,a,c);e=lb(e,a,c);return S(d,c,e,b)}function mb(a,b,c){var d=w(b,1),e=R(b);if(!(d in J))return e;a=T(a,d,U(d));b=kb(b,a,2);c=lb(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 nb(a,b,c){if(!jb(c))return Q(a,b,1);var d=w(b,1),e=R(b);if(!(d in J))return e;if(1==d){if(null!=c&&0<=ha(J[1],c.toUpperCase()))return d+" "+Q(a,b,2)}else if(d==ob(a,c))return Q(a,b,2);var f=V(a,c),g=w(f,11);c="";N(Ra,g)?c=g:r(f,17)&&(c=w(f,17));a=T(a,d,U(d));e=lb(e,a,1);b=kb(b,a,1);return 0<c.length?c+" "+d+" "+e+b:S(d,1,e,b)}
function pb(a,b,c){var d;if(d=r(b,5)){if(d=r(b,4))d=w(b,1),d=T(a,d,U(d)),d=!(d&&w(d,26));if(!d){d=w(b,1);if(d=T(a,d,U(d))){var e=R(b);d=!!qb(v(d,19)||[],e)}else d=!1;d=!d}}if(d)return w(b,5);if(!r(b,6))return Q(a,b,2);switch(t(b,6)){case 1:a=Q(a,b,1);break;case 5:a=nb(a,b,c);break;case 10:a=Q(a,b,1).substring(1);break;default:d=U(w(b,1));var f;(c=V(a,d))?(c=w(c,12),f=c.length?c=c.replace("~",""):null):f=null;c=Q(a,b,2);if(null!=f&&f.length){var g;a:{e=w(b,5);e=O(e,L);if(!e.lastIndexOf(f,0))try{g=
rb(a,sb(a,e.substring(f.length),d,!1));break a}catch(h){}g=!1}if(g)a=c;else if(g=V(a,d),d=R(b),g=qb(v(g,19)||[],d))if(d=w(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(),Ga(g,4),d=[g],g=w(b,1),c=R(b),g in J){a=T(a,g,U(g));if(e=qb(d,c))d=e.clone(),e=w(e,4),0<e.length&&(f=w(a,12),0<f.length?(e=e.replace(ab,f).replace(bb,"$1"),u(d,4,e)):Ga(d,4)),c=tb(c,d,2);a=kb(b,a,2);a=S(g,2,c,a)}else a=c;else a=c;else a=c}else a=c}b=w(b,5);null!=a&&0<b.length&&(g=O(a,Pa),
c=O(b,Pa),g!=c&&(a=b));return a}function R(a){var b=""+t(a,2);return r(a,4)&&t(a,4)?Array(w(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 lb(a,b,c,d){b=(v(b,20)||[]).length&&2!=c?v(b,20)||[]:v(b,19)||[];return(b=qb(b,a))?tb(a,b,c,d):a}
function qb(a,b){for(var c,d=a.length,e=0;e<d;++e){c=a[e];var f=x(c,3);if(!f||!b.search(t(c,3,f-1)))if(f=new RegExp(t(c,1)),N(f,b))return c}return null}
function tb(a,b,c,d){var e=w(b,2),f=new RegExp(t(b,1)),g=w(b,5);2==c&&null!=d&&0<d.length&&0<g.length?(b=g.replace(cb,d),e=e.replace($a,b),a=a.replace(f,e)):(b=w(b,4),a=2==c&&null!=b&&0<b.length?a.replace(f,e.replace($a,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 kb(a,b,c){return r(a,3)&&t(a,3).length?3==c?";ext="+t(a,3):r(b,13)?t(b,13)+w(a,3):" ext. "+w(a,3):""}function ub(a,b){return W(a,t(b,1))?W(a,t(b,5))?4:W(a,t(b,4))?3:W(a,t(b,6))?5:W(a,t(b,8))?6:W(a,t(b,7))?7:W(a,t(b,21))?8:W(a,t(b,25))?9:W(a,t(b,28))?10:W(a,t(b,2))?t(b,18)||W(a,t(b,3))?2:0:!t(b,18)&&W(a,t(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(G.h(),c);a.a[b]=c}return c}
function W(a,b){return N(w(b,3),a)&&N(w(b,2),a)}function rb(a,b){var c=vb(a,b);return wb(a,b,c)}function wb(a,b,c){var d=w(b,1),e=T(a,d,c);if(!e||"001"!=c&&d!=ob(a,c))return!1;a=R(b);return-1!=ub(a,e)}function vb(a,b){if(!b)return null;var c=w(b,1);if(c=J[c])if(1==c.length)c=c[0];else a:{for(var d=R(b),e,f=c.length,g=0;g<f;g++){e=c[g];var h=V(a,e);if(r(h,23)){if(!d.search(t(h,23))){c=e;break a}}else if(-1!=ub(d,h)){c=e;break a}}c=null}else c=null;return c}function U(a){return(a=J[a])?a[0]:"ZZ"}
function ob(a,b){var c=V(a,b);if(!c)throw"Invalid region code: "+b;return w(c,10)}function xb(a,b){return N(a,b)?0:b.search(a)?2:3}function yb(a,b){var c=R(b),d=w(b,1);if(!(d in J))return 1;d=w(t(T(a,d,U(d)),1),3);return xb(d,c)}function zb(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 J)return b.a(c.substring(f)),d;return 0}
function Ab(a,b,c,d,e){if(!a.length)return 0;a=new B(a);var f;b&&(f=t(b,11));null==f&&(f="NonMatch");var g=a.toString();if(g.length)if(M.test(g))g=g.replace(M,""),C(a),a.a(hb(g)),f=1;else{g=new RegExp(f);ib(a);f=a.toString();if(f.search(g))f=!1;else{var g=f.match(g)[0].length,h=f.substring(g).match(Ta);h&&null!=h[1]&&0<h[1].length&&"0"==O(h[1],L)?f=!1:(C(a),a.a(f.substring(g)),f=!0)}f=f?5:20}else f=20;d&&u(e,6,f);if(20!=f){if(2>=a.b.length)throw"Phone number too short after IDD";if(c=zb(a,c))return u(e,
1,c),c;throw"Invalid country calling code";}if(b&&(f=w(b,10),g=""+f,h=a.toString(),!h.lastIndexOf(g,0))){var m=new B(h.substring(g.length)),h=t(b,1),g=new RegExp(w(h,2));Bb(m,b,null);b=m.toString();h=w(h,3);if(!N(g,a.toString())&&N(g,b)||3==xb(h,a.toString()))return c.a(b),d&&u(e,6,10),u(e,1,f),f}u(e,1,0);return 0}
function Bb(a,b,c){var d=a.toString(),e=d.length,f=t(b,15);if(e&&null!=f&&f.length){var g=new RegExp("^(?:"+f+")");if(e=g.exec(d)){var f=new RegExp(w(t(b,1),2)),h=N(f,d),m=e.length-1;b=t(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 sb(a,b,c,d){if(null==b)throw"The string supplied did not seem to be a phone number";if(250<b.length)throw"The string supplied is too long to be a phone number";var e=new B,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&&(C(e),e.a(f.substring(0,g)));if(!gb(e.toString()))throw"The string supplied did not seem to be a phone number";
f=e.toString();if(!(jb(c)||null!=f&&0<f.length&&M.test(f)))throw"Invalid country calling code";f=new H;d&&u(f,5,b);a:{b=e.toString();g=b.search(Ya);if(0<=g&&gb(b.substring(0,g)))for(var h=b.match(Ya),m=h.length,D=1;D<m;++D)if(null!=h[D]&&0<h[D].length){C(e);e.a(b.substring(0,g));b=h[D];break a}b=""}0<b.length&&u(f,3,b);g=V(a,c);b=new B;h=0;m=e.toString();try{h=Ab(m,g,b,d,f)}catch(P){if("Invalid country calling code"==P&&M.test(m)){if(m=m.replace(M,""),h=Ab(m,g,b,d,f),!h)throw P;}else throw P;}h?(e=
U(h),e!=c&&(g=T(a,h,e))):(ib(e),b.a(e.toString()),null!=c?(h=w(g,10),u(f,1,h)):d&&Ga(f,6));if(2>b.b.length)throw"The string supplied is too short to be a phone number";g&&(a=new B,c=new B(b.toString()),Bb(c,g,a),e=c.toString(),g=w(t(g,1),3),2!=xb(g,e)&&(b=c,d&&u(f,7,a.toString())));d=b.toString();a=d.length;if(2>a)throw"The string supplied is too short to be a phone number";if(17<a)throw"The string supplied is too long to be a phone number";if(1<d.length&&"0"==d.charAt(0)){u(f,4,!0);for(a=1;a<d.length-
1&&"0"==d.charAt(a);)a++;1!=a&&u(f,8,a)}u(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 Cb(a){this.ca=RegExp("\u2008");this.ea="";this.m=new B;this.w="";this.i=new B;this.v=new B;this.j=!0;this.$=this.o=this.ga=!1;this.da=K.a();this.s=0;this.b=new B;this.aa=!1;this.l="";this.a=new B;this.f=[];this.fa=a;this.g=Db(this,this.fa)}var Eb=new G;u(Eb,11,"NA");
var Fb=/\[([^\[\]])*\]/g,Gb=/\d(?=[^,}][^,}])/g,Hb=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]*)+$"),Ib=/[- ]/;function Db(a,b){var c=jb(b)?ob(a.da,b):0;return(c=V(a.da,U(c)))?c:Eb}
function Jb(a){for(var b=a.f.length,c=0;c<b;++c){var d=a.f[c],e=w(d,1);if(a.w==e)return!1;var f;f=a;var g=d,h=w(g,1);if(-1!=h.indexOf("|"))f=!1;else{h=h.replace(Fb,"\\d");h=h.replace(Gb,"\\d");C(f.m);var m;m=f;var g=w(g,2),D="999999999999999".match(h)[0];D.length<m.a.b.length?m="":(m=D.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=Ib.test(t(d,4)),a.s=0,!0}return a.j=!1}
function Kb(a,b){for(var c=[],d=b.length-3,e=a.f.length,f=0;f<e;++f){var g=a.f[f];x(g,3)?(g=t(g,3,Math.min(d,x(g,3)-1)),b.search(g)||c.push(a.f[f])):c.push(a.f[f])}a.f=c}function Lb(a,b){a.ea=Mb(a,b);return a.ea}
function Mb(a,b){a.i.a(b);var c=b;if(Ta.test(c)||1==a.i.b.length&&Sa.test(c)){var c=b,d;"+"==c?(d=c,a.v.a(c)):(d=L[c],a.v.a(d),a.a.a(d));b=d}else a.j=!1,a.ga=!0;if(!a.j){if(!a.ga)if(Nb(a)){if(Ob(a))return Pb(a)}else if(0<a.l.length&&(c=a.a.toString(),C(a.a),a.a.a(a.l),a.a.a(c),c=a.b.toString(),d=c.lastIndexOf(a.l),C(a.b),a.b.a(c.substring(0,d))),a.l!=Qb(a))return a.b.a(" "),Pb(a);return a.i.toString()}switch(a.v.b.length){case 0:case 1:case 2:return a.i.toString();case 3:if(Nb(a))a.$=!0;else return a.l=
Qb(a),Rb(a);default:if(a.$)return Ob(a)&&(a.$=!1),a.b.toString()+a.a.toString();if(0<a.f.length){c=Sb(a,b);d=Tb(a);if(0<d.length)return d;Kb(a,a.a.toString());return Jb(a)?Ub(a):a.j?Vb(a,c):a.i.toString()}return Rb(a)}}function Pb(a){a.j=!0;a.$=!1;a.f=[];a.s=0;C(a.m);a.w="";return Rb(a)}function Tb(a){for(var b=a.a.toString(),c=a.f.length,d=0;d<c;++d){var e=a.f[d],f=w(e,1);if((new RegExp("^(?:"+f+")$")).test(b))return a.aa=Ib.test(t(e,4)),b=b.replace(new RegExp(f,"g"),t(e,2)),Vb(a,b)}return""}
function Vb(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 Rb(a){var b=a.a.toString();if(3<=b.length){for(var c=a.o&&0<x(a.g,20)?v(a.g,20)||[]:v(a.g,19)||[],d=c.length,e=0;e<d;++e){var f=c[e],g;(g=!r(a.g,12)||a.o||t(f,6))||(g=w(f,4),g=!g.length||db.test(g));g&&Hb.test(w(f,2))&&a.f.push(f)}Kb(a,b);b=Tb(a);return 0<b.length?b:Jb(a)?Ub(a):a.i.toString()}return Vb(a,b)}
function Ub(a){var b=a.a.toString(),c=b.length;if(0<c){for(var d="",e=0;e<c;e++)d=Sb(a,b.charAt(e));return a.j?Vb(a,d):a.i.toString()}return a.b.toString()}
function Qb(a){var b=a.a.toString(),c=0,d;1!=t(a.g,10)?d=!1:(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):r(a.g,15)&&(d=new RegExp("^(?:"+t(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))));C(a.a);a.a.a(b.substring(c));return b.substring(0,c)}
function Nb(a){var b=a.v.toString(),c=new RegExp("^(?:\\+|"+t(a.g,11)+")");return(c=b.match(c))&&null!=c[0]&&0<c[0].length?(a.o=!0,c=c[0].length,C(a.a),a.a.a(b.substring(c)),C(a.b),a.b.a(b.substring(0,c)),"+"!=b.charAt(0)&&a.b.a(" "),!0):!1}function Ob(a){if(!a.a.b.length)return!1;var b=new B,c=zb(a.a,b);if(!c)return!1;C(a.a);a.a.a(b.toString());b=U(c);"001"==b?a.g=V(a.da,""+c):b!=a.fa&&(a.g=Db(a,b));a.b.a(""+c).a(" ");a.l="";return!0}
function Sb(a,b){var c=a.m.toString();if(0<=c.substring(a.s).search(a.ca)){var d=c.search(a.ca),c=c.replace(a.ca,b);C(a.m);a.m.a(c);a.s=d;return c.substring(0,a.s+1)}1==a.f.length&&(a.j=!1);a.w="";return a.i.toString()};function Wb(){var a=p("phoneNumber").value,b=p("defaultCountry").value,c=p("carrierCode").value,d=new B;try{var e=K.a(),f;if(!jb(b)&&0<a.length&&"+"!=a.charAt(0))throw"Invalid country calling code";f=sb(e,a,b,!0);d.a("****Parsing Result:****\n");d.a(ma((new A(1)).g(f)));d.a("\n\n****Validation Results:****");var g=0==yb(e,f);d.a("\nResult from isPossibleNumber(): ");d.a(g);if(g){var h=rb(e,f);d.a("\nResult from isValidNumber(): ");d.a(h);h&&b&&"ZZ"!=b&&(d.a("\nResult from isValidNumberForRegion(): "),
d.a(wb(e,f,b)));d.a("\nPhone Number region: ");d.a(vb(e,f));d.a("\nResult from getNumberType(): ");var m;var D=vb(e,f),P=T(e,w(f,1),D);if(P){var Yb=R(f);m=ub(Yb,P)}else m=-1;switch(m){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(yb(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.")}d.a("\n\n****Formatting Results:**** ");d.a("\nE164 format: ");d.a(h?Q(e,f,0):"invalid");d.a("\nOriginal format: ");d.a(pb(e,f,b));d.a("\nNational format: ");d.a(Q(e,f,2));d.a("\nInternational format: ");d.a(h?Q(e,f,1):"invalid");d.a("\nOut-of-country format from US: ");d.a(h?nb(e,
f,"US"):"invalid");d.a("\nOut-of-country format from Switzerland: ");d.a(h?nb(e,f,"CH"):"invalid");0<c.length&&(d.a("\nNational format with carrier code: "),d.a(mb(e,f,c)));d.a("\n\n****AsYouTypeFormatter Results****");for(var Zb=new Cb(b),$b=a.length,b=0;b<$b;++b){var eb=a.charAt(b);d.a("\nChar entered: ");d.a(eb);d.a(" Output: ");d.a(Lb(Zb,eb))}}catch(ac){d.a("\n"+ac)}p("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 Xb;if(Xb=!X.length)Xb=void 0!==Wb;Xb?Y[Z]=Wb:Y[Z]?Y=Y[Z]:Y=Y[Z]={}};})();
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?|[,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?|[,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 gb(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 hb(a){return 2>a.length?!1:N($a,a)}function ib(a){return N(Ya,a)?O(a,Ra):O(a,L)}function jb(a){var b=ib(a.toString());C(a);a.a(b)}function O(a,b){for(var c=new B,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 null!=a&&isNaN(a)&&a.toUpperCase()in Pa}function Q(a,b,c){if(0==t(b,2)&&r(b,5)){var d=x(b,5);if(0<d.length)return d}var d=x(b,1),e=R(b);if(0==c)return S(d,0,e,"");if(!(d in J))return e;a=T(a,d,U(d));b=lb(b,a,c);e=mb(e,a,c);return S(d,c,e,b)}function nb(a,b,c){var d=x(b,1),e=R(b);if(!(d in J))return e;a=T(a,d,U(d));b=lb(b,a,2);c=mb(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 ob(a,b,c){if(!kb(c))return Q(a,b,1);var d=x(b,1),e=R(b);if(!(d in J))return e;if(1==d){if(null!=c&&0<=ha(J[1],c.toUpperCase()))return d+" "+Q(a,b,2)}else if(d==pb(a,c))return Q(a,b,2);var f=V(a,c),g=x(f,11);c="";N(Sa,g)?c=g:r(f,17)&&(c=x(f,17));a=T(a,d,U(d));e=mb(e,a,1);b=lb(b,a,1);return 0<c.length?c+" "+d+" "+e+b:S(d,1,e,b)}
function qb(a,b,c){var d;if(d=r(b,5)){if(d=r(b,4))d=x(b,1),d=T(a,d,U(d)),d=!(d&&x(d,26));if(!d){d=x(b,1);if(d=T(a,d,U(d))){var e=R(b);d=!!rb(v(d,19),e)}else d=!1;d=!d}}if(d)return x(b,5);if(!r(b,6))return Q(a,b,2);switch(t(b,6)){case 1:a=Q(a,b,1);break;case 5:a=ob(a,b,c);break;case 10:a=Q(a,b,1).substring(1);break;default:d=U(x(b,1));var f;(c=V(a,d))?(c=x(c,12),f=c.length?c=c.replace("~",""):null):f=null;c=Q(a,b,2);if(null!=f&&f.length){var g;a:{e=x(b,5);e=O(e,L);if(!e.lastIndexOf(f,0))try{g=sb(a,
tb(a,e.substring(f.length),d,!1));break a}catch(h){}g=!1}if(g)a=c;else if(g=V(a,d),d=R(b),g=rb(v(g,19),d))if(d=x(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(),Ga(g,4),d=[g],g=x(b,1),c=R(b),g in J){a=T(a,g,U(g));if(e=rb(d,c))d=e.clone(),e=x(e,4),0<e.length&&(f=x(a,12),0<f.length?(e=e.replace(bb,f).replace(cb,"$1"),u(d,4,e)):Ga(d,4)),c=ub(c,d,2);a=lb(b,a,2);a=S(g,2,c,a)}else a=c;else a=c;else a=c}else a=c}b=x(b,5);null!=a&&0<b.length&&(g=O(a,Qa),c=O(b,Qa),
g!=c&&(a=b));return a}function R(a){var b=""+t(a,2);return r(a,4)&&t(a,4)?Array(x(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 mb(a,b,c,d){b=v(b,20).length&&2!=c?v(b,20):v(b,19);return(b=rb(b,a))?ub(a,b,c,d):a}function rb(a,b){for(var c,d=a.length,e=0;e<d;++e){c=a[e];var f=y(c,3);if(!f||!b.search(t(c,3,f-1)))if(f=new RegExp(t(c,1)),N(f,b))return c}return null}
function ub(a,b,c,d){var e=x(b,2),f=new RegExp(t(b,1)),g=x(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=x(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 lb(a,b,c){return r(a,3)&&t(a,3).length?3==c?";ext="+t(a,3):r(b,13)?t(b,13)+x(a,3):" ext. "+x(a,3):""}function vb(a,b){return W(a,t(b,1))?W(a,t(b,5))?4:W(a,t(b,4))?3:W(a,t(b,6))?5:W(a,t(b,8))?6:W(a,t(b,7))?7:W(a,t(b,21))?8:W(a,t(b,25))?9:W(a,t(b,28))?10:W(a,t(b,2))?t(b,18)||W(a,t(b,3))?2:0:!t(b,18)&&W(a,t(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=Pa[b];if(!c)return null;c=(new I).f(G.h(),c);a.a[b]=c}return c}
function W(a,b){var c=a.length;return 0<y(b,9)&&-1==v(b,9).indexOf(c)?!1:N(x(b,2),a)}function sb(a,b){var c=wb(a,b);return xb(a,b,c)}function xb(a,b,c){var d=x(b,1),e=T(a,d,c);if(!e||"001"!=c&&d!=pb(a,c))return!1;a=R(b);return-1!=vb(a,e)}function wb(a,b){if(!b)return null;var c=x(b,1);if(c=J[c])if(1==c.length)c=c[0];else a:{for(var d=R(b),e,f=c.length,g=0;g<f;g++){e=c[g];var h=V(a,e);if(r(h,23)){if(!d.search(t(h,23))){c=e;break a}}else if(-1!=vb(d,h)){c=e;break a}}c=null}else c=null;return c}
function U(a){return(a=J[a])?a[0]:"ZZ"}function pb(a,b){var c=V(a,b);if(!c)throw"Invalid region code: "+b;return x(c,10)}function yb(a,b){var c=v(b,9),d=v(b,10),e=a.length;if(-1<d.indexOf(e))return 0;d=c[0];return d==e?0:d>e?2:c[c.length-1]<e?3:-1<c.indexOf(e)?0:3}function zb(a,b){var c=R(b),d=x(b,1);if(!(d in J))return 1;d=T(a,d,U(d));return yb(c,t(d,1))}
function Ab(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 J)return b.a(c.substring(f)),d;return 0}
function Bb(a,b,c,d,e){if(!a.length)return 0;a=new B(a);var f;b&&(f=t(b,11));null==f&&(f="NonMatch");var g=a.toString();if(g.length)if(M.test(g))g=g.replace(M,""),C(a),a.a(ib(g)),f=1;else{g=new RegExp(f);jb(a);f=a.toString();if(f.search(g))f=!1;else{var g=f.match(g)[0].length,h=f.substring(g).match(Ua);h&&null!=h[1]&&0<h[1].length&&"0"==O(h[1],L)?f=!1:(C(a),a.a(f.substring(g)),f=!0)}f=f?5:20}else f=20;d&&u(e,6,f);if(20!=f){if(2>=a.b.length)throw"Phone number too short after IDD";if(c=Ab(a,c))return u(e,
1,c),c;throw"Invalid country calling code";}if(b&&(f=x(b,10),g=""+f,h=a.toString(),!h.lastIndexOf(g,0))){var m=new B(h.substring(g.length)),g=t(b,1),h=new RegExp(x(g,2));Cb(m,b,null);b=m.toString();if(!N(h,a.toString())&&N(h,b)||3==yb(a.toString(),g))return c.a(b),d&&u(e,6,10),u(e,1,f),f}u(e,1,0);return 0}
function Cb(a,b,c){var d=a.toString(),e=d.length,f=t(b,15);if(e&&null!=f&&f.length){var g=new RegExp("^(?:"+f+")");if(e=g.exec(d)){var f=new RegExp(x(t(b,1),2)),h=N(f,d),m=e.length-1;b=t(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 tb(a,b,c,d){if(null==b)throw"The string supplied did not seem to be a phone number";if(250<b.length)throw"The string supplied is too long to be a phone number";var e=new B,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(gb(b));f=e.toString();g=f.indexOf(";isub=");0<g&&(C(e),e.a(f.substring(0,g)));if(!hb(e.toString()))throw"The string supplied did not seem to be a phone number";
f=e.toString();if(!(kb(c)||null!=f&&0<f.length&&M.test(f)))throw"Invalid country calling code";f=new H;d&&u(f,5,b);a:{b=e.toString();g=b.search(Za);if(0<=g&&hb(b.substring(0,g)))for(var h=b.match(Za),m=h.length,D=1;D<m;++D)if(null!=h[D]&&0<h[D].length){C(e);e.a(b.substring(0,g));b=h[D];break a}b=""}0<b.length&&u(f,3,b);b=V(a,c);g=new B;h=0;m=e.toString();try{h=Bb(m,b,g,d,f)}catch(P){if("Invalid country calling code"==P&&M.test(m)){if(m=m.replace(M,""),h=Bb(m,b,g,d,f),!h)throw P;}else throw P;}h?(e=
U(h),e!=c&&(b=T(a,h,e))):(jb(e),g.a(e.toString()),null!=c?(h=x(b,10),u(f,1,h)):d&&Ga(f,6));if(2>g.b.length)throw"The string supplied is too short to be a phone number";b&&(a=new B,c=new B(g.toString()),Cb(c,b,a),2!=yb(c.toString(),t(b,1))&&(g=c,d&&u(f,7,a.toString())));d=g.toString();a=d.length;if(2>a)throw"The string supplied is too short to be a phone number";if(17<a)throw"The string supplied is too long to be a phone number";if(1<d.length&&"0"==d.charAt(0)){u(f,4,!0);for(a=1;a<d.length-1&&"0"==
d.charAt(a);)a++;1!=a&&u(f,8,a)}u(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 Db(a){this.ca=RegExp("\u2008");this.ea="";this.m=new B;this.w="";this.i=new B;this.v=new B;this.j=!0;this.$=this.o=this.ga=!1;this.da=K.a();this.s=0;this.b=new B;this.aa=!1;this.l="";this.a=new B;this.f=[];this.fa=a;this.g=Eb(this,this.fa)}var Fb=new G;u(Fb,11,"NA");
var Gb=/\[([^\[\]])*\]/g,Hb=/\d(?=[^,}][^,}])/g,Ib=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]*)+$"),Jb=/[- ]/;function Eb(a,b){var c=kb(b)?pb(a.da,b):0;return(c=V(a.da,U(c)))?c:Fb}
function Kb(a){for(var b=a.f.length,c=0;c<b;++c){var d=a.f[c],e=x(d,1);if(a.w==e)return!1;var f;f=a;var g=d,h=x(g,1);if(-1!=h.indexOf("|"))f=!1;else{h=h.replace(Gb,"\\d");h=h.replace(Hb,"\\d");C(f.m);var m;m=f;var g=x(g,2),D="999999999999999".match(h)[0];D.length<m.a.b.length?m="":(m=D.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=Jb.test(t(d,4)),a.s=0,!0}return a.j=!1}
function Lb(a,b){for(var c=[],d=b.length-3,e=a.f.length,f=0;f<e;++f){var g=a.f[f];y(g,3)?(g=t(g,3,Math.min(d,y(g,3)-1)),b.search(g)||c.push(a.f[f])):c.push(a.f[f])}a.f=c}function Mb(a,b){a.ea=Nb(a,b);return a.ea}
function Nb(a,b){a.i.a(b);var c=b;if(Ua.test(c)||1==a.i.b.length&&Ta.test(c)){var c=b,d;"+"==c?(d=c,a.v.a(c)):(d=L[c],a.v.a(d),a.a.a(d));b=d}else a.j=!1,a.ga=!0;if(!a.j){if(!a.ga)if(Ob(a)){if(Pb(a))return Qb(a)}else if(0<a.l.length&&(c=a.a.toString(),C(a.a),a.a.a(a.l),a.a.a(c),c=a.b.toString(),d=c.lastIndexOf(a.l),C(a.b),a.b.a(c.substring(0,d))),a.l!=Rb(a))return a.b.a(" "),Qb(a);return a.i.toString()}switch(a.v.b.length){case 0:case 1:case 2:return a.i.toString();case 3:if(Ob(a))a.$=!0;else return a.l=
Rb(a),Sb(a);default:if(a.$)return Pb(a)&&(a.$=!1),a.b.toString()+a.a.toString();if(0<a.f.length){c=Tb(a,b);d=Ub(a);if(0<d.length)return d;Lb(a,a.a.toString());return Kb(a)?Vb(a):a.j?Wb(a,c):a.i.toString()}return Sb(a)}}function Qb(a){a.j=!0;a.$=!1;a.f=[];a.s=0;C(a.m);a.w="";return Sb(a)}function Ub(a){for(var b=a.a.toString(),c=a.f.length,d=0;d<c;++d){var e=a.f[d],f=x(e,1);if((new RegExp("^(?:"+f+")$")).test(b))return a.aa=Jb.test(t(e,4)),b=b.replace(new RegExp(f,"g"),t(e,2)),Wb(a,b)}return""}
function Wb(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 Sb(a){var b=a.a.toString();if(3<=b.length){for(var c=a.o&&0<y(a.g,20)?v(a.g,20):v(a.g,19),d=c.length,e=0;e<d;++e){var f=c[e],g;(g=!r(a.g,12)||a.o||t(f,6))||(g=x(f,4),g=!g.length||eb.test(g));g&&Ib.test(x(f,2))&&a.f.push(f)}Lb(a,b);b=Ub(a);return 0<b.length?b:Kb(a)?Vb(a):a.i.toString()}return Wb(a,b)}
function Vb(a){var b=a.a.toString(),c=b.length;if(0<c){for(var d="",e=0;e<c;e++)d=Tb(a,b.charAt(e));return a.j?Wb(a,d):a.i.toString()}return a.b.toString()}
function Rb(a){var b=a.a.toString(),c=0,d;1!=t(a.g,10)?d=!1:(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):r(a.g,15)&&(d=new RegExp("^(?:"+t(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))));C(a.a);a.a.a(b.substring(c));return b.substring(0,c)}
function Ob(a){var b=a.v.toString(),c=new RegExp("^(?:\\+|"+t(a.g,11)+")");return(c=b.match(c))&&null!=c[0]&&0<c[0].length?(a.o=!0,c=c[0].length,C(a.a),a.a.a(b.substring(c)),C(a.b),a.b.a(b.substring(0,c)),"+"!=b.charAt(0)&&a.b.a(" "),!0):!1}function Pb(a){if(!a.a.b.length)return!1;var b=new B,c=Ab(a.a,b);if(!c)return!1;C(a.a);a.a.a(b.toString());b=U(c);"001"==b?a.g=V(a.da,""+c):b!=a.fa&&(a.g=Eb(a,b));a.b.a(""+c).a(" ");a.l="";return!0}
function Tb(a,b){var c=a.m.toString();if(0<=c.substring(a.s).search(a.ca)){var d=c.search(a.ca),c=c.replace(a.ca,b);C(a.m);a.m.a(c);a.s=d;return c.substring(0,a.s+1)}1==a.f.length&&(a.j=!1);a.w="";return a.i.toString()};function Xb(){var a=p("phoneNumber").value,b=p("defaultCountry").value,c=p("carrierCode").value,d=new B;try{var e=K.a(),f;if(!kb(b)&&0<a.length&&"+"!=a.charAt(0))throw"Invalid country calling code";f=tb(e,a,b,!0);d.a("****Parsing Result:****\n");d.a(ma((new A(1)).g(f)));d.a("\n\n****Validation Results:****");var g=0==zb(e,f);d.a("\nResult from isPossibleNumber(): ");d.a(g);if(g){var h=sb(e,f);d.a("\nResult from isValidNumber(): ");d.a(h);h&&b&&"ZZ"!=b&&(d.a("\nResult from isValidNumberForRegion(): "),
d.a(xb(e,f,b)));d.a("\nPhone Number region: ");d.a(wb(e,f));d.a("\nResult from getNumberType(): ");var m;var D=wb(e,f),P=T(e,x(f,1),D);if(P){var Zb=R(f);m=vb(Zb,P)}else m=-1;switch(m){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(zb(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.")}d.a("\n\n****Formatting Results:**** ");d.a("\nE164 format: ");d.a(h?Q(e,f,0):"invalid");d.a("\nOriginal format: ");d.a(qb(e,f,b));d.a("\nNational format: ");d.a(Q(e,f,2));d.a("\nInternational format: ");d.a(h?Q(e,f,1):"invalid");d.a("\nOut-of-country format from US: ");d.a(h?ob(e,
f,"US"):"invalid");d.a("\nOut-of-country format from Switzerland: ");d.a(h?ob(e,f,"CH"):"invalid");0<c.length&&(d.a("\nNational format with carrier code: "),d.a(nb(e,f,c)));d.a("\n\n****AsYouTypeFormatter Results****");for(var $b=new Db(b),ac=a.length,b=0;b<ac;++b){var fb=a.charAt(b);d.a("\nChar entered: ");d.a(fb);d.a(" Output: ");d.a(Mb($b,fb))}}catch(bc){d.a("\n"+bc)}p("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 Yb;if(Yb=!X.length)Yb=void 0!==Xb;Yb?Y[Z]=Xb:Y[Z]?Y=Y[Z]:Y=Y[Z]={}};})();

+ 75
- 37
javascript/i18n/phonenumbers/metadatafortesting.js View File

@ -62,9 +62,11 @@ i18n.phonenumbers.metadata.countryCodeToRegionCodeMap = {
* @type {!Object.<string, Array>} * @type {!Object.<string, Array>}
*/ */
i18n.phonenumbers.metadata.countryToMetadata = { i18n.phonenumbers.metadata.countryToMetadata = {
"AD":[,[]
,[]
,[]
"AD":[,[,,"\\d{6}","\\d{6}",,,,,,[6]
]
,[,,"\\d{6}","\\d{6}"]
,[,,"\\d{6}","\\d{6}",,,,,,[6]
]
,[,,"NA","NA",,,,,,[-1] ,[,,"NA","NA",,,,,,[-1]
] ]
,[,,"NA","NA",,,,,,[-1] ,[,,"NA","NA",,,,,,[-1]
@ -210,9 +212,13 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA",,,,,,[-1] ,,,[,,"NA","NA",,,,,,[-1]
] ]
] ]
,"BB":[,[]
,[]
,[]
,"BB":[,[,,"246\\d{7}","\\d{7,10}",,,,,,[10]
,[7]
]
,[,,"246\\d{7}","\\d{7,10}"]
,[,,"246\\d{7}","\\d{7,10}",,,,,,[10]
,[7]
]
,[,,"NA","NA",,,,,,[-1] ,[,,"NA","NA",,,,,,[-1]
] ]
,[,,"NA","NA",,,,,,[-1] ,[,,"NA","NA",,,,,,[-1]
@ -232,9 +238,13 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA",,,,,,[-1] ,,,[,,"NA","NA",,,,,,[-1]
] ]
] ]
,"BR":[,[]
,[]
,[]
,"BR":[,[,,"\\d{8,10}","\\d{8,10}",,,,,,[10]
,[8]
]
,[,,"\\d{8,10}","\\d{8,10}"]
,[,,"\\d{8,10}","\\d{8,10}",,,,,,[10]
,[8]
]
,[,,"NA","NA",,,,,,[-1] ,[,,"NA","NA",,,,,,[-1]
] ]
,[,,"NA","NA",,,,,,[-1] ,[,,"NA","NA",,,,,,[-1]
@ -307,9 +317,13 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA",,,,,,[-1] ,,,[,,"NA","NA",,,,,,[-1]
] ]
] ]
,"CA":[,[]
,[]
,[]
,"CA":[,[,,"226\\d{7}","\\d{7,10}",,,,,,[10]
,[7]
]
,[,,"226\\d{7}","\\d{7,10}"]
,[,,"226\\d{7}","\\d{7,10}",,,,,,[10]
,[7]
]
,[,,"NA","NA",,,,,,[-1] ,[,,"NA","NA",,,,,,[-1]
] ]
,[,,"NA","NA",,,,,,[-1] ,[,,"NA","NA",,,,,,[-1]
@ -329,9 +343,13 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA",,,,,,[-1] ,,,[,,"NA","NA",,,,,,[-1]
] ]
] ]
,"CC":[,[]
,[]
,[]
,"CC":[,[,,"\\d{6,10}","\\d{6,10}",,,,,,[10]
,[6]
]
,[,,"\\d{6,10}","\\d{6,10}"]
,[,,"\\d{6,10}","\\d{6,10}",,,,,,[10]
,[6]
]
,[,,"NA","NA",,,,,,[-1] ,[,,"NA","NA",,,,,,[-1]
] ]
,[,,"NA","NA",,,,,,[-1] ,[,,"NA","NA",,,,,,[-1]
@ -379,9 +397,13 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA",,,,,,[-1] ,,,[,,"NA","NA",,,,,,[-1]
] ]
] ]
,"CX":[,[]
,[]
,[]
,"CX":[,[,,"\\d{8,10}","\\d{8,10}",,,,,,[10]
,[8]
]
,[,,"\\d{8,10}","\\d{8,10}"]
,[,,"\\d{8,10}","\\d{8,10}",,,,,,[10]
,[8]
]
,[,,"NA","NA",,,,,,[-1] ,[,,"NA","NA",,,,,,[-1]
] ]
,[,,"NA","NA",,,,,,[-1] ,[,,"NA","NA",,,,,,[-1]
@ -439,9 +461,11 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA",,,,,,[-1] ,,,[,,"NA","NA",,,,,,[-1]
] ]
] ]
,"FR":[,[,,"3\\d{6}","\\d{7}"]
,[,,"3\\d{6}","\\d{7}"]
,"FR":[,[,,"3\\d{6}","\\d{7}",,,,,,[7]
]
,[,,"3\\d{6}","\\d{7}"] ,[,,"3\\d{6}","\\d{7}"]
,[,,"3\\d{6}","\\d{7}",,,,,,[7]
]
,[,,"NA","NA",,,,,,[-1] ,[,,"NA","NA",,,,,,[-1]
] ]
,[,,"NA","NA",,,,,,[-1] ,[,,"NA","NA",,,,,,[-1]
@ -464,16 +488,22 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA",,,,,,[-1] ,,,[,,"NA","NA",,,,,,[-1]
] ]
] ]
,"GB":[,[,,"\\d{10}","\\d{6,10}",,,,,,[10]
,[6]
,"GB":[,[,,"\\d{10}","\\d{6,10}",,,,,,[9,10]
,[6,7,8]
] ]
,[,,"[1-6]\\d{9}","\\d{6,10}"] ,[,,"[1-6]\\d{9}","\\d{6,10}"]
,[,,"7[1-57-9]\\d{8}","\\d{10}"]
,[,,"80\\d{8}","\\d{10}"]
,[,,"9[018]\\d{8}","\\d{10}"]
,[,,"8(?:4[3-5]|7[0-2])\\d{7}","\\d{10}"]
,[,,"70\\d{8}","\\d{10}"]
,[,,"56\\d{8}","\\d{10}"]
,[,,"7[1-57-9]\\d{8}","\\d{10}",,,,,,[10]
]
,[,,"80\\d{8}","\\d{10}",,,,,,[10]
]
,[,,"9[018]\\d{8}","\\d{10}",,,,,,[10]
]
,[,,"8(?:4[3-5]|7[0-2])\\d{7}","\\d{10}",,,,,,[10]
]
,[,,"70\\d{8}","\\d{10}",,,,,,[10]
]
,[,,"56\\d{8}","\\d{10}",,,,,,[10]
]
,"GB",44,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["[1-59]|[78]0"] ,"GB",44,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["[1-59]|[78]0"]
,"(0$1)"] ,"(0$1)"]
,[,"(\\d)(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["6"] ,[,"(\\d)(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["6"]
@ -483,7 +513,8 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8[47]"] ,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8[47]"]
,"(0$1)"] ,"(0$1)"]
] ]
,,[,,"76\\d{8}","\\d{10}"]
,,[,,"76\\d{8}","\\d{10}",,,,,,[10]
]
,,,[,,"NA","NA",,,,,,[-1] ,,,[,,"NA","NA",,,,,,[-1]
] ]
,[,,"NA","NA",,,,,,[-1] ,[,,"NA","NA",,,,,,[-1]
@ -491,9 +522,13 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA",,,,,,[-1] ,,,[,,"NA","NA",,,,,,[-1]
] ]
] ]
,"GG":[,[]
,[]
,[]
,"GG":[,[,,"\\d{6,10}","\\d{6,10}",,,,,,[10]
,[6]
]
,[,,"\\d{6,10}","\\d{6,10}"]
,[,,"\\d{6,10}","\\d{6,10}",,,,,,[10]
,[6]
]
,[,,"NA","NA",,,,,,[-1] ,[,,"NA","NA",,,,,,[-1]
] ]
,[,,"NA","NA",,,,,,[-1] ,[,,"NA","NA",,,,,,[-1]
@ -786,9 +821,11 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA",,,,,,[-1] ,,,[,,"NA","NA",,,,,,[-1]
] ]
] ]
,"SE":[,[]
,[]
,[]
,"SE":[,[,,"\\d{9}","\\d{9}",,,,,,[9]
]
,[,,"\\d{9}","\\d{9}"]
,[,,"\\d{9}","\\d{9}",,,,,,[9]
]
,[,,"NA","NA",,,,,,[-1] ,[,,"NA","NA",,,,,,[-1]
] ]
,[,,"NA","NA",,,,,,[-1] ,[,,"NA","NA",,,,,,[-1]
@ -841,10 +878,11 @@ i18n.phonenumbers.metadata.countryToMetadata = {
] ]
] ]
,"US":[,[,,"[13-689]\\d{9}|2[0-35-9]\\d{8}","\\d{7}(?:\\d{3})?",,,"1234567890",,,[10] ,"US":[,[,,"[13-689]\\d{9}|2[0-35-9]\\d{8}","\\d{7}(?:\\d{3})?",,,"1234567890",,,[10]
,[7]
] ]
,[,,"[13-689]\\d{9}|2[0-35-9]\\d{8}","\\d{7}(?:\\d{3})?",,,"1234567890"]
,[,,"[13-689]\\d{9}|2[0-35-9]\\d{8}","\\d{7}(?:\\d{3})?",,,"1234567890",,,[10] ,[,,"[13-689]\\d{9}|2[0-35-9]\\d{8}","\\d{7}(?:\\d{3})?",,,"1234567890",,,[10]
]
,[,,"[13-689]\\d{9}|2[0-35-9]\\d{8}","\\d{7}(?:\\d{3})?",,,"1234567890",,,[10]
,[7]
] ]
,[,,"8(?:00|66|77|88)\\d{7}","\\d{10}",,,"1234567890"] ,[,,"8(?:00|66|77|88)\\d{7}","\\d{10}",,,"1234567890"]
,[,,"900\\d{7}","\\d{10}",,,"1234567890"] ,[,,"900\\d{7}","\\d{10}",,,"1234567890"]


+ 49
- 46
javascript/i18n/phonenumbers/phonenumberutil.js View File

@ -26,7 +26,7 @@
* the codes can be found here: * the codes can be found here:
* http://www.iso.org/iso/english_country_names_and_code_elements * http://www.iso.org/iso/english_country_names_and_code_elements
* *
* @author Nikolaos Trogkanis
* Credits to Nikolaos Trogkanis for original implementation.
*/ */
goog.provide('i18n.phonenumbers.Error'); goog.provide('i18n.phonenumbers.Error');
@ -1763,8 +1763,9 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.formatNumberForMobileDialing =
/** @type {i18n.phonenumbers.PhoneMetadata} */ /** @type {i18n.phonenumbers.PhoneMetadata} */
var regionMetadata = this.getMetadataForRegion(regionCallingFrom); var regionMetadata = this.getMetadataForRegion(regionCallingFrom);
if (this.canBeInternationallyDialled(numberNoExt) && if (this.canBeInternationallyDialled(numberNoExt) &&
!this.isShorterThanPossibleNormalNumber_(
regionMetadata, this.getNationalSignificantNumber(numberNoExt))) {
this.testNumberLength_(this.getNationalSignificantNumber(numberNoExt),
regionMetadata.getGeneralDesc()) !=
i18n.phonenumbers.PhoneNumberUtil.ValidationResult.TOO_SHORT) {
formattedNumber = this.format( formattedNumber = this.format(
numberNoExt, i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL); numberNoExt, i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL);
} else { } else {
@ -2770,11 +2771,17 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.
*/ */
i18n.phonenumbers.PhoneNumberUtil.prototype.isNumberMatchingDesc_ = i18n.phonenumbers.PhoneNumberUtil.prototype.isNumberMatchingDesc_ =
function(nationalNumber, numberDesc) { function(nationalNumber, numberDesc) {
// Check if any possible number lengths are present; if so, we use them to
// avoid checking the validation pattern if they don't match. If they are
// absent, this means they match the general description, which we have
// already checked before a specific number type.
var actualLength = nationalNumber.length;
if (numberDesc.possibleLengthCount() > 0 &&
numberDesc.possibleLengthArray().indexOf(actualLength) == -1) {
return false;
}
return i18n.phonenumbers.PhoneNumberUtil.matchesEntirely_( return i18n.phonenumbers.PhoneNumberUtil.matchesEntirely_(
numberDesc.getPossibleNumberPatternOrDefault(), nationalNumber) &&
i18n.phonenumbers.PhoneNumberUtil.matchesEntirely_(
numberDesc.getNationalNumberPatternOrDefault(), nationalNumber);
numberDesc.getNationalNumberPatternOrDefault(), nationalNumber);
}; };
@ -3113,41 +3120,40 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.isPossibleNumber =
* in between these possible lengths is entered, such as of length 8, this will * in between these possible lengths is entered, such as of length 8, this will
* return TOO_LONG. * return TOO_LONG.
* *
* @param {string} numberPattern
* @param {string} number * @param {string} number
* @param {i18n.phonenumbers.PhoneNumberDesc} phoneNumberDesc
* @return {i18n.phonenumbers.PhoneNumberUtil.ValidationResult} * @return {i18n.phonenumbers.PhoneNumberUtil.ValidationResult}
* @private * @private
*/ */
i18n.phonenumbers.PhoneNumberUtil.prototype.testNumberLengthAgainstPattern_ =
function(numberPattern, number) {
if (i18n.phonenumbers.PhoneNumberUtil.matchesEntirely_(numberPattern,
number)) {
i18n.phonenumbers.PhoneNumberUtil.prototype.testNumberLength_ =
function(number, phoneNumberDesc) {
var possibleLengths = phoneNumberDesc.possibleLengthArray();
var localLengths = phoneNumberDesc.possibleLengthLocalOnlyArray();
var actualLength = number.length;
if (localLengths.indexOf(actualLength) > -1) {
return i18n.phonenumbers.PhoneNumberUtil.ValidationResult.IS_POSSIBLE; return i18n.phonenumbers.PhoneNumberUtil.ValidationResult.IS_POSSIBLE;
} }
if (number.search(numberPattern) == 0) {
return i18n.phonenumbers.PhoneNumberUtil.ValidationResult.TOO_LONG;
} else {
// There should always be "possibleLengths" set for every element. This will
// be a build-time check once ShortNumberMetadata.xml is migrated to contain
// this information as well.
var minimumLength = possibleLengths[0];
if (minimumLength == actualLength) {
return i18n.phonenumbers.PhoneNumberUtil.ValidationResult.IS_POSSIBLE;
} else if (minimumLength > actualLength) {
return i18n.phonenumbers.PhoneNumberUtil.ValidationResult.TOO_SHORT; return i18n.phonenumbers.PhoneNumberUtil.ValidationResult.TOO_SHORT;
} else if (possibleLengths[possibleLengths.length - 1] < actualLength) {
return i18n.phonenumbers.PhoneNumberUtil.ValidationResult.TOO_LONG;
} }
};
/**
* Helper method to check whether a number is too short to be a regular length
* phone number in a region.
*
* @param {i18n.phonenumbers.PhoneMetadata} regionMetadata
* @param {string} number
* @return {boolean}
* @private
*/
i18n.phonenumbers.PhoneNumberUtil.prototype.isShorterThanPossibleNormalNumber_ =
function(regionMetadata, number) {
/** @type {string} */
var possibleNumberPattern =
regionMetadata.getGeneralDesc().getPossibleNumberPatternOrDefault();
return this.testNumberLengthAgainstPattern_(possibleNumberPattern, number) ==
i18n.phonenumbers.PhoneNumberUtil.ValidationResult.TOO_SHORT;
// Note that actually the number is not too long if possible_lengths does not
// contain the length: we know it is less than the highest possible number
// length, and higher than the lowest possible number length. However, we
// don't currently have an enum to express this, so we return TOO_LONG in the
// short-term.
// We could skip the first element; we've already checked it; but we prefer to
// check one value rather than create an extra object in this case.
return (possibleLengths.indexOf(actualLength) > -1) ?
i18n.phonenumbers.PhoneNumberUtil.ValidationResult.IS_POSSIBLE :
i18n.phonenumbers.PhoneNumberUtil.ValidationResult.TOO_LONG;
}; };
@ -3198,11 +3204,7 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.isPossibleNumberWithReason =
/** @type {i18n.phonenumbers.PhoneMetadata} */ /** @type {i18n.phonenumbers.PhoneMetadata} */
var metadata = var metadata =
this.getMetadataForRegionOrCallingCode_(countryCode, regionCode); this.getMetadataForRegionOrCallingCode_(countryCode, regionCode);
/** @type {string} */
var possibleNumberPattern =
metadata.getGeneralDesc().getPossibleNumberPatternOrDefault();
return this.testNumberLengthAgainstPattern_(possibleNumberPattern,
nationalNumber);
return this.testNumberLength_(nationalNumber, metadata.getGeneralDesc());
}; };
@ -3416,9 +3418,6 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.maybeExtractCountryCode =
potentialNationalNumber, defaultRegionMetadata, null); potentialNationalNumber, defaultRegionMetadata, null);
/** @type {string} */ /** @type {string} */
var potentialNationalNumberStr = potentialNationalNumber.toString(); var potentialNationalNumberStr = potentialNationalNumber.toString();
/** @type {string} */
var possibleNumberPattern =
generalDesc.getPossibleNumberPatternOrDefault();
// If the number was not valid before but is valid now, or if it was too // If the number was not valid before but is valid now, or if it was too
// long before, we consider the number with the country calling code // long before, we consider the number with the country calling code
// stripped to be a better result and keep that instead. // stripped to be a better result and keep that instead.
@ -3426,8 +3425,7 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.maybeExtractCountryCode =
validNumberPattern, fullNumber.toString()) && validNumberPattern, fullNumber.toString()) &&
i18n.phonenumbers.PhoneNumberUtil.matchesEntirely_( i18n.phonenumbers.PhoneNumberUtil.matchesEntirely_(
validNumberPattern, potentialNationalNumberStr)) || validNumberPattern, potentialNationalNumberStr)) ||
this.testNumberLengthAgainstPattern_(possibleNumberPattern,
fullNumber.toString()) ==
this.testNumberLength_(fullNumber.toString(), generalDesc) ==
i18n.phonenumbers.PhoneNumberUtil.ValidationResult.TOO_LONG) { i18n.phonenumbers.PhoneNumberUtil.ValidationResult.TOO_LONG) {
nationalNumber.append(potentialNationalNumberStr); nationalNumber.append(potentialNationalNumberStr);
if (keepRawInput) { if (keepRawInput) {
@ -3899,8 +3897,13 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.parseHelper_ =
new goog.string.StringBuffer(normalizedNationalNumber.toString()); new goog.string.StringBuffer(normalizedNationalNumber.toString());
this.maybeStripNationalPrefixAndCarrierCode( this.maybeStripNationalPrefixAndCarrierCode(
potentialNationalNumber, regionMetadata, carrierCode); potentialNationalNumber, regionMetadata, carrierCode);
if (!this.isShorterThanPossibleNormalNumber_(
regionMetadata, potentialNationalNumber.toString())) {
// We require that the NSN remaining after stripping the national prefix and
// carrier code be long enough to be a possible length for the region.
// Otherwise, we don't do the stripping, since the original number could be
// a valid short number.
if (this.testNumberLength_(potentialNationalNumber.toString(),
regionMetadata.getGeneralDesc()) !=
i18n.phonenumbers.PhoneNumberUtil.ValidationResult.TOO_SHORT) {
normalizedNationalNumber = potentialNationalNumber; normalizedNationalNumber = potentialNationalNumber;
if (keepRawInput) { if (keepRawInput) {
phoneNumber.setPreferredDomesticCarrierCode(carrierCode.toString()); phoneNumber.setPreferredDomesticCarrierCode(carrierCode.toString());


BIN
tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar View File


Loading…
Cancel
Save