@ -1,14 +1,14 @@
( function ( ) { for ( var aa = "function" == typeof Object . defineProperties ? Object . defineProperty : function ( a , b , c ) { if ( c . get || c . set ) throw new TypeError ( "ES3 does not support getters and setters." ) ; a != Array . prototype && a != Object . prototype && ( a [ b ] = c . value ) } , k = "undefined" != typeof window && window === this ? this : "undefined" != typeof global && null != global ? global : this , l = [ "String" , "prototype" , "repeat" ] , ba = 0 ; ba < l . length - 1 ; ba ++ ) { var ca = l [ ba ] ; ca in k || ( k [ ca ] = { } ) ; k = k [ ca ] }
var da = l [ l . length - 1 ] , ea = k [ da ] , fa = ea ? ea : function ( a ) { var b ; if ( null == this ) throw new TypeError ( "The 'this' value for String.prototype.repeat must not be null or undefined" ) ; b = this + "" ; if ( 0 > a || 1342177279 < a ) throw new RangeError ( "Invalid count value" ) ; a |= 0 ; for ( var c = "" ; a ; ) if ( a & 1 && ( c += b ) , a >>>= 1 ) b += b ; return c } ; fa != ea && null != fa && aa ( k , da , { configurable : ! 0 , writable : ! 0 , value : fa } ) ;
function ga ( 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 n ( a ) { return "string" == typeof a } function p ( a , b ) { function c ( ) { } c . prototype = b . prototype ; a . c a= b . prototype ; a . prototype = new c ; a . prototype . constructor = a ; a . ma = 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 q ( a ) { if ( Error . captureStackTrace ) Error . captureStackTrace ( this , q ) ; else { var b = Error ( ) . stack ; b && ( this . stack = b ) } a && ( this . message = String ( a ) ) } p ( q , Error ) ; q . prototype . name = "CustomError" ; function ha ( 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 ia ( a , b ) { b . unshift ( a ) ; q . call ( this , ha . apply ( null , b ) ) ; b . shift ( ) } p ( ia , q ) ; ia . prototype . name = "AssertionError" ; function ja ( a , b ) { throw new ia ( "Failure" + ( a ? ": " + a : "" ) , Array . prototype . slice . call ( arguments , 1 ) ) ; } ; var ka = 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 ( n ( a ) ) return n ( 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 la ( a , b ) { a . sort ( b || ma ) } function ma ( a , b ) { return a > b ? 1 : a < b ? - 1 : 0 } ; function na ( a ) { var b = [ ] , c = 0 , d ; for ( d in a ) b [ c ++ ] = a [ d ] ; return b } function oa ( a , b ) { var c ; a : { for ( c in a ) if ( b . call ( void 0 , a [ c ] , c , a ) ) break a ; c = void 0 } return c && a [ c ] } ; function pa ( a ) { var b = document ; return n ( a ) ? b . getElementById ( a ) : a } ; function qa ( a ) { var b = [ ] ; ra ( new sa , a , b ) ; return b . join ( "" ) } function sa ( ) { }
function ra ( a , b , c ) { if ( null == b ) c . push ( "null" ) ; else { if ( "object" == typeof b ) { if ( "array" == ga ( b ) ) { var d = b ; b = d . length ; c . push ( "[" ) ; for ( var e = "" , f = 0 ; f < b ; f ++ ) c . push ( e ) , e = d [ f ] , ra ( 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 ) , ta ( d , c ) , c . push ( ":" ) , ra ( a , e , c ) , f = "," ) ) ; c . push ( "}" ) ; return } } switch ( typeof b ) { case "string" : ta ( b , c ) ; break ; case "number" : c . push ( isFinite ( b ) &&
else if ( "function" == b && "undefined" == typeof a . call ) return "object" ; return b } function n ( a ) { return "string" == typeof a } function p ( a , b ) { function c ( ) { } c . prototype = b . prototype ; a . h a= b . prototype ; a . prototype = new c ; a . prototype . constructor = a ; a . ma = 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 q ( a ) { if ( Error . captureStackTrace ) Error . captureStackTrace ( this , q ) ; else { var b = Error ( ) . stack ; b && ( this . stack = b ) } a && ( this . message = String ( a ) ) } p ( q , Error ) ; q . prototype . name = "CustomError" ; function ha ( 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 ia ( a , b ) { b . unshift ( a ) ; q . call ( this , ha . apply ( null , b ) ) ; b . shift ( ) } p ( ia , q ) ; ia . prototype . name = "AssertionError" ; function ja ( a , b ) { throw new ia ( "Failure" + ( a ? ": " + a : "" ) , Array . prototype . slice . call ( arguments , 1 ) ) ; } ; var ka = 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 ( n ( a ) ) return n ( 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 la ( a , b ) { a . sort ( b || ma ) } function ma ( a , b ) { return a > b ? 1 : a < b ? - 1 : 0 } ; function na ( a ) { var b = [ ] , c = 0 , d ; for ( d in a ) b [ c ++ ] = a [ d ] ; return b } function oa ( a , b ) { var c ; a : { for ( c in a ) if ( b . call ( void 0 , a [ c ] , c , a ) ) break a ; c = void 0 } return c && a [ c ] } ; function pa ( a ) { var b = document ; return n ( a ) ? b . getElementById ( a ) : a } ; function qa ( a ) { var b = [ ] ; ra ( new sa , a , b ) ; return b . join ( "" ) } function sa ( ) { }
function ra ( a , b , c ) { if ( null == b ) c . push ( "null" ) ; else { if ( "object" == typeof b ) { if ( "array" == ga ( b ) ) { var d = b ; b = d . length ; c . push ( "[" ) ; for ( var e = "" , f = 0 ; f < b ; f ++ ) c . push ( e ) , ra ( 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 ) , ta ( d , c ) , c . push ( ":" ) , ra ( a , f , c ) , e = "," ) ) ; c . push ( "}" ) ; return } } switch ( typeof b ) { case "string" : ta ( 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 ua = { '"' : '\\"' , "\\" : "\\\\" , "/" : "\\/" , "\b" : "\\b" , "\f" : "\\f" , "\n" : "\\n" , "\r" : "\\r" , "\t" : "\\t" , "\x0B" : "\\u000b" } , va = /\uffff/ . test ( "\uffff" ) ? /[\\\"\x00-\x1f\x7f-\uffff]/g : /[\\\"\x00-\x1f\x7f-\xff]/g ;
function ta ( a , b ) { b . push ( '"' , a . replace ( va , function ( a ) { var b = ua [ a ] ; b || ( b = "\\u" + ( a . charCodeAt ( 0 ) | 65536 ) . toString ( 16 ) . substr ( 1 ) , ua [ a ] = b ) ; return b } ) , '"' ) } ; function wa ( 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 xa : case ya : case za : case Aa : case Ba : case Ca : case Da : this . i = ! 0 } this . g = b . defaultValue } var Da = 1 , Ca = 2 , xa = 3 , ya = 4 , za = 6 , Aa = 16 , Ba = 18 ; function Ea ( 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 Fa ( a ) { a = na ( a . a ) ; la ( a , function ( a , c ) { return a . a - c . a } ) ; return a } function Ga ( a , b ) { return oa ( a . a , function ( a ) { return a . l == b } ) || null } ; function r ( ) { this . b = { } ; this . f = this . h ( ) . a ; this . a = this . g = null } function Ha ( a , b ) { for ( var c in a . b ) { var d = Number ( c ) ; a . f [ d ] || b . call ( a , d , a . b [ c ] ) } } r . prototype . has = function ( a ) { return t ( this , a . a ) } ; r . prototype . get = function ( a , b ) { return u ( this , a . a , b ) } ; r . prototype . set = function ( a , b ) { v ( this , a . a , b ) } ;
function Ia ( a , b ) { for ( var c = Fa ( a . h ( ) ) , d = 0 ; d < c . length ; d ++ ) { var e = c [ d ] , f = e . a ; if ( t ( b , f ) ) { a . a && delete a . a [ e . a ] ; var g = 11 == e . b || 10 == e . b ; if ( e . f ) for ( var e = w ( b , f ) , h = 0 ; h < e . length ; h ++ ) Ja ( a , f , g ? e [ h ] . clone ( ) : e [ h ] ) ; else e = Ka ( b , f ) , g ? ( g = Ka ( a , f ) ) ? Ia ( g , e ) : v ( a , f , e . clone ( ) ) : v ( a , f , e ) } } } r . prototype . clone = function ( ) { var a = new this . constructor ; a != this && ( a . b = { } , a . a && ( a . a = { } ) , Ia ( a , this ) ) ; return a } ; function t ( a , b ) { return null != a . b [ b ] }
function Ka ( 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 u ( a , b , c ) { var d = Ka ( a , b ) ; return a . f [ b ] . f ? d [ c || 0 ] : d } function x ( a , b ) { var c ; if ( t ( a , b ) ) c = u ( 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 w ( a , b ) { return Ka ( a , b ) || [ ] } function y ( a , b ) { return a . f [ b ] . f ? t ( a , b ) ? a . b [ b ] . length : 0 : t ( a , b ) ? 1 : 0 } function v ( a , b , c ) { a . b [ b ] = c ; a . a && ( a . a [ b ] = c ) } function Ja ( a , b , c ) { a . b [ b ] || ( a . b [ b ] = [ ] ) ; a . b [ b ] . push ( c ) ; a . a && delete a . a [ b ] } function La ( a , b ) { delete a . b [ b ] ; a . a && delete a . a [ b ] } function Ma ( a , b ) { var c = [ ] , d ; for ( d in b ) 0 != d && c . push ( new wa ( d , b [ d ] ) ) ; return new Ea ( 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 r ? b : this . f ( a . j . prototype . h ( ) , b ) ; if ( 14 == a . b ) { if ( n ( b ) && Na . 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 && n ( b ) && ( "Infinity" === b || "-Infinity" === b || "NaN" === b || Na . test ( b ) ) ) return Number ( b ) ; return b } ; var Na = /^-?[0-9]+$/ ; function A ( a , b ) { this . j = a ; this . l = b } p ( A , z ) ; A . prototype . g = function ( a ) { for ( var b = Fa ( 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 ) ) } Ha ( 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 . c a. b . call ( this , a , b ) } ; A . prototype . a = function ( a , b ) { return 8 == a . b && "number" == typeof b ? ! ! b : A . c a. a . call ( this , a , b ) } ;
z . prototype . a = function ( a , b ) { if ( 11 == a . b || 10 == a . b ) return b instanceof r ? b : this . f ( a . j . prototype . h ( ) , b ) ; if ( 14 == a . b ) { if ( n ( b ) && Na . 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 && n ( b ) && ( "Infinity" === b || "-Infinity" === b || "NaN" === b || Na . test ( b ) ) ) return Number ( b ) ; return b } ; var Na = /^-?[0-9]+$/ ; function A ( a , b ) { this . j = a ; this . l = b } p ( A , z ) ; A . prototype . g = function ( a ) { for ( var b = Fa ( 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 ) ) } Ha ( 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 . h a. b . call ( this , a , b ) } ; A . prototype . a = function ( a , b ) { return 8 == a . b && "number" == typeof b ? ! ! b : A . h a. 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 : Ga ( c , d ) ) if ( e . f ) for ( g = 0 ; g < f . length ; g ++ ) { var h = this . a ( e , f [ g ] ) ; Ja ( 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 ] ) : ja ( "Failed to find field: " + d ) } } ; 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 .
@ -34,7 +34,7 @@ G.prototype.h=function(){var a=Qa;a||(Qa=a=Ma(G,{0:{name:"PhoneMetadata",ba:"i18
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 ( ) { r . call ( this ) } var Ra ; p ( H , r ) ; var Sa = { la : 1 , ka : 5 , ja : 10 , ia : 20 } ;
H . prototype . h = function ( ) { Ra || ( Ra = Ma ( 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 : Sa } , 7 : { name : "preferred_domestic_carrier_code" , c : 9 , type : String } } ) ) ;
return Ra } ; H . ctor = H ; H . ctor . h = H . prototype . h ; function Ta ( ) { } p ( Ta , z ) ; Ta . prototype . f = function ( a , b ) { var c = new a . b ; c . g = this ; c . b = b ; c . a = { } ; return c } ; Ta . prototype . i = function ( ) { throw Error ( "Unimplemented" ) ; } ; function I ( ) { } p ( I , Ta ) ; I . prototype . g = function ( a ) { for ( var b = Fa ( 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 ) ) } } Ha ( 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 ) } ; I . prototype . f = function ( a , b ) { return I . ca . f . call ( this , a , b ) } ; / *
return Ra } ; H . ctor = H ; H . ctor . h = H . prototype . h ; function Ta ( ) { } p ( Ta , z ) ; Ta . prototype . f = function ( a , b ) { var c = new a . b ; c . g = this ; c . b = b ; c . a = { } ; return c } ; Ta . prototype . i = function ( ) { throw Error ( "Unimplemented" ) ; } ; function I ( ) { } p ( I , Ta ) ; I . prototype . g = function ( a ) { for ( var b = Fa ( 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 ) ) } } Ha ( 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
@ -434,34 +434,34 @@ var L={0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9","\uff10":"0",
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" } , Xa = /[\d]+(?:[~\u2053\u223C\uFF5E][\d]+)?/ , Ya = RegExp ( "[+\uff0b]+" ) , M = RegExp ( "^[+\uff0b]+" ) , Za = RegExp ( "([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9])" ) , $a = RegExp ( "[+\uff0b0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]" ) , ab = /[\\\/] *x/ , bb = RegExp ( "[^0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9A-Za-z#]+$" ) , cb = /(?:.*?[A-Za-z]){3}.*/ , db = 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" ) , eb = 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" ) , fb = /(\$\d)/ , gb = /\$NP/ , hb = /\$FG/ , ib = /\$CC/ , jb = /^\(?\$1\)?$/ ; function kb ( a ) { var b = a . search ( $a ) ; 0 <= b ? ( a = a . substring ( b ) , a = a . replace ( bb , "" ) , b = a . search ( ab ) , 0 <= b && ( a = a . substring ( 0 , b ) ) ) : a = "" ; return a } function lb ( a ) { return 2 > a . length ? ! 1 : N ( eb , a ) } function nb ( a ) { return N ( cb , a ) ? O ( a , Wa ) : O ( a , L ) } function ob ( a ) { var b = nb ( 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 pb ( a ) { return null != a && isNaN ( a ) && a . toUpperCase ( ) in Ua } function P ( a , b , c ) { if ( 0 == u ( b , 2 ) && t ( b , 5 ) ) { var d = x ( b , 5 ) ; if ( 0 < d . length ) return d } var d = x ( b , 1 ) , e = Q ( b ) ; if ( 0 == c ) return S ( d , 0 , e , "" ) ; if ( ! ( d in J ) ) return e ; a = T ( a , d , U ( d ) ) ; b = qb ( b , a , c ) ; e = rb ( e , a , c ) ; return S ( d , c , e , b ) } function sb ( a , b , c ) { var d = x ( b , 1 ) , e = Q ( b ) ; if ( ! ( d in J ) ) return e ; a = T ( a , d , U ( d ) ) ; b = qb ( b , a , 2 ) ; c = rb ( 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 tb ( a , b , c ) { if ( ! pb ( c ) ) return P ( a , b , 1 ) ; var d = x ( b , 1 ) , e = Q ( b ) ; if ( ! ( d in J ) ) return e ; if ( 1 == d ) { if ( null != c && 0 <= ka ( J [ 1 ] , c . toUpperCase ( ) ) ) return d + " " + P ( a , b , 2 ) } else if ( d == ub ( a , c ) ) return P ( a , b , 2 ) ; var f = V ( a , c ) , g = x ( f , 11 ) ; c = "" ; N ( Xa , g ) ? c = g : t ( f , 17 ) && ( c = x ( f , 17 ) ) ; a = T ( a , d , U ( d ) ) ; e = rb ( e , a , 1 ) ; b = qb ( b , a , 1 ) ; return 0 < c . length ? c + " " + d + " " + e + b : S ( d , 1 , e , b ) }
function vb ( a , b , c ) { var d ; if ( d = t ( b , 5 ) ) { if ( d = t ( 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 = Q ( b ) ; d = ! ! wb ( w ( d , 19 ) , e ) } else d = ! 1 ; d = ! d } } if ( d ) return x ( b , 5 ) ; if ( ! t ( b , 6 ) ) return P ( a , b , 2 ) ; switch ( u ( b , 6 ) ) { case 1 : a = P ( a , b , 1 ) ; break ; case 5 : a = tb ( a , b , c ) ; break ; case 10 : a = P ( 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 = P ( 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 = xb ( a ,
yb ( 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 = wb ( w ( 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 ( ) , La ( g , 4 ) , d = [ g ] , g = x ( b , 1 ) , c = Q ( b ) , g in J ) { a = T ( a , g , U ( g ) ) ; if ( e = wb ( d , c ) ) d = e . clone ( ) , e = x ( e , 4 ) , 0 < e . length && ( f = x ( a , 12 ) , 0 < f . length ? ( e = e . replace ( gb , f ) . replace ( hb , "$1" ) , v ( d , 4 , e ) ) : La ( d , 4 ) ) , c = zb ( c , d , 2 ) ; a = qb ( 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 , Va ) , c = O ( b , Va ) ,
g != c && ( a = b ) ) ; return a } function Q ( a ) { var b = "" + u ( a , 2 ) ; return t ( a , 4 ) && u ( 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 rb ( a , b , c , d ) { b = w ( b , 20 ) . length && 2 != c ? w ( b , 20 ) : w ( b , 19 ) ; return ( b = wb ( b , a ) ) ? zb ( a , b , c , d ) : a } function wb ( 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 ( u ( c , 3 , f - 1 ) ) ) if ( f = new RegExp ( u ( c , 1 ) ) , N ( f , b ) ) return c } return null }
function pb ( a ) { return null != a && isNaN ( a ) && a . toUpperCase ( ) in Ua } function P ( a , b , c ) { if ( 0 == u ( b , 2 ) && t ( 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 = qb ( b , a , c ) ; e = rb ( e , a , c ) ; return S ( d , c , e , b ) } function sb ( a , b , c ) { var d = x ( b , 1 ) , e = R ( b ) ; if ( ! ( d in J ) ) return e ; a = T ( a , d , U ( d ) ) ; b = qb ( b , a , 2 ) ; c = rb ( 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 tb ( a , b , c ) { if ( ! pb ( c ) ) return P ( a , b , 1 ) ; var d = x ( b , 1 ) , e = R ( b ) ; if ( ! ( d in J ) ) return e ; if ( 1 == d ) { if ( null != c && 0 <= ka ( J [ 1 ] , c . toUpperCase ( ) ) ) return d + " " + P ( a , b , 2 ) } else if ( d == ub ( a , c ) ) return P ( a , b , 2 ) ; var f = V ( a , c ) , g = x ( f , 11 ) ; c = "" ; N ( Xa , g ) ? c = g : t ( f , 17 ) && ( c = x ( f , 17 ) ) ; a = T ( a , d , U ( d ) ) ; e = rb ( e , a , 1 ) ; b = qb ( b , a , 1 ) ; return 0 < c . length ? c + " " + d + " " + e + b : S ( d , 1 , e , b ) }
function vb ( a , b , c ) { var d ; if ( d = t ( b , 5 ) ) { if ( d = t ( 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 = ! ! wb ( w ( d , 19 ) , e ) } else d = ! 1 ; d = ! d } } if ( d ) return x ( b , 5 ) ; if ( ! t ( b , 6 ) ) return P ( a , b , 2 ) ; switch ( u ( b , 6 ) ) { case 1 : a = P ( a , b , 1 ) ; break ; case 5 : a = tb ( a , b , c ) ; break ; case 10 : a = P ( 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 = P ( 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 = xb ( a ,
yb ( 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 = wb ( w ( 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 ( ) , La ( g , 4 ) , d = [ g ] , g = x ( b , 1 ) , c = R ( b ) , g in J ) { a = T ( a , g , U ( g ) ) ; if ( e = wb ( d , c ) ) d = e . clone ( ) , e = x ( e , 4 ) , 0 < e . length && ( f = x ( a , 12 ) , 0 < f . length ? ( e = e . replace ( gb , f ) . replace ( hb , "$1" ) , v ( d , 4 , e ) ) : La ( d , 4 ) ) , c = zb ( c , d , 2 ) ; a = qb ( 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 , Va ) , c = O ( b , Va ) ,
g != c && ( a = b ) ) ; return a } function R ( a ) { var b = "" + u ( a , 2 ) ; return t ( a , 4 ) && u ( 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 rb ( a , b , c , d ) { b = w ( b , 20 ) . length && 2 != c ? w ( b , 20 ) : w ( b , 19 ) ; return ( b = wb ( b , a ) ) ? zb ( a , b , c , d ) : a } function wb ( 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 ( u ( c , 3 , f - 1 ) ) ) if ( f = new RegExp ( u ( c , 1 ) ) , N ( f , b ) ) return c } return null }
function zb ( a , b , c , d ) { var e = x ( b , 2 ) , f = new RegExp ( u ( b , 1 ) ) , g = x ( b , 5 ) ; 2 == c && null != d && 0 < d . length && 0 < g . length ? ( b = g . replace ( ib , d ) , e = e . replace ( fb , b ) , a = a . replace ( f , e ) ) : ( b = x ( b , 4 ) , a = 2 == c && null != b && 0 < b . length ? a . replace ( f , e . replace ( fb , 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 qb ( a , b , c ) { return t ( a , 3 ) && u ( a , 3 ) . length ? 3 == c ? ";ext=" + u ( a , 3 ) : t ( b , 13 ) ? u ( b , 13 ) + x ( a , 3 ) : " ext. " + x ( a , 3 ) : "" } function Ab ( a , b ) { return W ( a , u ( b , 1 ) ) ? W ( a , u ( b , 5 ) ) ? 4 : W ( a , u ( b , 4 ) ) ? 3 : W ( a , u ( b , 6 ) ) ? 5 : W ( a , u ( b , 8 ) ) ? 6 : W ( a , u ( b , 7 ) ) ? 7 : W ( a , u ( b , 21 ) ) ? 8 : W ( a , u ( b , 25 ) ) ? 9 : W ( a , u ( b , 28 ) ) ? 10 : W ( a , u ( b , 2 ) ) ? u ( b , 18 ) || W ( a , u ( b , 3 ) ) ? 2 : 0 : ! u ( b , 18 ) && W ( a , u ( 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 = Ua [ 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 == ka ( w ( b , 9 ) , c ) ? ! 1 : N ( x ( b , 2 ) , a ) } function xb ( a , b ) { var c = Bb ( a , b ) ; return Cb ( a , b , c ) } function Cb ( a , b , c ) { var d = x ( b , 1 ) , e = T ( a , d , c ) ; if ( ! e || "001" != c && d != ub ( a , c ) ) return ! 1 ; a = Q ( b ) ; return - 1 != Ab ( a , e ) } function Bb ( 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 = Q ( b ) , e , f = c . length , g = 0 ; g < f ; g ++ ) { e = c [ g ] ; var h = V ( a , e ) ; if ( t ( h , 23 ) ) { if ( ! d . search ( u ( h , 23 ) ) ) { c = e ; break a } } else if ( - 1 != Ab ( d , h ) ) { c = e ; break a } } c = null } else c = null ; return c }
function U ( a ) { return ( a = J [ a ] ) ? a [ 0 ] : "ZZ" } function ub ( a , b ) { var c = V ( a , b ) ; if ( ! c ) throw Error ( "Invalid region code: " + b ) ; return x ( c , 10 ) } function Db ( a , b ) { var c = w ( b , 9 ) , d = w ( b , 10 ) , e = a . length ; if ( - 1 < ka ( d , e ) ) return 0 ; d = c [ 0 ] ; return d == e ? 0 : d > e ? 2 : c [ c . length - 1 ] < e ? 3 : - 1 < ka ( c , e , 1 ) ? 0 : 3 } function Eb ( a , b ) { var c = Q ( b ) , d = x ( b , 1 ) ; if ( ! ( d in J ) ) return 1 ; d = T ( a , d , U ( d ) ) ; return Db ( c , u ( d , 1 ) ) }
function W ( a , b ) { var c = a . length ; return 0 < y ( b , 9 ) && - 1 == ka ( w ( b , 9 ) , c ) ? ! 1 : N ( x ( b , 2 ) , a ) } function xb ( a , b ) { var c = Bb ( a , b ) ; return Cb ( a , b , c ) } function Cb ( a , b , c ) { var d = x ( b , 1 ) , e = T ( a , d , c ) ; if ( ! e || "001" != c && d != ub ( a , c ) ) return ! 1 ; a = R ( b ) ; return - 1 != Ab ( a , e ) } function Bb ( 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 ( t ( h , 23 ) ) { if ( ! d . search ( u ( h , 23 ) ) ) { c = e ; break a } } else if ( - 1 != Ab ( d , h ) ) { c = e ; break a } } c = null } else c = null ; return c }
function U ( a ) { return ( a = J [ a ] ) ? a [ 0 ] : "ZZ" } function ub ( a , b ) { var c = V ( a , b ) ; if ( ! c ) throw Error ( "Invalid region code: " + b ) ; return x ( c , 10 ) } function Db ( a , b ) { var c = w ( b , 9 ) , d = w ( b , 10 ) , e = a . length ; if ( - 1 < ka ( d , e ) ) return 0 ; d = c [ 0 ] ; return d == e ? 0 : d > e ? 2 : c [ c . length - 1 ] < e ? 3 : - 1 < ka ( c , e , 1 ) ? 0 : 3 } function Eb ( a , b ) { var c = R ( b ) , d = x ( b , 1 ) ; if ( ! ( d in J ) ) return 1 ; d = T ( a , d , U ( d ) ) ; return Db ( c , u ( d , 1 ) ) }
function Fb ( 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 Gb ( a , b , c , d , e ) { if ( ! a . length ) return 0 ; a = new B ( a ) ; var f ; b && ( f = u ( 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 ( nb ( g ) ) , f = 1 ; else { g = new RegExp ( f ) ; ob ( a ) ; f = a . toString ( ) ; if ( f . search ( g ) ) f = ! 1 ; else { var g = f . match ( g ) [ 0 ] . length , h = f . substring ( g ) . match ( Za ) ; 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 && v ( e , 6 , f ) ; if ( 20 != f ) { if ( 2 >= a . b . length ) throw Error ( "Phone number too short after IDD" ) ; if ( c = Fb ( a ,
c ) ) return v ( e , 1 , c ) , c ; throw Error ( "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 = u ( b , 1 ) , h = new RegExp ( x ( g , 2 ) ) ; Hb ( m , b , null ) ; b = m . toString ( ) ; if ( ! N ( h , a . toString ( ) ) && N ( h , b ) || 3 == Db ( a . toString ( ) , g ) ) return c . a ( b ) , d && v ( e , 6 , 10 ) , v ( e , 1 , f ) , f } v ( e , 1 , 0 ) ; return 0 }
function Hb ( a , b , c ) { var d = a . toString ( ) , e = d . length , f = u ( b , 15 ) ; if ( e && null != f && f . length ) { var g = new RegExp ( "^(?:" + f + ")" ) ; if ( e = g . exec ( d ) ) { var f = new RegExp ( x ( u ( b , 1 ) , 2 ) ) , h = N ( f , d ) , m = e . length - 1 ; b = u ( 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 yb ( 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 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 ( kb ( b ) ) ; f = e . toString ( ) ; g = f . indexOf ( ";isub=" ) ; 0 < g && ( C ( e ) , e . a ( f . substring ( 0 , g ) ) ) ; if ( ! lb ( e . toString ( ) ) ) throw Error ( "The string supplied did not seem to be a phone number" ) ;
f = e . toString ( ) ; if ( ! ( pb ( c ) || null != f && 0 < f . length && M . test ( f ) ) ) throw Error ( "Invalid country calling code" ) ; f = new H ; d && v ( f , 5 , b ) ; a : { b = e . toString ( ) ; g = b . search ( db ) ; if ( 0 <= g && lb ( b . substring ( 0 , g ) ) ) for ( var h = b . match ( db ) , 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 && v ( f , 3 , b ) ; b = V ( a , c ) ; g = new B ; h = 0 ; m = e . toString ( ) ; try { h = Gb ( m , b , g , d , f ) } catch ( R ) { if ( "Invalid country calling code" == R . message && M . test ( m ) ) { if ( m = m . replace ( M , "" ) , h = Gb ( m , b , g , d , f ) , ! h ) throw R ; } else throw R ;
f = e . toString ( ) ; if ( ! ( pb ( c ) || null != f && 0 < f . length && M . test ( f ) ) ) throw Error ( "Invalid country calling code" ) ; f = new H ; d && v ( f , 5 , b ) ; a : { b = e . toString ( ) ; g = b . search ( db ) ; if ( 0 <= g && lb ( b . substring ( 0 , g ) ) ) for ( var h = b . match ( db ) , 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 && v ( f , 3 , b ) ; b = V ( a , c ) ; g = new B ; h = 0 ; m = e . toString ( ) ; try { h = Gb ( m , b , g , d , f ) } catch ( Q ) { if ( "Invalid country calling code" == Q . message && M . test ( m ) ) { if ( m = m . replace ( M , "" ) , h = Gb ( m , b , g , d , f ) , ! h ) throw Q ; } else throw Q ;
} h ? ( e = U ( h ) , e != c && ( b = T ( a , h , e ) ) ) : ( ob ( e ) , g . a ( e . toString ( ) ) , null != c ? ( h = x ( b , 10 ) , v ( f , 1 , h ) ) : d && La ( f , 6 ) ) ; if ( 2 > g . b . length ) throw Error ( "The string supplied is too short to be a phone number" ) ; b && ( a = new B , c = new B ( g . toString ( ) ) , Hb ( c , b , a ) , 2 != Db ( c . toString ( ) , u ( b , 1 ) ) && ( g = c , d && 0 < a . toString ( ) . length && v ( f , 7 , a . toString ( ) ) ) ) ; d = g . 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 ) ) { v ( f , 4 , ! 0 ) ; for ( a = 1 ; a < d . length - 1 && "0" == d . charAt ( a ) ; ) a ++ ; 1 != a && v ( f , 8 , a ) } v ( 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 Ib ( a ) { this . d a= RegExp ( "\u2008" ) ; this . f a= "" ; this . m = new B ; this . w = "" ; this . i = new B ; this . v = new B ; this . j = ! 0 ; this . $ = this . o = this . h a= ! 1 ; this . e a= K . a ( ) ; this . s = 0 ; this . b = new B ; this . aa = ! 1 ; this . l = "" ; this . a = new B ; this . f = [ ] ; this . g a= a ; this . g = Jb ( this , this . g a) } var Kb = new G ; v ( Kb , 11 , "NA" ) ;
var Lb = /\[([^\[\]])*\]/g , Mb = /\d(?=[^,}][^,}])/g , Nb = 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]*)+$" ) , Ob = /[- ]/ ; function Jb ( a , b ) { var c = pb ( b ) ? ub ( a . e a, b ) : 0 ; return ( c = V ( a . e a, U ( c ) ) ) ? c : Kb }
d . charAt ( 0 ) ) { v ( f , 4 , ! 0 ) ; for ( a = 1 ; a < d . length - 1 && "0" == d . charAt ( a ) ; ) a ++ ; 1 != a && v ( f , 8 , a ) } v ( 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 Ib ( a ) { this . c a= RegExp ( "\u2008" ) ; this . e a= "" ; this . m = new B ; this . w = "" ; this . i = new B ; this . v = new B ; this . j = ! 0 ; this . $ = this . o = this . g a= ! 1 ; this . d a= K . a ( ) ; this . s = 0 ; this . b = new B ; this . aa = ! 1 ; this . l = "" ; this . a = new B ; this . f = [ ] ; this . f a= a ; this . g = Jb ( this , this . f a) } var Kb = new G ; v ( Kb , 11 , "NA" ) ;
var Lb = /\[([^\[\]])*\]/g , Mb = /\d(?=[^,}][^,}])/g , Nb = 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]*)+$" ) , Ob = /[- ]/ ; function Jb ( a , b ) { var c = pb ( b ) ? ub ( a . d a, b ) : 0 ; return ( c = V ( a . d a, U ( c ) ) ) ? c : Kb }
function Pb ( 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 ( Lb , "\\d" ) ; h = h . replace ( Mb , "\\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 = Ob . test ( u ( d , 4 ) ) , a . s = 0 , ! 0 } return a . j = ! 1 }
function Qb ( 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 = u ( 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 Rb ( a , b ) { a . f a= Sb ( a , b ) ; return a . f a}
function Sb ( a , b ) { a . i . a ( b ) ; var c = b ; if ( Za . test ( c ) || 1 == a . i . b . length && Ya . 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 . h a= ! 0 ; if ( ! a . j ) { if ( ! a . h a) if ( Tb ( a ) ) { if ( Ub ( a ) ) return Vb ( 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 != Wb ( a ) ) return a . b . a ( " " ) , Vb ( a ) ; return a . i . toString ( ) } switch ( a . v . b . length ) { case 0 : case 1 : case 2 : return a . i . toString ( ) ; case 3 : if ( Tb ( a ) ) a . $ = ! 0 ; else return a . l =
function Qb ( 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 = u ( 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 Rb ( a , b ) { a . e a= Sb ( a , b ) ; return a . e a}
function Sb ( a , b ) { a . i . a ( b ) ; var c = b ; if ( Za . test ( c ) || 1 == a . i . b . length && Ya . 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 . g a= ! 0 ; if ( ! a . j ) { if ( ! a . g a) if ( Tb ( a ) ) { if ( Ub ( a ) ) return Vb ( 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 != Wb ( a ) ) return a . b . a ( " " ) , Vb ( a ) ; return a . i . toString ( ) } switch ( a . v . b . length ) { case 0 : case 1 : case 2 : return a . i . toString ( ) ; case 3 : if ( Tb ( a ) ) a . $ = ! 0 ; else return a . l =
Wb ( a ) , Xb ( a ) ; default : if ( a . $ ) return Ub ( a ) && ( a . $ = ! 1 ) , a . b . toString ( ) + a . a . toString ( ) ; if ( 0 < a . f . length ) { c = Yb ( a , b ) ; d = Zb ( a ) ; if ( 0 < d . length ) return d ; Qb ( a , a . a . toString ( ) ) ; return Pb ( a ) ? $b ( a ) : a . j ? ac ( a , c ) : a . i . toString ( ) } return Xb ( a ) } } function Vb ( a ) { a . j = ! 0 ; a . $ = ! 1 ; a . f = [ ] ; a . s = 0 ; C ( a . m ) ; a . w = "" ; return Xb ( a ) } function Zb ( 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 = Ob . test ( u ( e , 4 ) ) , b = b . replace ( new RegExp ( f , "g" ) , u ( e , 2 ) ) , ac ( a , b ) } return "" }
function ac ( 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 Xb ( a ) { var b = a . a . toString ( ) ; if ( 3 <= b . length ) { for ( var c = a . o && 0 < y ( a . g , 20 ) ? w ( a . g , 20 ) : w ( a . g , 19 ) , d = c . length , e = 0 ; e < d ; ++ e ) { var f = c [ e ] , g ; ( g = ! t ( a . g , 12 ) || a . o || u ( f , 6 ) ) || ( g = x ( f , 4 ) , g = ! g . length || jb . test ( g ) ) ; g && Nb . test ( x ( f , 2 ) ) && a . f . push ( f ) } Qb ( a , b ) ; b = Zb ( a ) ; return 0 < b . length ? b : Pb ( a ) ? $b ( a ) : a . i . toString ( ) } return ac ( a , b ) }
function $b ( a ) { var b = a . a . toString ( ) , c = b . length ; if ( 0 < c ) { for ( var d = "" , e = 0 ; e < c ; e ++ ) d = Yb ( a , b . charAt ( e ) ) ; return a . j ? ac ( a , d ) : a . i . toString ( ) } return a . b . toString ( ) }
function Wb ( a ) { var b = a . a . toString ( ) , c = 0 , d ; 1 != u ( 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 ) : t ( a . g , 15 ) && ( d = new RegExp ( "^(?:" + u ( 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 Tb ( a ) { var b = a . v . toString ( ) , c = new RegExp ( "^(?:\\+|" + u ( 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 Ub ( a ) { if ( ! a . a . b . length ) return ! 1 ; var b = new B , c = Fb ( a . a , b ) ; if ( ! c ) return ! 1 ; C ( a . a ) ; a . a . a ( b . toString ( ) ) ; b = U ( c ) ; "001" == b ? a . g = V ( a . e a, "" + c ) : b != a . g a&& ( a . g = Jb ( a , b ) ) ; a . b . a ( "" + c ) . a ( " " ) ; a . l = "" ; return ! 0 }
function Yb ( a , b ) { var c = a . m . toString ( ) ; if ( 0 <= c . substring ( a . s ) . search ( a . d a) ) { var d = c . search ( a . d a) , c = c . replace ( a . d a, 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 bc ( ) { var a = pa ( "phoneNumber" ) . value , b = pa ( "defaultCountry" ) . value , c = pa ( "carrierCode" ) . value , d = new B ; try { var e = K . a ( ) , f ; if ( ! pb ( b ) && 0 < a . length && "+" != a . charAt ( 0 ) ) throw Error ( "Invalid country calling code" ) ; f = yb ( e , a , b , ! 0 ) ; d . a ( "****Parsing Result:****\n" ) ; d . a ( qa ( ( new A ( 1 ) ) . g ( f ) ) ) ; d . a ( "\n\n****Validation Results:****" ) ; var g = 0 == Eb ( e , f ) ; d . a ( "\nResult from isPossibleNumber(): " ) ; d . a ( g ) ; if ( g ) { var h = xb ( e , f ) ; d . a ( "\nResult from isValidNumber(): " ) ; d . a ( h ) ; h && b && "ZZ" != b && ( d . a ( "\nResult from isValidNumberForRegion(): " ) ,
d . a ( Cb ( e , f , b ) ) ) ; d . a ( "\nPhone Number region: " ) ; d . a ( Bb ( e , f ) ) ; d . a ( "\nResult from getNumberType(): " ) ; var m ; var D = Bb ( e , f ) , R = T ( e , x ( f , 1 ) , D ) ; if ( R ) { var dc = Q ( f ) ; m = Ab ( dc , R ) } 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(): " ) ;
function Tb ( a ) { var b = a . v . toString ( ) , c = new RegExp ( "^(?:\\+|" + u ( 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 Ub ( a ) { if ( ! a . a . b . length ) return ! 1 ; var b = new B , c = Fb ( a . a , b ) ; if ( ! c ) return ! 1 ; C ( a . a ) ; a . a . a ( b . toString ( ) ) ; b = U ( c ) ; "001" == b ? a . g = V ( a . d a, "" + c ) : b != a . f a&& ( a . g = Jb ( a , b ) ) ; a . b . a ( "" + c ) . a ( " " ) ; a . l = "" ; return ! 0 }
function Yb ( a , b ) { var c = a . m . toString ( ) ; if ( 0 <= c . substring ( a . s ) . search ( a . c a) ) { var d = c . search ( a . c a) , c = c . replace ( a . c a, 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 bc ( ) { var a = pa ( "phoneNumber" ) . value , b = pa ( "defaultCountry" ) . value , c = pa ( "carrierCode" ) . value , d = new B ; try { var e = K . a ( ) , f ; if ( ! pb ( b ) && 0 < a . length && "+" != a . charAt ( 0 ) ) throw Error ( "Invalid country calling code" ) ; f = yb ( e , a , b , ! 0 ) ; d . a ( "****Parsing Result:****\n" ) ; d . a ( qa ( ( new A ( 1 ) ) . g ( f ) ) ) ; d . a ( "\n\n****Validation Results:****" ) ; var g = 0 == Eb ( e , f ) ; d . a ( "\nResult from isPossibleNumber(): " ) ; d . a ( g ) ; if ( g ) { var h = xb ( e , f ) ; d . a ( "\nResult from isValidNumber(): " ) ; d . a ( h ) ; h && b && "ZZ" != b && ( d . a ( "\nResult from isValidNumberForRegion(): " ) ,
d . a ( Cb ( e , f , b ) ) ) ; d . a ( "\nPhone Number region: " ) ; d . a ( Bb ( e , f ) ) ; d . a ( "\nResult from getNumberType(): " ) ; var m ; var D = Bb ( e , f ) , Q = T ( e , x ( f , 1 ) , D ) ; if ( Q ) { var dc = R ( f ) ; m = Ab ( dc , Q ) } 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 ( Eb ( 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 ? P ( e , f , 0 ) : "invalid" ) ; d . a ( "\nOriginal format: " ) ; d . a ( vb ( e , f , b ) ) ; d . a ( "\nNational format: " ) ; d . a ( P ( e , f , 2 ) ) ; d . a ( "\nInternational format: " ) ; d . a ( h ? P ( e , f , 1 ) : "invalid" ) ; d . a ( "\nOut-of-country format from US: " ) ; d . a ( h ? tb ( e ,
f , "US" ) : "invalid" ) ; d . a ( "\nOut-of-country format from Switzerland: " ) ; d . a ( h ? tb ( e , f , "CH" ) : "invalid" ) ; 0 < c . length && ( d . a ( "\nNational format with carrier code: " ) , d . a ( sb ( e , f , c ) ) ) ; d . a ( "\n\n****AsYouTypeFormatter Results****" ) ; for ( var ec = new Ib ( b ) , fc = a . length , b = 0 ; b < fc ; ++ b ) { var mb = a . charAt ( b ) ; d . a ( "\nChar entered: " ) ; d . a ( mb ) ; d . a ( " Output: " ) ; d . a ( Rb ( ec , mb ) ) } } catch ( gc ) { d . a ( "\n" + gc . toString ( ) ) } pa ( "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 cc ; if ( cc = ! X . length ) cc = void 0 !== bc ; cc ? Y [ Z ] = bc : Y [ Z ] ? Y = Y [ Z ] : Y = Y [ Z ] = { } } ; } ) ( ) ;