diff --git a/package-lock.json b/package-lock.json
index 1f90f838..c74e4cbb 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "tinode-webapp",
- "version": "0.21.0-rc1",
+ "version": "0.21.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "tinode-webapp",
- "version": "0.21.0-rc1",
+ "version": "0.21.0",
"license": "Apache-2.0",
"dependencies": {
"firebase": "^9.14.0",
@@ -14,7 +14,7 @@
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-intl": "^6.2.1",
- "tinode-sdk": "^0.21.0-rc1",
+ "tinode-sdk": "^0.21.0",
"webm-duration-fix": "^1.0.4"
},
"devDependencies": {
@@ -60,9 +60,9 @@
}
},
"node_modules/@babel/compat-data": {
- "version": "7.20.10",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz",
- "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==",
+ "version": "7.20.14",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.14.tgz",
+ "integrity": "sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==",
"dev": true,
"engines": {
"node": ">=6.9.0"
@@ -99,9 +99,9 @@
}
},
"node_modules/@babel/generator": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz",
- "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==",
+ "version": "7.20.14",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.14.tgz",
+ "integrity": "sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==",
"dev": true,
"dependencies": {
"@babel/types": "^7.20.7",
@@ -477,9 +477,9 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.20.13",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.13.tgz",
- "integrity": "sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==",
+ "version": "7.20.15",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.15.tgz",
+ "integrity": "sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==",
"dev": true,
"bin": {
"parser": "bin/babel-parser.js"
@@ -1024,9 +1024,9 @@
}
},
"node_modules/@babel/plugin-transform-block-scoping": {
- "version": "7.20.11",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.11.tgz",
- "integrity": "sha512-tA4N427a7fjf1P0/2I4ScsHGc5jcHPbb30xMbaTke2gxDuWpUfXDuX1FEymJwKk4tuGUvGcejAR6HdZVqmmPyw==",
+ "version": "7.20.15",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.15.tgz",
+ "integrity": "sha512-Vv4DMZ6MiNOhu/LdaZsT/bsLRxgL94d269Mv4R/9sp6+Mp++X/JqypZYypJXLlM4mlL352/Egzbzr98iABH1CA==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.20.2"
@@ -1744,14 +1744,14 @@
}
},
"node_modules/@firebase/analytics": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.9.1.tgz",
- "integrity": "sha512-ARXtNHDrjDhVrs5MqmFDpr5yyCw89r1eHLd+Dw9fotAufxL1WTmo6O9bJqKb7QulIJaA84vsFokA3NaO2DNCnQ==",
+ "version": "0.9.3",
+ "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.9.3.tgz",
+ "integrity": "sha512-XdYHBi6RvHYVAHGyLxXX0uRPwZmGeqw1JuWS1rMEeRF/jvbxnrL81kcFAHZVRkEvG9bXAJgL2fX9wmDo3e622w==",
"dependencies": {
- "@firebase/component": "0.6.1",
- "@firebase/installations": "0.6.1",
+ "@firebase/component": "0.6.3",
+ "@firebase/installations": "0.6.3",
"@firebase/logger": "0.4.0",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -1759,14 +1759,14 @@
}
},
"node_modules/@firebase/analytics-compat": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/@firebase/analytics-compat/-/analytics-compat-0.2.1.tgz",
- "integrity": "sha512-qfFAGS4YFsBbmZwVa7xaDnGh7k9BKF4o/piyjySAv0lxRYd74/tSrm3kMk1YM7GCti7PdbgKvl6oSR70zMFQjw==",
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@firebase/analytics-compat/-/analytics-compat-0.2.3.tgz",
+ "integrity": "sha512-HmvbB4GMgh8AUlIDIo/OuFENLCGRXxMvtOueK+m8+DcfqBvG+mkii0Mi9ovo0TnMM62cy3oBYG7PHdjIQNLSLA==",
"dependencies": {
- "@firebase/analytics": "0.9.1",
+ "@firebase/analytics": "0.9.3",
"@firebase/analytics-types": "0.8.0",
- "@firebase/component": "0.6.1",
- "@firebase/util": "1.9.0",
+ "@firebase/component": "0.6.3",
+ "@firebase/util": "1.9.2",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -1779,25 +1779,25 @@
"integrity": "sha512-iRP+QKI2+oz3UAh4nPEq14CsEjrjD6a5+fuypjScisAh9kXKFvdJOZJDwk7kikLvWVLGEs9+kIUS4LPQV7VZVw=="
},
"node_modules/@firebase/app": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.9.1.tgz",
- "integrity": "sha512-Z8wOSol+pvp4CFyY1mW+aqdZlrwhW/ha2YXQ6/avJ56c5Hnvt4k6GktZE6o5NyzvfJTgNHryhMtnEJMIuLaT4w==",
+ "version": "0.9.3",
+ "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.9.3.tgz",
+ "integrity": "sha512-G79JUceVDaHRZ4WkA11GyVldVXhdyRJRwWVQFFvAAVfQJLvy2TA6lQjeUn28F6FmeUWxDGwPC30bxCRWq7Op8Q==",
"dependencies": {
- "@firebase/component": "0.6.1",
+ "@firebase/component": "0.6.3",
"@firebase/logger": "0.4.0",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"idb": "7.0.1",
"tslib": "^2.1.0"
}
},
"node_modules/@firebase/app-check": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.6.1.tgz",
- "integrity": "sha512-gDG4Gr4n3MnBZAAwLMynU9u/b+f1y87lCezfwlmN1gUxD85mJcvp4hLf87fACTyRkdVfe8hqSXm+MOYn2bMGLg==",
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.6.3.tgz",
+ "integrity": "sha512-T9f9ceFLs7x4D2T6whu5a6j7B3qPuYHiZHZxW6DkMh/FoMmRA4/q/HVyu01i9+LyJJx2Xdo6eCcj6ofs9YZjqA==",
"dependencies": {
- "@firebase/component": "0.6.1",
+ "@firebase/component": "0.6.3",
"@firebase/logger": "0.4.0",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -1805,15 +1805,15 @@
}
},
"node_modules/@firebase/app-check-compat": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/@firebase/app-check-compat/-/app-check-compat-0.3.1.tgz",
- "integrity": "sha512-IaSYdmaoQgWUrN6rjAYJs1TGXj38Wl9damtrDEyJBf7+rrvKshPAP/CP6e2bd89XOMZKbvy8rKoe1CqX1K3ZjQ==",
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@firebase/app-check-compat/-/app-check-compat-0.3.3.tgz",
+ "integrity": "sha512-25AQ4W7WUL8OWas40GsABuNU622Dm1ojbfeZ03uKtLj5Af7FerJ25u7zkgm+11pc6rpr5v8E5oxEG9vmNRndEA==",
"dependencies": {
- "@firebase/app-check": "0.6.1",
+ "@firebase/app-check": "0.6.3",
"@firebase/app-check-types": "0.5.0",
- "@firebase/component": "0.6.1",
+ "@firebase/component": "0.6.3",
"@firebase/logger": "0.4.0",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -1831,14 +1831,14 @@
"integrity": "sha512-uwSUj32Mlubybw7tedRzR24RP8M8JUVR3NPiMk3/Z4bCmgEKTlQBwMXrehDAZ2wF+TsBq0SN1c6ema71U/JPyQ=="
},
"node_modules/@firebase/app-compat": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.2.1.tgz",
- "integrity": "sha512-UgPy2ZO0li0j4hAkaZKY9P1TuJEx5RylhUWPzCb8DZhBm+uHdfsFI9Yr+wMlu6qQH2sWoweFtYU6ljGzxwdctw==",
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.2.3.tgz",
+ "integrity": "sha512-sX6rD1KFX6K2CuCnQvc9jZLOgAFZ+sv2jKKahIl4SbTM561D682B8n4Jtx/SgDrvcTVTdb05g4NhZOws9hxYxA==",
"dependencies": {
- "@firebase/app": "0.9.1",
- "@firebase/component": "0.6.1",
+ "@firebase/app": "0.9.3",
+ "@firebase/component": "0.6.3",
"@firebase/logger": "0.4.0",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"tslib": "^2.1.0"
}
},
@@ -1848,13 +1848,13 @@
"integrity": "sha512-AeweANOIo0Mb8GiYm3xhTEBVCmPwTYAu9Hcd2qSkLuga/6+j9b1Jskl5bpiSQWy9eJ/j5pavxj6eYogmnuzm+Q=="
},
"node_modules/@firebase/auth": {
- "version": "0.21.1",
- "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-0.21.1.tgz",
- "integrity": "sha512-/ap7eT9X7kZTD4Fn2m+nJyC1a9DfFo0H4euoJDN8U+JCMN+GOqkPbkMWCey7wV510WNoPCZQ05+nsAqKkbEVJw==",
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-0.21.3.tgz",
+ "integrity": "sha512-HPbcwgArLBVTowFcn4qaQr6LCx7BidI9yrQ5MRbQNv4PsgK/3UGpzCYaNPPbvgr9fe+0jNdJO+uC0+dk4xIzCQ==",
"dependencies": {
- "@firebase/component": "0.6.1",
+ "@firebase/component": "0.6.3",
"@firebase/logger": "0.4.0",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"node-fetch": "2.6.7",
"tslib": "^2.1.0"
},
@@ -1863,14 +1863,14 @@
}
},
"node_modules/@firebase/auth-compat": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.3.1.tgz",
- "integrity": "sha512-Ndcaam+IL1TuJ6hZ0EcQ+v261cK3kPm4mvUtouoTfl3FNinm9XvhccN8ojuaRtIV9TiY18mzGjONKF5ZCXLIZw==",
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.3.3.tgz",
+ "integrity": "sha512-9asUuGtkzUVELH3LYXdiom1nVVV9bqEPqzHohanoofHL/oVTNcHZ4AQ5CXjNATfb6c1WH32U+nEuPiYg26UUIw==",
"dependencies": {
- "@firebase/auth": "0.21.1",
+ "@firebase/auth": "0.21.3",
"@firebase/auth-types": "0.12.0",
- "@firebase/component": "0.6.1",
- "@firebase/util": "1.9.0",
+ "@firebase/component": "0.6.3",
+ "@firebase/util": "1.9.2",
"node-fetch": "2.6.7",
"tslib": "^2.1.0"
},
@@ -1893,57 +1893,57 @@
}
},
"node_modules/@firebase/component": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.1.tgz",
- "integrity": "sha512-yvKthG0InjFx9aOPnh6gk0lVNfNVEtyq3LwXgZr+hOwD0x/CtXq33XCpqv0sQj5CA4FdMy8OO+y9edI+ZUw8LA==",
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.3.tgz",
+ "integrity": "sha512-rnhq5SOsB5nuJphZF50iwqnBiuuyg9kdnlUn1rBrKfu7/cUVJZF5IG1cWrL0rXXyiZW1WBI/J2pmTvVO8dStGQ==",
"dependencies": {
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"tslib": "^2.1.0"
}
},
"node_modules/@firebase/database": {
- "version": "0.14.1",
- "resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.14.1.tgz",
- "integrity": "sha512-iX6/p7hoxUMbYAGZD+D97L05xQgpkslF2+uJLZl46EdaEfjVMEwAdy7RS/grF96kcFZFg502LwPYTXoIdrZqOA==",
+ "version": "0.14.3",
+ "resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.14.3.tgz",
+ "integrity": "sha512-J76W6N7JiVkLaAtPyjaGRkrsIu9pi6iZikuGGtGjqvV19vkn7oiL4Hbo5uTYCMd4waTUWoL9iI08eX184W+5GQ==",
"dependencies": {
"@firebase/auth-interop-types": "0.2.1",
- "@firebase/component": "0.6.1",
+ "@firebase/component": "0.6.3",
"@firebase/logger": "0.4.0",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"faye-websocket": "0.11.4",
"tslib": "^2.1.0"
}
},
"node_modules/@firebase/database-compat": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-0.3.1.tgz",
- "integrity": "sha512-sI7LNh0C8PCq9uUKjrBKLbZvqHTSjsf2LeZRxin+rHVegomjsOAYk9OzYwxETWh3URhpMkCM8KcTl7RVwAldog==",
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-0.3.3.tgz",
+ "integrity": "sha512-r+L9jTbvsnb7sD+xz6UKU39DgBWqB2pyjzPNdBeriGC9Ssa2MAZe0bIqjCQg51RRXYc/aa/zK1Q2/4uesZeVgQ==",
"dependencies": {
- "@firebase/component": "0.6.1",
- "@firebase/database": "0.14.1",
- "@firebase/database-types": "0.10.1",
+ "@firebase/component": "0.6.3",
+ "@firebase/database": "0.14.3",
+ "@firebase/database-types": "0.10.3",
"@firebase/logger": "0.4.0",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"tslib": "^2.1.0"
}
},
"node_modules/@firebase/database-types": {
- "version": "0.10.1",
- "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-0.10.1.tgz",
- "integrity": "sha512-UgUx9VakTHbP2WrVUdYrUT2ofTFVfWjGW2O1fwuvvMyo6WSnuSyO5nB1u0cyoMPvO25dfMIUVerfK7qFfwGL3Q==",
+ "version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-0.10.3.tgz",
+ "integrity": "sha512-Hu34CDhHYZsd2eielr0jeaWrTJk8Hz0nd7WsnYDnXtQX4i49ppgPesUzPdXVBdIBLJmT0ZZRvT7qWHknkOT+zg==",
"dependencies": {
"@firebase/app-types": "0.9.0",
- "@firebase/util": "1.9.0"
+ "@firebase/util": "1.9.2"
}
},
"node_modules/@firebase/firestore": {
- "version": "3.8.1",
- "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-3.8.1.tgz",
- "integrity": "sha512-oc2HMkUnq/zF+g9o974tp5RVCdXCnrU8e5S98ajfWG/hGV+8pr4i6vIa4z0yEXKWGi4X0FguxrC69z1dxEJbNg==",
+ "version": "3.8.3",
+ "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-3.8.3.tgz",
+ "integrity": "sha512-4xR3Mqj95bxHg3hZnz0O+LQrHkjq+siT2y+B9da6u68qJ8bzzT42JaFgd1vifhbBpVbBzpFaS2RuCq2E+kGv9g==",
"dependencies": {
- "@firebase/component": "0.6.1",
+ "@firebase/component": "0.6.3",
"@firebase/logger": "0.4.0",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"@firebase/webchannel-wrapper": "0.9.0",
"@grpc/grpc-js": "~1.7.0",
"@grpc/proto-loader": "^0.6.13",
@@ -1958,14 +1958,14 @@
}
},
"node_modules/@firebase/firestore-compat": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.3.1.tgz",
- "integrity": "sha512-7eE4O2ASyy5X2h4a+KCRt0ZpliUAKo2jrKxKl1ZVCnOOjSCkXXeRVRG9eNZRqBwukhdwskJTM9acs0WxmKOYLA==",
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.3.3.tgz",
+ "integrity": "sha512-fMTsSC0s2cF5w2+JoB0dWD/o4kXtLrUCPGnZPuz4S0bqTN2t0vHr3gdAsQLtnadgwB78ACtinYmf4Udwx7TzDg==",
"dependencies": {
- "@firebase/component": "0.6.1",
- "@firebase/firestore": "3.8.1",
+ "@firebase/component": "0.6.3",
+ "@firebase/firestore": "3.8.3",
"@firebase/firestore-types": "2.5.1",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -1982,15 +1982,15 @@
}
},
"node_modules/@firebase/functions": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.9.1.tgz",
- "integrity": "sha512-xCSSU4aVSqYU+lCqhn9o5jJcE1KLUOOKyJfCTdCSCyTn2J3vl9Vk4TDm3JSb1Eu6XsNWtxeMW188F/GYxuMWcw==",
+ "version": "0.9.3",
+ "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.9.3.tgz",
+ "integrity": "sha512-tPJgYY2ROQSYuzvgxZRoHeDj+Ic07/bWHwaftgTriawtupmFOkt5iikuhJSJUhaOpFh9TB335OvCXJw1N+BIlQ==",
"dependencies": {
"@firebase/app-check-interop-types": "0.2.0",
"@firebase/auth-interop-types": "0.2.1",
- "@firebase/component": "0.6.1",
+ "@firebase/component": "0.6.3",
"@firebase/messaging-interop-types": "0.2.0",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"node-fetch": "2.6.7",
"tslib": "^2.1.0"
},
@@ -1999,14 +1999,14 @@
}
},
"node_modules/@firebase/functions-compat": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/@firebase/functions-compat/-/functions-compat-0.3.1.tgz",
- "integrity": "sha512-f2D2XoRN+QCziCrUL7UrLaBEoG3v2iAeyNwbbOQ3vv0rI0mtku2/yeB2OINz5/iI6oIrBPUMNLr5fitofj7FpQ==",
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@firebase/functions-compat/-/functions-compat-0.3.3.tgz",
+ "integrity": "sha512-UIAJ2gzNq0p/61cXqkpi9DnlQt0hdlGqgmL5an7KuJth2Iv5uGpKg/+OapAZxPuiUNZgTEyZDB7kNBHvnxWq5w==",
"dependencies": {
- "@firebase/component": "0.6.1",
- "@firebase/functions": "0.9.1",
+ "@firebase/component": "0.6.3",
+ "@firebase/functions": "0.9.3",
"@firebase/functions-types": "0.6.0",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -2019,12 +2019,12 @@
"integrity": "sha512-hfEw5VJtgWXIRf92ImLkgENqpL6IWpYaXVYiRkFY1jJ9+6tIhWM7IzzwbevwIIud/jaxKVdRzD7QBWfPmkwCYw=="
},
"node_modules/@firebase/installations": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.6.1.tgz",
- "integrity": "sha512-gpobP09LLLakBfNCL04fyblfyb3oX1pn+iNmELygrcAkXTO13IAMuOzThI+Xk4NHQZMX1p5GFSAiGbG4yfsSUQ==",
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.6.3.tgz",
+ "integrity": "sha512-20JFWm+tweNoRjRbz8/Y4I7O5pUJGZsFKCkLl1qNxfNYECSfrZUuozIDJDZC/MeVn5+kB9CwjThDlgQEPrfLdg==",
"dependencies": {
- "@firebase/component": "0.6.1",
- "@firebase/util": "1.9.0",
+ "@firebase/component": "0.6.3",
+ "@firebase/util": "1.9.2",
"idb": "7.0.1",
"tslib": "^2.1.0"
},
@@ -2033,14 +2033,14 @@
}
},
"node_modules/@firebase/installations-compat": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/@firebase/installations-compat/-/installations-compat-0.2.1.tgz",
- "integrity": "sha512-X4IBVKajEeaE45zWX0Y1q8ey39aPFLa+BsUoYzsduMzCxcMBIPZd5/lV1EVGt8SN3+unnC2J75flYkxXVlhBoQ==",
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@firebase/installations-compat/-/installations-compat-0.2.3.tgz",
+ "integrity": "sha512-K9rKM/ym06lkpaKz7bMLxzHK/HEk65XfLJBV+dJkIuWeO0EqqC9VFGrpWAo0QmgC4BqbU58T6VBbzoJjb0gaFw==",
"dependencies": {
- "@firebase/component": "0.6.1",
- "@firebase/installations": "0.6.1",
+ "@firebase/component": "0.6.3",
+ "@firebase/installations": "0.6.3",
"@firebase/installations-types": "0.5.0",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -2064,14 +2064,14 @@
}
},
"node_modules/@firebase/messaging": {
- "version": "0.12.1",
- "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.12.1.tgz",
- "integrity": "sha512-/F+2OWarR8TcJJVlQS6zBoHHfXMgfgR0/ukQ3h7Ow3WZ3WZ9+Sj/gvxzothXZm+WtBylfXuhiANFgHEDFL0J0w==",
+ "version": "0.12.3",
+ "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.12.3.tgz",
+ "integrity": "sha512-a3ZKcGDiV2sKmQDB56PpgL1yjFxXCtff2+v1grnAZZ4GnfNQ74t2EHCbmgY7xRX7ThzMqug54oxhuk4ur0MIoA==",
"dependencies": {
- "@firebase/component": "0.6.1",
- "@firebase/installations": "0.6.1",
+ "@firebase/component": "0.6.3",
+ "@firebase/installations": "0.6.3",
"@firebase/messaging-interop-types": "0.2.0",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"idb": "7.0.1",
"tslib": "^2.1.0"
},
@@ -2080,13 +2080,13 @@
}
},
"node_modules/@firebase/messaging-compat": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/@firebase/messaging-compat/-/messaging-compat-0.2.1.tgz",
- "integrity": "sha512-BykvXtAWOs0W4Ik79lNfMKSxaUCtOJ47PJ9Vw2ySHZ14vFFNuDAtRTOBOlAFhUpsHqRoQFvFCkBGsRIQYq8hzw==",
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@firebase/messaging-compat/-/messaging-compat-0.2.3.tgz",
+ "integrity": "sha512-MmuuohXV2YRzIoJmDngI5qqO/cF2q7SdAaw7k4r61W3ReJy7x4/rtqrIvwNVhM6X/X8NFGBbsYKsCfRHWjFdkg==",
"dependencies": {
- "@firebase/component": "0.6.1",
- "@firebase/messaging": "0.12.1",
- "@firebase/util": "1.9.0",
+ "@firebase/component": "0.6.3",
+ "@firebase/messaging": "0.12.3",
+ "@firebase/util": "1.9.2",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -2099,14 +2099,14 @@
"integrity": "sha512-ujA8dcRuVeBixGR9CtegfpU4YmZf3Lt7QYkcj693FFannwNuZgfAYaTmbJ40dtjB81SAu6tbFPL9YLNT15KmOQ=="
},
"node_modules/@firebase/performance": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.6.1.tgz",
- "integrity": "sha512-mT/CWz3CLgyn/a3sO/TJgrTt+RA3DfuvWwGXY9zmIiuBZY2bDi1M2uMefJdJKc9sBUPRajNF6RL10nGYq3BAuQ==",
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.6.3.tgz",
+ "integrity": "sha512-NQmQN6Ete7i9jz1mzULJZEGvsOmwwdUy6vpqnhUxSFMYPnlBKjX+yypCUUJDDN5zff5+kfwSD1qCyUAaS0xWUA==",
"dependencies": {
- "@firebase/component": "0.6.1",
- "@firebase/installations": "0.6.1",
+ "@firebase/component": "0.6.3",
+ "@firebase/installations": "0.6.3",
"@firebase/logger": "0.4.0",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -2114,15 +2114,15 @@
}
},
"node_modules/@firebase/performance-compat": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/@firebase/performance-compat/-/performance-compat-0.2.1.tgz",
- "integrity": "sha512-4mn6eS7r2r+ZAHvU0OHE+3ZO+x6gOVhf2ypBoijuDNaRNjSn9GcvA8udD4IbJ8FNv/k7mbbtA9AdxVb701Lr1g==",
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@firebase/performance-compat/-/performance-compat-0.2.3.tgz",
+ "integrity": "sha512-I3rqZsIhauXn4iApfj1ttKQdlti/r8OZBG4YK10vxKSdhAzTIDWDKEsdoCXvvKLwplcMv36sM3WPAPGQLqY5MQ==",
"dependencies": {
- "@firebase/component": "0.6.1",
+ "@firebase/component": "0.6.3",
"@firebase/logger": "0.4.0",
- "@firebase/performance": "0.6.1",
+ "@firebase/performance": "0.6.3",
"@firebase/performance-types": "0.2.0",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -2135,14 +2135,14 @@
"integrity": "sha512-kYrbr8e/CYr1KLrLYZZt2noNnf+pRwDq2KK9Au9jHrBMnb0/C9X9yWSXmZkFt4UIdsQknBq8uBB7fsybZdOBTA=="
},
"node_modules/@firebase/remote-config": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.4.1.tgz",
- "integrity": "sha512-RCzBH3FjAPRSP3M1T7jdxLYBesIdLtNIQ0fR9ywJpGSSa0kIXEJ9iSZMTP+9pJtaCxz8db07FvjEqg7Y+lgjzg==",
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.4.3.tgz",
+ "integrity": "sha512-Q6d4jBWZoNt6SYq87bjtDGUHFkKwAmGnNjWyRjl14AZqE1ilgd9NZHmutharlYJ3LvxMsid80HdK5SgGEpIPfg==",
"dependencies": {
- "@firebase/component": "0.6.1",
- "@firebase/installations": "0.6.1",
+ "@firebase/component": "0.6.3",
+ "@firebase/installations": "0.6.3",
"@firebase/logger": "0.4.0",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -2150,15 +2150,15 @@
}
},
"node_modules/@firebase/remote-config-compat": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/@firebase/remote-config-compat/-/remote-config-compat-0.2.1.tgz",
- "integrity": "sha512-RPCj7c2Q3QxMgJH3YCt0iD57KppFApghxAGETzlr6Jm6vT7k0vqvk2KgRBgKa4koJBsgwlUtRn2roaCqUEadyg==",
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@firebase/remote-config-compat/-/remote-config-compat-0.2.3.tgz",
+ "integrity": "sha512-w/ZL03YgYaXq03xIRyJ5oPhXZi6iDsY/v0J9Y7I7SqxCYytEnHVrL9nvBqd9R94y5LRAVNPCLokJeeizaUz4VQ==",
"dependencies": {
- "@firebase/component": "0.6.1",
+ "@firebase/component": "0.6.3",
"@firebase/logger": "0.4.0",
- "@firebase/remote-config": "0.4.1",
+ "@firebase/remote-config": "0.4.3",
"@firebase/remote-config-types": "0.3.0",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -2171,12 +2171,12 @@
"integrity": "sha512-RtEH4vdcbXZuZWRZbIRmQVBNsE7VDQpet2qFvq6vwKLBIQRQR5Kh58M4ok3A3US8Sr3rubYnaGqZSurCwI8uMA=="
},
"node_modules/@firebase/storage": {
- "version": "0.10.1",
- "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.10.1.tgz",
- "integrity": "sha512-eN4ME+TFCh5KfyG9uo8PhE6cgKjK5Rb9eucQg1XEyLHMiaZiUv2xSuWehJn0FaL+UdteoaWKuRUZ4WXRDskXrA==",
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.11.1.tgz",
+ "integrity": "sha512-Xv8EG2j52ugF2xayBz26U9J0VBXHXPMVxSN+ph3R3BSoHxvMLaPu+qUYKHavSt+zbcgPH2GyBhrCdJK6SaDFPA==",
"dependencies": {
- "@firebase/component": "0.6.1",
- "@firebase/util": "1.9.0",
+ "@firebase/component": "0.6.3",
+ "@firebase/util": "1.9.2",
"node-fetch": "2.6.7",
"tslib": "^2.1.0"
},
@@ -2185,14 +2185,14 @@
}
},
"node_modules/@firebase/storage-compat": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/@firebase/storage-compat/-/storage-compat-0.2.1.tgz",
- "integrity": "sha512-H0oFdYsMn2Z6tP9tlVERBkJiZsCbFAcl3Li1dnpvDg9g323egdjCnUUgH/tJODRR/Y84iZSNRkg4FvHDVI/o7Q==",
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/@firebase/storage-compat/-/storage-compat-0.3.1.tgz",
+ "integrity": "sha512-6HaTvWsT5Yy3j4UpCZpMcFUYEkJ2XYWukdyTl02u6VjSBRLvkhOXPzEfMvgVWqhnF/rYVfPdjrZ904wk5OxtmQ==",
"dependencies": {
- "@firebase/component": "0.6.1",
- "@firebase/storage": "0.10.1",
- "@firebase/storage-types": "0.7.0",
- "@firebase/util": "1.9.0",
+ "@firebase/component": "0.6.3",
+ "@firebase/storage": "0.11.1",
+ "@firebase/storage-types": "0.8.0",
+ "@firebase/util": "1.9.2",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -2200,18 +2200,18 @@
}
},
"node_modules/@firebase/storage-types": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.7.0.tgz",
- "integrity": "sha512-n/8pYd82hc9XItV3Pa2KGpnuJ/2h/n/oTAaBberhe6GeyWQPnsmwwRK94W3GxUwBA/ZsszBAYZd7w7tTE+6XXA==",
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.8.0.tgz",
+ "integrity": "sha512-isRHcGrTs9kITJC0AVehHfpraWFui39MPaU7Eo8QfWlqW7YPymBmRgjDrlOgFdURh6Cdeg07zmkLP5tzTKRSpg==",
"peerDependencies": {
"@firebase/app-types": "0.x",
"@firebase/util": "1.x"
}
},
"node_modules/@firebase/util": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.9.0.tgz",
- "integrity": "sha512-oeoq/6Sr9btbwUQs5HPfeww97bf7qgBbkknbDTXpRaph2LZ23O9XLCE5tJy856SBmGQfO4xBZP8dyryLLM2nSQ==",
+ "version": "1.9.2",
+ "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.9.2.tgz",
+ "integrity": "sha512-9l0uMGPGw3GsoD5khjMmYCCcMq/OR/OOSViiWMN+s2Q0pxM+fYzrii1H+r8qC/uoMjSVXomjLZt0vZIyryCqtQ==",
"dependencies": {
"tslib": "^2.1.0"
}
@@ -2222,9 +2222,9 @@
"integrity": "sha512-BpiZLBWdLFw+qFel9p3Zs1jD6QmH7Ii4aTDu6+vx8ShdidChZUXqDhYJly4ZjSgQh54miXbBgBrk0S+jTIh/Qg=="
},
"node_modules/@formatjs/cli": {
- "version": "5.1.12",
- "resolved": "https://registry.npmjs.org/@formatjs/cli/-/cli-5.1.12.tgz",
- "integrity": "sha512-JibYDuD2Fxx6WmrlYXVa3lxZ43vy3f30ZqmgwowKJx7I0nWng3td/h9X8Ra7VZC2bPkH5JwCL2l90OkfK8pUjQ==",
+ "version": "5.1.13",
+ "resolved": "https://registry.npmjs.org/@formatjs/cli/-/cli-5.1.13.tgz",
+ "integrity": "sha512-9rFWFCHEFeIUDqgMy4szoHXK7Iz29sNhY3n+N44m9VNPxjy2uWYqBEijk8bsBYhu4OLaDhHpwVbcHVJi848dHg==",
"dev": true,
"bin": {
"formatjs": "bin/formatjs"
@@ -2251,17 +2251,17 @@
}
},
"node_modules/@formatjs/fast-memoize": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-1.2.7.tgz",
- "integrity": "sha512-hPeM5LXUUjtCKPybWOUAWpv8lpja8Xz+uKprFPJcg5F2Rd+/bf1E0UUsLRpaAgOReAf5HMRtoIgv/UcyPICrTQ==",
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-1.2.8.tgz",
+ "integrity": "sha512-PemNUObyoIZcqdQ1ixTPugzAzhEj7j6AHIyrq/qR6x5BFTvOQeXHYsVZUqBEFduAIscUaDfou+U+xTqOiunJ3Q==",
"dependencies": {
"tslib": "^2.4.0"
}
},
"node_modules/@formatjs/icu-messageformat-parser": {
- "version": "2.1.14",
- "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.14.tgz",
- "integrity": "sha512-0KqeVOb72losEhUW+59vhZGGd14s1f35uThfEMVKZHKLEObvJdFTiI3ZQwvTMUCzLEMxnS6mtnYPmG4mTvwd3Q==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.2.0.tgz",
+ "integrity": "sha512-NT/jKI9nvqNIsosTm+Cxv3BHutB1RIDFa4rAa2b664Od4sBnXtK7afXvAqNa3XDFxljKTij9Cp+kRMJbXozUww==",
"dependencies": {
"@formatjs/ecma402-abstract": "1.14.3",
"@formatjs/icu-skeleton-parser": "1.3.18",
@@ -2278,16 +2278,16 @@
}
},
"node_modules/@formatjs/intl": {
- "version": "2.6.3",
- "resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-2.6.3.tgz",
- "integrity": "sha512-JaVZk14U/GypVfCZPevQ0KdruFkq16FXx7g398/Dm+YEx/W7sRiftbZeDy4wQ7WGryb45e763XycxD9o/vm9BA==",
+ "version": "2.6.5",
+ "resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-2.6.5.tgz",
+ "integrity": "sha512-kNH221hsdbTAMdsF6JAxSFV4N/9p5azXZvCLQBxl10Q4D2caPODLtne98gRhinIJ8Hv3djBabPdJG32OQaHuMA==",
"dependencies": {
"@formatjs/ecma402-abstract": "1.14.3",
- "@formatjs/fast-memoize": "1.2.7",
- "@formatjs/icu-messageformat-parser": "2.1.14",
- "@formatjs/intl-displaynames": "6.2.3",
+ "@formatjs/fast-memoize": "1.2.8",
+ "@formatjs/icu-messageformat-parser": "2.2.0",
+ "@formatjs/intl-displaynames": "6.2.4",
"@formatjs/intl-listformat": "7.1.7",
- "intl-messageformat": "10.2.5",
+ "intl-messageformat": "10.3.0",
"tslib": "^2.4.0"
},
"peerDependencies": {
@@ -2300,9 +2300,9 @@
}
},
"node_modules/@formatjs/intl-displaynames": {
- "version": "6.2.3",
- "resolved": "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-6.2.3.tgz",
- "integrity": "sha512-teB0L68MDGM8jEKQg55w7nvFjzeLHE6e3eK/04s+iuEVYYmvjjiHJKHrthKENzcJ0F6mHf/AwXrbX+1mKxT6AQ==",
+ "version": "6.2.4",
+ "resolved": "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-6.2.4.tgz",
+ "integrity": "sha512-CmTbSjnmAZHNGuA9vBkWoDHvrcrRauDb0OWc6nk2dAPtesQdadr49Q9N18fr8IV7n3rblgKiYaFVjg68UkRxNg==",
"dependencies": {
"@formatjs/ecma402-abstract": "1.14.3",
"@formatjs/intl-localematcher": "0.2.32",
@@ -2328,12 +2328,12 @@
}
},
"node_modules/@formatjs/ts-transformer": {
- "version": "3.11.5",
- "resolved": "https://registry.npmjs.org/@formatjs/ts-transformer/-/ts-transformer-3.11.5.tgz",
- "integrity": "sha512-cAmvKzgPqdetAr/RsxoXYhfNhMf5tERlXzJTsQw+j6tddPwIAbihACQx6KaajyJJ4aNssiziWNmcaHtjTqrrVw==",
+ "version": "3.11.6",
+ "resolved": "https://registry.npmjs.org/@formatjs/ts-transformer/-/ts-transformer-3.11.6.tgz",
+ "integrity": "sha512-JYlf+WT+Fxy+jWVXGhZcj3lvVqMp2LPmHoA0UXs7MvMz2gLdb+Gl6q6GI6Bw/veIt6qYwRP+hnJkRcZuXlCvbA==",
"dev": true,
"dependencies": {
- "@formatjs/icu-messageformat-parser": "2.1.14",
+ "@formatjs/icu-messageformat-parser": "2.2.0",
"@types/json-stable-stringify": "^1.0.32",
"@types/node": "14 || 16 || 17",
"chalk": "^4.0.0",
@@ -2451,9 +2451,9 @@
}
},
"node_modules/@grpc/grpc-js/node_modules/protobufjs": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.1.2.tgz",
- "integrity": "sha512-4ZPTPkXCdel3+L81yw3dG6+Kq3umdWKh7Dc7GW/CpNk4SX3hK58iPCWeCyhVTDrbkNeKrYNZ7EojM5WDaEWTLQ==",
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.1.tgz",
+ "integrity": "sha512-L3pCItypTnPK27+CS8nuhZMYtsY+i8dqdq2vZsYHlG17CnWp1DWPQ/sos0vOKrj1fHEAzo3GBqSHLaeZyKUCDA==",
"hasInstallScript": true,
"dependencies": {
"@protobufjs/aspromise": "^1.1.2",
@@ -2716,9 +2716,9 @@
}
},
"node_modules/@types/eslint": {
- "version": "8.4.10",
- "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz",
- "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==",
+ "version": "8.21.0",
+ "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.21.0.tgz",
+ "integrity": "sha512-35EhHNOXgxnUgh4XCJsGhE7zdlDhYDN/aMG6UbkByCFFNgQ7b3U+uVoqBpicFydR8JEfgdjCF7SJ7MiJfzuiTA==",
"dev": true,
"dependencies": {
"@types/estree": "*",
@@ -2995,9 +2995,9 @@
"dev": true
},
"node_modules/acorn": {
- "version": "8.8.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz",
- "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==",
+ "version": "8.8.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
+ "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
"dev": true,
"bin": {
"acorn": "bin/acorn"
@@ -3111,9 +3111,9 @@
}
},
"node_modules/babel-plugin-formatjs": {
- "version": "10.3.35",
- "resolved": "https://registry.npmjs.org/babel-plugin-formatjs/-/babel-plugin-formatjs-10.3.35.tgz",
- "integrity": "sha512-AGPsA9jOH68CBk2kKRlC8pFkjR9F1fFQ5+BEYc3y2+8E4j188sSlooYy8l//sO5mLISfIVuo7C0PZT61MlifKA==",
+ "version": "10.3.36",
+ "resolved": "https://registry.npmjs.org/babel-plugin-formatjs/-/babel-plugin-formatjs-10.3.36.tgz",
+ "integrity": "sha512-jxGh1A7Pm9eNA/cIGxO8udcdKTYsrZVb0owPs2v6hoAEXmhQXWUM9eIcfrqy9CPbVdxAAdzs6gq+uhVl20geow==",
"dev": true,
"dependencies": {
"@babel/core": "^7.10.4",
@@ -3121,8 +3121,8 @@
"@babel/plugin-syntax-jsx": "7",
"@babel/traverse": "7",
"@babel/types": "^7.12.11",
- "@formatjs/icu-messageformat-parser": "2.1.14",
- "@formatjs/ts-transformer": "3.11.5",
+ "@formatjs/icu-messageformat-parser": "2.2.0",
+ "@formatjs/ts-transformer": "3.11.6",
"@types/babel__core": "^7.1.7",
"@types/babel__helper-plugin-utils": "^7.10.0",
"@types/babel__traverse": "^7.1.7",
@@ -3230,9 +3230,9 @@
}
},
"node_modules/browserslist": {
- "version": "4.21.4",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
- "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
+ "version": "4.21.5",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz",
+ "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==",
"dev": true,
"funding": [
{
@@ -3245,10 +3245,10 @@
}
],
"dependencies": {
- "caniuse-lite": "^1.0.30001400",
- "electron-to-chromium": "^1.4.251",
- "node-releases": "^2.0.6",
- "update-browserslist-db": "^1.0.9"
+ "caniuse-lite": "^1.0.30001449",
+ "electron-to-chromium": "^1.4.284",
+ "node-releases": "^2.0.8",
+ "update-browserslist-db": "^1.0.10"
},
"bin": {
"browserslist": "cli.js"
@@ -3299,9 +3299,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001446",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001446.tgz",
- "integrity": "sha512-fEoga4PrImGcwUUGEol/PoFCSBnSkA9drgdkxXkJLsUBOnJ8rs3zDv6ApqYXGQFOyMPsjh79naWhF4DAxbF8rw==",
+ "version": "1.0.30001450",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001450.tgz",
+ "integrity": "sha512-qMBmvmQmFXaSxexkjjfMvD5rnDL0+m+dUMZKoDYsGG8iZN29RuYh9eRoMvKsT6uMAWlyUUGDEQGJJYjzCIO9ew==",
"dev": true,
"funding": [
{
@@ -3756,9 +3756,9 @@
"integrity": "sha512-HgNlIsRFP6D9VKU5atCeHRJY7XkJP8bOe8yEhd8NB7B3b4++VWTyauz6g650iiPmLfPLGlVpoJmGSgMfXDYusg=="
},
"node_modules/electron-to-chromium": {
- "version": "1.4.284",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
- "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==",
+ "version": "1.4.286",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.286.tgz",
+ "integrity": "sha512-Vp3CVhmYpgf4iXNKAucoQUDcCrBQX3XLBtwgFqP9BUXuucgvAV9zWp1kYU7LL9j4++s9O+12cb3wMtN4SJy6UQ==",
"dev": true
},
"node_modules/emoji-regex": {
@@ -3995,36 +3995,36 @@
}
},
"node_modules/firebase": {
- "version": "9.16.0",
- "resolved": "https://registry.npmjs.org/firebase/-/firebase-9.16.0.tgz",
- "integrity": "sha512-nNLpDwJvfP3crRc6AjnHH46TAkFzk8zimNVMJfYRCwAf5amOSGyU8duuc3IsJF6dQGiYLSfzfr2tMCsQa+rhKQ==",
+ "version": "9.17.1",
+ "resolved": "https://registry.npmjs.org/firebase/-/firebase-9.17.1.tgz",
+ "integrity": "sha512-MSZaTRaaRLgDFLqoEnoPYK8zkLwQNvYeLZ3YSKdcQxG8hDifNO22ywS1cSA1ZCGHlQeOsDtfDwBejKcANf/RQw==",
"dependencies": {
- "@firebase/analytics": "0.9.1",
- "@firebase/analytics-compat": "0.2.1",
- "@firebase/app": "0.9.1",
- "@firebase/app-check": "0.6.1",
- "@firebase/app-check-compat": "0.3.1",
- "@firebase/app-compat": "0.2.1",
+ "@firebase/analytics": "0.9.3",
+ "@firebase/analytics-compat": "0.2.3",
+ "@firebase/app": "0.9.3",
+ "@firebase/app-check": "0.6.3",
+ "@firebase/app-check-compat": "0.3.3",
+ "@firebase/app-compat": "0.2.3",
"@firebase/app-types": "0.9.0",
- "@firebase/auth": "0.21.1",
- "@firebase/auth-compat": "0.3.1",
- "@firebase/database": "0.14.1",
- "@firebase/database-compat": "0.3.1",
- "@firebase/firestore": "3.8.1",
- "@firebase/firestore-compat": "0.3.1",
- "@firebase/functions": "0.9.1",
- "@firebase/functions-compat": "0.3.1",
- "@firebase/installations": "0.6.1",
- "@firebase/installations-compat": "0.2.1",
- "@firebase/messaging": "0.12.1",
- "@firebase/messaging-compat": "0.2.1",
- "@firebase/performance": "0.6.1",
- "@firebase/performance-compat": "0.2.1",
- "@firebase/remote-config": "0.4.1",
- "@firebase/remote-config-compat": "0.2.1",
- "@firebase/storage": "0.10.1",
- "@firebase/storage-compat": "0.2.1",
- "@firebase/util": "1.9.0"
+ "@firebase/auth": "0.21.3",
+ "@firebase/auth-compat": "0.3.3",
+ "@firebase/database": "0.14.3",
+ "@firebase/database-compat": "0.3.3",
+ "@firebase/firestore": "3.8.3",
+ "@firebase/firestore-compat": "0.3.3",
+ "@firebase/functions": "0.9.3",
+ "@firebase/functions-compat": "0.3.3",
+ "@firebase/installations": "0.6.3",
+ "@firebase/installations-compat": "0.2.3",
+ "@firebase/messaging": "0.12.3",
+ "@firebase/messaging-compat": "0.2.3",
+ "@firebase/performance": "0.6.3",
+ "@firebase/performance-compat": "0.2.3",
+ "@firebase/remote-config": "0.4.3",
+ "@firebase/remote-config-compat": "0.2.3",
+ "@firebase/storage": "0.11.1",
+ "@firebase/storage-compat": "0.3.1",
+ "@firebase/util": "1.9.2"
}
},
"node_modules/fs-extra": {
@@ -4287,13 +4287,13 @@
}
},
"node_modules/intl-messageformat": {
- "version": "10.2.5",
- "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.2.5.tgz",
- "integrity": "sha512-AievYMN6WLLHwBeCTv4aRKG+w3ZNyZtkObwgsKk3Q7GNTq8zDRvDbJSBQkb2OPeVCcAKcIXvak9FF/bRNavoww==",
+ "version": "10.3.0",
+ "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.3.0.tgz",
+ "integrity": "sha512-FKeBZKH9T2Ue4RUXCuwY/hEaRHU8cgICevlGKog0qSBuz/amtRKNBLetBLmRxiHeEkF7JBBckC+56GIwshlRwA==",
"dependencies": {
"@formatjs/ecma402-abstract": "1.14.3",
- "@formatjs/fast-memoize": "1.2.7",
- "@formatjs/icu-messageformat-parser": "2.1.14",
+ "@formatjs/fast-memoize": "1.2.8",
+ "@formatjs/icu-messageformat-parser": "2.2.0",
"tslib": "^2.4.0"
}
},
@@ -4508,9 +4508,9 @@
}
},
"node_modules/libphonenumber-js": {
- "version": "1.10.18",
- "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.18.tgz",
- "integrity": "sha512-NS4ZEgNhwbcPz1gfSXCGFnQm0xEiyTSPRthIuWytDzOiEG9xnZ2FbLyfJC4tI2BMAAXpoWbNxHYH75pa3Dq9og=="
+ "version": "1.10.19",
+ "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.19.tgz",
+ "integrity": "sha512-MDZ1zLIkfSDZV5xBta3nuvbEOlsnKCPe4z5r3hyup/AXveevkl9A1eSWmLhd2FX4k7pJDe4MrLeQsux0HI/VWg=="
},
"node_modules/lilconfig": {
"version": "2.0.6",
@@ -4716,9 +4716,9 @@
}
},
"node_modules/node-releases": {
- "version": "2.0.8",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz",
- "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==",
+ "version": "2.0.9",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.9.tgz",
+ "integrity": "sha512-2xfmOrRkGogbTK9R6Leda0DGiXeY3p2NJpy4+gNCffdUvV6mdEJnaDEic1i3Ec2djAo8jWYoJMR5PB0MSMpxUA==",
"dev": true
},
"node_modules/normalize-path": {
@@ -5555,19 +5555,19 @@
}
},
"node_modules/react-intl": {
- "version": "6.2.5",
- "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-6.2.5.tgz",
- "integrity": "sha512-nz21POTKbE0sPEuEJU4o5YTZYY7VlIYCPNJaD6D2+xKyk6Noj6DoUK0LRO9LXuQNUuQ044IZl3m6ymzZRj8XFQ==",
+ "version": "6.2.7",
+ "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-6.2.7.tgz",
+ "integrity": "sha512-3xjK7FZcOcI/uw5c6NrbSXnVqT04Liua5L5K9eeIxIeYYQjcpKl9nF0jx3+sfZv9SqbxnmsFlh1DtKiCyiaZcg==",
"dependencies": {
"@formatjs/ecma402-abstract": "1.14.3",
- "@formatjs/icu-messageformat-parser": "2.1.14",
- "@formatjs/intl": "2.6.3",
- "@formatjs/intl-displaynames": "6.2.3",
+ "@formatjs/icu-messageformat-parser": "2.2.0",
+ "@formatjs/intl": "2.6.5",
+ "@formatjs/intl-displaynames": "6.2.4",
"@formatjs/intl-listformat": "7.1.7",
"@types/hoist-non-react-statics": "^3.3.1",
"@types/react": "16 || 17 || 18",
"hoist-non-react-statics": "^3.3.2",
- "intl-messageformat": "10.2.5",
+ "intl-messageformat": "10.3.0",
"tslib": "^2.4.0"
},
"peerDependencies": {
@@ -6022,9 +6022,9 @@
}
},
"node_modules/terser": {
- "version": "5.16.1",
- "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz",
- "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==",
+ "version": "5.16.3",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.3.tgz",
+ "integrity": "sha512-v8wWLaS/xt3nE9dgKEWhNUFP6q4kngO5B8eYFUuebsu7Dw/UNAnpUod6UHo04jSSkv8TzKHjZDSd7EXdDQAl8Q==",
"dev": true,
"dependencies": {
"@jridgewell/source-map": "^0.3.2",
@@ -6135,9 +6135,9 @@
"dev": true
},
"node_modules/tinode-sdk": {
- "version": "0.21.0-rc1",
- "resolved": "https://registry.npmjs.org/tinode-sdk/-/tinode-sdk-0.21.0-rc1.tgz",
- "integrity": "sha512-qWRwcbRC1LGVrX/ka2iYbTK/LK08Ikh3rQe2/KvK+lXt5EL2gAIkifm4qggKScYmqlJrYHogwil/f6MDCN1lhQ=="
+ "version": "0.21.0",
+ "resolved": "https://registry.npmjs.org/tinode-sdk/-/tinode-sdk-0.21.0.tgz",
+ "integrity": "sha512-QmlwO1rb9vbj8TYJAMQh0d1kH+g7d/0QVphRlwAea3ilZWvgjX0rYdIoJ1X4OnM2P00rTrJiGKECN3AS3NoK7Q=="
},
"node_modules/to-fast-properties": {
"version": "2.0.0",
@@ -6166,14 +6166,14 @@
"integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
},
"node_modules/tslib": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
- "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
+ "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
},
"node_modules/typescript": {
- "version": "4.9.4",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz",
- "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==",
+ "version": "4.9.5",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
+ "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
"devOptional": true,
"bin": {
"tsc": "bin/tsc",
@@ -6647,9 +6647,9 @@
}
},
"@babel/compat-data": {
- "version": "7.20.10",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz",
- "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==",
+ "version": "7.20.14",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.14.tgz",
+ "integrity": "sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==",
"dev": true
},
"@babel/core": {
@@ -6676,9 +6676,9 @@
}
},
"@babel/generator": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz",
- "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==",
+ "version": "7.20.14",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.14.tgz",
+ "integrity": "sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==",
"dev": true,
"requires": {
"@babel/types": "^7.20.7",
@@ -6960,9 +6960,9 @@
}
},
"@babel/parser": {
- "version": "7.20.13",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.13.tgz",
- "integrity": "sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==",
+ "version": "7.20.15",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.15.tgz",
+ "integrity": "sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==",
"dev": true
},
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
@@ -7318,9 +7318,9 @@
}
},
"@babel/plugin-transform-block-scoping": {
- "version": "7.20.11",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.11.tgz",
- "integrity": "sha512-tA4N427a7fjf1P0/2I4ScsHGc5jcHPbb30xMbaTke2gxDuWpUfXDuX1FEymJwKk4tuGUvGcejAR6HdZVqmmPyw==",
+ "version": "7.20.15",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.15.tgz",
+ "integrity": "sha512-Vv4DMZ6MiNOhu/LdaZsT/bsLRxgL94d269Mv4R/9sp6+Mp++X/JqypZYypJXLlM4mlL352/Egzbzr98iABH1CA==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.20.2"
@@ -7810,26 +7810,26 @@
"dev": true
},
"@firebase/analytics": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.9.1.tgz",
- "integrity": "sha512-ARXtNHDrjDhVrs5MqmFDpr5yyCw89r1eHLd+Dw9fotAufxL1WTmo6O9bJqKb7QulIJaA84vsFokA3NaO2DNCnQ==",
+ "version": "0.9.3",
+ "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.9.3.tgz",
+ "integrity": "sha512-XdYHBi6RvHYVAHGyLxXX0uRPwZmGeqw1JuWS1rMEeRF/jvbxnrL81kcFAHZVRkEvG9bXAJgL2fX9wmDo3e622w==",
"requires": {
- "@firebase/component": "0.6.1",
- "@firebase/installations": "0.6.1",
+ "@firebase/component": "0.6.3",
+ "@firebase/installations": "0.6.3",
"@firebase/logger": "0.4.0",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"tslib": "^2.1.0"
}
},
"@firebase/analytics-compat": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/@firebase/analytics-compat/-/analytics-compat-0.2.1.tgz",
- "integrity": "sha512-qfFAGS4YFsBbmZwVa7xaDnGh7k9BKF4o/piyjySAv0lxRYd74/tSrm3kMk1YM7GCti7PdbgKvl6oSR70zMFQjw==",
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@firebase/analytics-compat/-/analytics-compat-0.2.3.tgz",
+ "integrity": "sha512-HmvbB4GMgh8AUlIDIo/OuFENLCGRXxMvtOueK+m8+DcfqBvG+mkii0Mi9ovo0TnMM62cy3oBYG7PHdjIQNLSLA==",
"requires": {
- "@firebase/analytics": "0.9.1",
+ "@firebase/analytics": "0.9.3",
"@firebase/analytics-types": "0.8.0",
- "@firebase/component": "0.6.1",
- "@firebase/util": "1.9.0",
+ "@firebase/component": "0.6.3",
+ "@firebase/util": "1.9.2",
"tslib": "^2.1.0"
}
},
@@ -7839,38 +7839,38 @@
"integrity": "sha512-iRP+QKI2+oz3UAh4nPEq14CsEjrjD6a5+fuypjScisAh9kXKFvdJOZJDwk7kikLvWVLGEs9+kIUS4LPQV7VZVw=="
},
"@firebase/app": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.9.1.tgz",
- "integrity": "sha512-Z8wOSol+pvp4CFyY1mW+aqdZlrwhW/ha2YXQ6/avJ56c5Hnvt4k6GktZE6o5NyzvfJTgNHryhMtnEJMIuLaT4w==",
+ "version": "0.9.3",
+ "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.9.3.tgz",
+ "integrity": "sha512-G79JUceVDaHRZ4WkA11GyVldVXhdyRJRwWVQFFvAAVfQJLvy2TA6lQjeUn28F6FmeUWxDGwPC30bxCRWq7Op8Q==",
"requires": {
- "@firebase/component": "0.6.1",
+ "@firebase/component": "0.6.3",
"@firebase/logger": "0.4.0",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"idb": "7.0.1",
"tslib": "^2.1.0"
}
},
"@firebase/app-check": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.6.1.tgz",
- "integrity": "sha512-gDG4Gr4n3MnBZAAwLMynU9u/b+f1y87lCezfwlmN1gUxD85mJcvp4hLf87fACTyRkdVfe8hqSXm+MOYn2bMGLg==",
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.6.3.tgz",
+ "integrity": "sha512-T9f9ceFLs7x4D2T6whu5a6j7B3qPuYHiZHZxW6DkMh/FoMmRA4/q/HVyu01i9+LyJJx2Xdo6eCcj6ofs9YZjqA==",
"requires": {
- "@firebase/component": "0.6.1",
+ "@firebase/component": "0.6.3",
"@firebase/logger": "0.4.0",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"tslib": "^2.1.0"
}
},
"@firebase/app-check-compat": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/@firebase/app-check-compat/-/app-check-compat-0.3.1.tgz",
- "integrity": "sha512-IaSYdmaoQgWUrN6rjAYJs1TGXj38Wl9damtrDEyJBf7+rrvKshPAP/CP6e2bd89XOMZKbvy8rKoe1CqX1K3ZjQ==",
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@firebase/app-check-compat/-/app-check-compat-0.3.3.tgz",
+ "integrity": "sha512-25AQ4W7WUL8OWas40GsABuNU622Dm1ojbfeZ03uKtLj5Af7FerJ25u7zkgm+11pc6rpr5v8E5oxEG9vmNRndEA==",
"requires": {
- "@firebase/app-check": "0.6.1",
+ "@firebase/app-check": "0.6.3",
"@firebase/app-check-types": "0.5.0",
- "@firebase/component": "0.6.1",
+ "@firebase/component": "0.6.3",
"@firebase/logger": "0.4.0",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"tslib": "^2.1.0"
}
},
@@ -7885,14 +7885,14 @@
"integrity": "sha512-uwSUj32Mlubybw7tedRzR24RP8M8JUVR3NPiMk3/Z4bCmgEKTlQBwMXrehDAZ2wF+TsBq0SN1c6ema71U/JPyQ=="
},
"@firebase/app-compat": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.2.1.tgz",
- "integrity": "sha512-UgPy2ZO0li0j4hAkaZKY9P1TuJEx5RylhUWPzCb8DZhBm+uHdfsFI9Yr+wMlu6qQH2sWoweFtYU6ljGzxwdctw==",
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.2.3.tgz",
+ "integrity": "sha512-sX6rD1KFX6K2CuCnQvc9jZLOgAFZ+sv2jKKahIl4SbTM561D682B8n4Jtx/SgDrvcTVTdb05g4NhZOws9hxYxA==",
"requires": {
- "@firebase/app": "0.9.1",
- "@firebase/component": "0.6.1",
+ "@firebase/app": "0.9.3",
+ "@firebase/component": "0.6.3",
"@firebase/logger": "0.4.0",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"tslib": "^2.1.0"
}
},
@@ -7902,26 +7902,26 @@
"integrity": "sha512-AeweANOIo0Mb8GiYm3xhTEBVCmPwTYAu9Hcd2qSkLuga/6+j9b1Jskl5bpiSQWy9eJ/j5pavxj6eYogmnuzm+Q=="
},
"@firebase/auth": {
- "version": "0.21.1",
- "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-0.21.1.tgz",
- "integrity": "sha512-/ap7eT9X7kZTD4Fn2m+nJyC1a9DfFo0H4euoJDN8U+JCMN+GOqkPbkMWCey7wV510WNoPCZQ05+nsAqKkbEVJw==",
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-0.21.3.tgz",
+ "integrity": "sha512-HPbcwgArLBVTowFcn4qaQr6LCx7BidI9yrQ5MRbQNv4PsgK/3UGpzCYaNPPbvgr9fe+0jNdJO+uC0+dk4xIzCQ==",
"requires": {
- "@firebase/component": "0.6.1",
+ "@firebase/component": "0.6.3",
"@firebase/logger": "0.4.0",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"node-fetch": "2.6.7",
"tslib": "^2.1.0"
}
},
"@firebase/auth-compat": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.3.1.tgz",
- "integrity": "sha512-Ndcaam+IL1TuJ6hZ0EcQ+v261cK3kPm4mvUtouoTfl3FNinm9XvhccN8ojuaRtIV9TiY18mzGjONKF5ZCXLIZw==",
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.3.3.tgz",
+ "integrity": "sha512-9asUuGtkzUVELH3LYXdiom1nVVV9bqEPqzHohanoofHL/oVTNcHZ4AQ5CXjNATfb6c1WH32U+nEuPiYg26UUIw==",
"requires": {
- "@firebase/auth": "0.21.1",
+ "@firebase/auth": "0.21.3",
"@firebase/auth-types": "0.12.0",
- "@firebase/component": "0.6.1",
- "@firebase/util": "1.9.0",
+ "@firebase/component": "0.6.3",
+ "@firebase/util": "1.9.2",
"node-fetch": "2.6.7",
"tslib": "^2.1.0"
}
@@ -7938,57 +7938,57 @@
"requires": {}
},
"@firebase/component": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.1.tgz",
- "integrity": "sha512-yvKthG0InjFx9aOPnh6gk0lVNfNVEtyq3LwXgZr+hOwD0x/CtXq33XCpqv0sQj5CA4FdMy8OO+y9edI+ZUw8LA==",
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.3.tgz",
+ "integrity": "sha512-rnhq5SOsB5nuJphZF50iwqnBiuuyg9kdnlUn1rBrKfu7/cUVJZF5IG1cWrL0rXXyiZW1WBI/J2pmTvVO8dStGQ==",
"requires": {
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"tslib": "^2.1.0"
}
},
"@firebase/database": {
- "version": "0.14.1",
- "resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.14.1.tgz",
- "integrity": "sha512-iX6/p7hoxUMbYAGZD+D97L05xQgpkslF2+uJLZl46EdaEfjVMEwAdy7RS/grF96kcFZFg502LwPYTXoIdrZqOA==",
+ "version": "0.14.3",
+ "resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.14.3.tgz",
+ "integrity": "sha512-J76W6N7JiVkLaAtPyjaGRkrsIu9pi6iZikuGGtGjqvV19vkn7oiL4Hbo5uTYCMd4waTUWoL9iI08eX184W+5GQ==",
"requires": {
"@firebase/auth-interop-types": "0.2.1",
- "@firebase/component": "0.6.1",
+ "@firebase/component": "0.6.3",
"@firebase/logger": "0.4.0",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"faye-websocket": "0.11.4",
"tslib": "^2.1.0"
}
},
"@firebase/database-compat": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-0.3.1.tgz",
- "integrity": "sha512-sI7LNh0C8PCq9uUKjrBKLbZvqHTSjsf2LeZRxin+rHVegomjsOAYk9OzYwxETWh3URhpMkCM8KcTl7RVwAldog==",
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-0.3.3.tgz",
+ "integrity": "sha512-r+L9jTbvsnb7sD+xz6UKU39DgBWqB2pyjzPNdBeriGC9Ssa2MAZe0bIqjCQg51RRXYc/aa/zK1Q2/4uesZeVgQ==",
"requires": {
- "@firebase/component": "0.6.1",
- "@firebase/database": "0.14.1",
- "@firebase/database-types": "0.10.1",
+ "@firebase/component": "0.6.3",
+ "@firebase/database": "0.14.3",
+ "@firebase/database-types": "0.10.3",
"@firebase/logger": "0.4.0",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"tslib": "^2.1.0"
}
},
"@firebase/database-types": {
- "version": "0.10.1",
- "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-0.10.1.tgz",
- "integrity": "sha512-UgUx9VakTHbP2WrVUdYrUT2ofTFVfWjGW2O1fwuvvMyo6WSnuSyO5nB1u0cyoMPvO25dfMIUVerfK7qFfwGL3Q==",
+ "version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-0.10.3.tgz",
+ "integrity": "sha512-Hu34CDhHYZsd2eielr0jeaWrTJk8Hz0nd7WsnYDnXtQX4i49ppgPesUzPdXVBdIBLJmT0ZZRvT7qWHknkOT+zg==",
"requires": {
"@firebase/app-types": "0.9.0",
- "@firebase/util": "1.9.0"
+ "@firebase/util": "1.9.2"
}
},
"@firebase/firestore": {
- "version": "3.8.1",
- "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-3.8.1.tgz",
- "integrity": "sha512-oc2HMkUnq/zF+g9o974tp5RVCdXCnrU8e5S98ajfWG/hGV+8pr4i6vIa4z0yEXKWGi4X0FguxrC69z1dxEJbNg==",
+ "version": "3.8.3",
+ "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-3.8.3.tgz",
+ "integrity": "sha512-4xR3Mqj95bxHg3hZnz0O+LQrHkjq+siT2y+B9da6u68qJ8bzzT42JaFgd1vifhbBpVbBzpFaS2RuCq2E+kGv9g==",
"requires": {
- "@firebase/component": "0.6.1",
+ "@firebase/component": "0.6.3",
"@firebase/logger": "0.4.0",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"@firebase/webchannel-wrapper": "0.9.0",
"@grpc/grpc-js": "~1.7.0",
"@grpc/proto-loader": "^0.6.13",
@@ -7997,14 +7997,14 @@
}
},
"@firebase/firestore-compat": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.3.1.tgz",
- "integrity": "sha512-7eE4O2ASyy5X2h4a+KCRt0ZpliUAKo2jrKxKl1ZVCnOOjSCkXXeRVRG9eNZRqBwukhdwskJTM9acs0WxmKOYLA==",
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.3.3.tgz",
+ "integrity": "sha512-fMTsSC0s2cF5w2+JoB0dWD/o4kXtLrUCPGnZPuz4S0bqTN2t0vHr3gdAsQLtnadgwB78ACtinYmf4Udwx7TzDg==",
"requires": {
- "@firebase/component": "0.6.1",
- "@firebase/firestore": "3.8.1",
+ "@firebase/component": "0.6.3",
+ "@firebase/firestore": "3.8.3",
"@firebase/firestore-types": "2.5.1",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"tslib": "^2.1.0"
}
},
@@ -8015,28 +8015,28 @@
"requires": {}
},
"@firebase/functions": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.9.1.tgz",
- "integrity": "sha512-xCSSU4aVSqYU+lCqhn9o5jJcE1KLUOOKyJfCTdCSCyTn2J3vl9Vk4TDm3JSb1Eu6XsNWtxeMW188F/GYxuMWcw==",
+ "version": "0.9.3",
+ "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.9.3.tgz",
+ "integrity": "sha512-tPJgYY2ROQSYuzvgxZRoHeDj+Ic07/bWHwaftgTriawtupmFOkt5iikuhJSJUhaOpFh9TB335OvCXJw1N+BIlQ==",
"requires": {
"@firebase/app-check-interop-types": "0.2.0",
"@firebase/auth-interop-types": "0.2.1",
- "@firebase/component": "0.6.1",
+ "@firebase/component": "0.6.3",
"@firebase/messaging-interop-types": "0.2.0",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"node-fetch": "2.6.7",
"tslib": "^2.1.0"
}
},
"@firebase/functions-compat": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/@firebase/functions-compat/-/functions-compat-0.3.1.tgz",
- "integrity": "sha512-f2D2XoRN+QCziCrUL7UrLaBEoG3v2iAeyNwbbOQ3vv0rI0mtku2/yeB2OINz5/iI6oIrBPUMNLr5fitofj7FpQ==",
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@firebase/functions-compat/-/functions-compat-0.3.3.tgz",
+ "integrity": "sha512-UIAJ2gzNq0p/61cXqkpi9DnlQt0hdlGqgmL5an7KuJth2Iv5uGpKg/+OapAZxPuiUNZgTEyZDB7kNBHvnxWq5w==",
"requires": {
- "@firebase/component": "0.6.1",
- "@firebase/functions": "0.9.1",
+ "@firebase/component": "0.6.3",
+ "@firebase/functions": "0.9.3",
"@firebase/functions-types": "0.6.0",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"tslib": "^2.1.0"
}
},
@@ -8046,25 +8046,25 @@
"integrity": "sha512-hfEw5VJtgWXIRf92ImLkgENqpL6IWpYaXVYiRkFY1jJ9+6tIhWM7IzzwbevwIIud/jaxKVdRzD7QBWfPmkwCYw=="
},
"@firebase/installations": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.6.1.tgz",
- "integrity": "sha512-gpobP09LLLakBfNCL04fyblfyb3oX1pn+iNmELygrcAkXTO13IAMuOzThI+Xk4NHQZMX1p5GFSAiGbG4yfsSUQ==",
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.6.3.tgz",
+ "integrity": "sha512-20JFWm+tweNoRjRbz8/Y4I7O5pUJGZsFKCkLl1qNxfNYECSfrZUuozIDJDZC/MeVn5+kB9CwjThDlgQEPrfLdg==",
"requires": {
- "@firebase/component": "0.6.1",
- "@firebase/util": "1.9.0",
+ "@firebase/component": "0.6.3",
+ "@firebase/util": "1.9.2",
"idb": "7.0.1",
"tslib": "^2.1.0"
}
},
"@firebase/installations-compat": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/@firebase/installations-compat/-/installations-compat-0.2.1.tgz",
- "integrity": "sha512-X4IBVKajEeaE45zWX0Y1q8ey39aPFLa+BsUoYzsduMzCxcMBIPZd5/lV1EVGt8SN3+unnC2J75flYkxXVlhBoQ==",
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@firebase/installations-compat/-/installations-compat-0.2.3.tgz",
+ "integrity": "sha512-K9rKM/ym06lkpaKz7bMLxzHK/HEk65XfLJBV+dJkIuWeO0EqqC9VFGrpWAo0QmgC4BqbU58T6VBbzoJjb0gaFw==",
"requires": {
- "@firebase/component": "0.6.1",
- "@firebase/installations": "0.6.1",
+ "@firebase/component": "0.6.3",
+ "@firebase/installations": "0.6.3",
"@firebase/installations-types": "0.5.0",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"tslib": "^2.1.0"
}
},
@@ -8083,26 +8083,26 @@
}
},
"@firebase/messaging": {
- "version": "0.12.1",
- "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.12.1.tgz",
- "integrity": "sha512-/F+2OWarR8TcJJVlQS6zBoHHfXMgfgR0/ukQ3h7Ow3WZ3WZ9+Sj/gvxzothXZm+WtBylfXuhiANFgHEDFL0J0w==",
+ "version": "0.12.3",
+ "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.12.3.tgz",
+ "integrity": "sha512-a3ZKcGDiV2sKmQDB56PpgL1yjFxXCtff2+v1grnAZZ4GnfNQ74t2EHCbmgY7xRX7ThzMqug54oxhuk4ur0MIoA==",
"requires": {
- "@firebase/component": "0.6.1",
- "@firebase/installations": "0.6.1",
+ "@firebase/component": "0.6.3",
+ "@firebase/installations": "0.6.3",
"@firebase/messaging-interop-types": "0.2.0",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"idb": "7.0.1",
"tslib": "^2.1.0"
}
},
"@firebase/messaging-compat": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/@firebase/messaging-compat/-/messaging-compat-0.2.1.tgz",
- "integrity": "sha512-BykvXtAWOs0W4Ik79lNfMKSxaUCtOJ47PJ9Vw2ySHZ14vFFNuDAtRTOBOlAFhUpsHqRoQFvFCkBGsRIQYq8hzw==",
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@firebase/messaging-compat/-/messaging-compat-0.2.3.tgz",
+ "integrity": "sha512-MmuuohXV2YRzIoJmDngI5qqO/cF2q7SdAaw7k4r61W3ReJy7x4/rtqrIvwNVhM6X/X8NFGBbsYKsCfRHWjFdkg==",
"requires": {
- "@firebase/component": "0.6.1",
- "@firebase/messaging": "0.12.1",
- "@firebase/util": "1.9.0",
+ "@firebase/component": "0.6.3",
+ "@firebase/messaging": "0.12.3",
+ "@firebase/util": "1.9.2",
"tslib": "^2.1.0"
}
},
@@ -8112,27 +8112,27 @@
"integrity": "sha512-ujA8dcRuVeBixGR9CtegfpU4YmZf3Lt7QYkcj693FFannwNuZgfAYaTmbJ40dtjB81SAu6tbFPL9YLNT15KmOQ=="
},
"@firebase/performance": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.6.1.tgz",
- "integrity": "sha512-mT/CWz3CLgyn/a3sO/TJgrTt+RA3DfuvWwGXY9zmIiuBZY2bDi1M2uMefJdJKc9sBUPRajNF6RL10nGYq3BAuQ==",
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.6.3.tgz",
+ "integrity": "sha512-NQmQN6Ete7i9jz1mzULJZEGvsOmwwdUy6vpqnhUxSFMYPnlBKjX+yypCUUJDDN5zff5+kfwSD1qCyUAaS0xWUA==",
"requires": {
- "@firebase/component": "0.6.1",
- "@firebase/installations": "0.6.1",
+ "@firebase/component": "0.6.3",
+ "@firebase/installations": "0.6.3",
"@firebase/logger": "0.4.0",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"tslib": "^2.1.0"
}
},
"@firebase/performance-compat": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/@firebase/performance-compat/-/performance-compat-0.2.1.tgz",
- "integrity": "sha512-4mn6eS7r2r+ZAHvU0OHE+3ZO+x6gOVhf2ypBoijuDNaRNjSn9GcvA8udD4IbJ8FNv/k7mbbtA9AdxVb701Lr1g==",
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@firebase/performance-compat/-/performance-compat-0.2.3.tgz",
+ "integrity": "sha512-I3rqZsIhauXn4iApfj1ttKQdlti/r8OZBG4YK10vxKSdhAzTIDWDKEsdoCXvvKLwplcMv36sM3WPAPGQLqY5MQ==",
"requires": {
- "@firebase/component": "0.6.1",
+ "@firebase/component": "0.6.3",
"@firebase/logger": "0.4.0",
- "@firebase/performance": "0.6.1",
+ "@firebase/performance": "0.6.3",
"@firebase/performance-types": "0.2.0",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"tslib": "^2.1.0"
}
},
@@ -8142,27 +8142,27 @@
"integrity": "sha512-kYrbr8e/CYr1KLrLYZZt2noNnf+pRwDq2KK9Au9jHrBMnb0/C9X9yWSXmZkFt4UIdsQknBq8uBB7fsybZdOBTA=="
},
"@firebase/remote-config": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.4.1.tgz",
- "integrity": "sha512-RCzBH3FjAPRSP3M1T7jdxLYBesIdLtNIQ0fR9ywJpGSSa0kIXEJ9iSZMTP+9pJtaCxz8db07FvjEqg7Y+lgjzg==",
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.4.3.tgz",
+ "integrity": "sha512-Q6d4jBWZoNt6SYq87bjtDGUHFkKwAmGnNjWyRjl14AZqE1ilgd9NZHmutharlYJ3LvxMsid80HdK5SgGEpIPfg==",
"requires": {
- "@firebase/component": "0.6.1",
- "@firebase/installations": "0.6.1",
+ "@firebase/component": "0.6.3",
+ "@firebase/installations": "0.6.3",
"@firebase/logger": "0.4.0",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"tslib": "^2.1.0"
}
},
"@firebase/remote-config-compat": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/@firebase/remote-config-compat/-/remote-config-compat-0.2.1.tgz",
- "integrity": "sha512-RPCj7c2Q3QxMgJH3YCt0iD57KppFApghxAGETzlr6Jm6vT7k0vqvk2KgRBgKa4koJBsgwlUtRn2roaCqUEadyg==",
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@firebase/remote-config-compat/-/remote-config-compat-0.2.3.tgz",
+ "integrity": "sha512-w/ZL03YgYaXq03xIRyJ5oPhXZi6iDsY/v0J9Y7I7SqxCYytEnHVrL9nvBqd9R94y5LRAVNPCLokJeeizaUz4VQ==",
"requires": {
- "@firebase/component": "0.6.1",
+ "@firebase/component": "0.6.3",
"@firebase/logger": "0.4.0",
- "@firebase/remote-config": "0.4.1",
+ "@firebase/remote-config": "0.4.3",
"@firebase/remote-config-types": "0.3.0",
- "@firebase/util": "1.9.0",
+ "@firebase/util": "1.9.2",
"tslib": "^2.1.0"
}
},
@@ -8172,38 +8172,38 @@
"integrity": "sha512-RtEH4vdcbXZuZWRZbIRmQVBNsE7VDQpet2qFvq6vwKLBIQRQR5Kh58M4ok3A3US8Sr3rubYnaGqZSurCwI8uMA=="
},
"@firebase/storage": {
- "version": "0.10.1",
- "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.10.1.tgz",
- "integrity": "sha512-eN4ME+TFCh5KfyG9uo8PhE6cgKjK5Rb9eucQg1XEyLHMiaZiUv2xSuWehJn0FaL+UdteoaWKuRUZ4WXRDskXrA==",
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.11.1.tgz",
+ "integrity": "sha512-Xv8EG2j52ugF2xayBz26U9J0VBXHXPMVxSN+ph3R3BSoHxvMLaPu+qUYKHavSt+zbcgPH2GyBhrCdJK6SaDFPA==",
"requires": {
- "@firebase/component": "0.6.1",
- "@firebase/util": "1.9.0",
+ "@firebase/component": "0.6.3",
+ "@firebase/util": "1.9.2",
"node-fetch": "2.6.7",
"tslib": "^2.1.0"
}
},
"@firebase/storage-compat": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/@firebase/storage-compat/-/storage-compat-0.2.1.tgz",
- "integrity": "sha512-H0oFdYsMn2Z6tP9tlVERBkJiZsCbFAcl3Li1dnpvDg9g323egdjCnUUgH/tJODRR/Y84iZSNRkg4FvHDVI/o7Q==",
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/@firebase/storage-compat/-/storage-compat-0.3.1.tgz",
+ "integrity": "sha512-6HaTvWsT5Yy3j4UpCZpMcFUYEkJ2XYWukdyTl02u6VjSBRLvkhOXPzEfMvgVWqhnF/rYVfPdjrZ904wk5OxtmQ==",
"requires": {
- "@firebase/component": "0.6.1",
- "@firebase/storage": "0.10.1",
- "@firebase/storage-types": "0.7.0",
- "@firebase/util": "1.9.0",
+ "@firebase/component": "0.6.3",
+ "@firebase/storage": "0.11.1",
+ "@firebase/storage-types": "0.8.0",
+ "@firebase/util": "1.9.2",
"tslib": "^2.1.0"
}
},
"@firebase/storage-types": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.7.0.tgz",
- "integrity": "sha512-n/8pYd82hc9XItV3Pa2KGpnuJ/2h/n/oTAaBberhe6GeyWQPnsmwwRK94W3GxUwBA/ZsszBAYZd7w7tTE+6XXA==",
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.8.0.tgz",
+ "integrity": "sha512-isRHcGrTs9kITJC0AVehHfpraWFui39MPaU7Eo8QfWlqW7YPymBmRgjDrlOgFdURh6Cdeg07zmkLP5tzTKRSpg==",
"requires": {}
},
"@firebase/util": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.9.0.tgz",
- "integrity": "sha512-oeoq/6Sr9btbwUQs5HPfeww97bf7qgBbkknbDTXpRaph2LZ23O9XLCE5tJy856SBmGQfO4xBZP8dyryLLM2nSQ==",
+ "version": "1.9.2",
+ "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.9.2.tgz",
+ "integrity": "sha512-9l0uMGPGw3GsoD5khjMmYCCcMq/OR/OOSViiWMN+s2Q0pxM+fYzrii1H+r8qC/uoMjSVXomjLZt0vZIyryCqtQ==",
"requires": {
"tslib": "^2.1.0"
}
@@ -8214,9 +8214,9 @@
"integrity": "sha512-BpiZLBWdLFw+qFel9p3Zs1jD6QmH7Ii4aTDu6+vx8ShdidChZUXqDhYJly4ZjSgQh54miXbBgBrk0S+jTIh/Qg=="
},
"@formatjs/cli": {
- "version": "5.1.12",
- "resolved": "https://registry.npmjs.org/@formatjs/cli/-/cli-5.1.12.tgz",
- "integrity": "sha512-JibYDuD2Fxx6WmrlYXVa3lxZ43vy3f30ZqmgwowKJx7I0nWng3td/h9X8Ra7VZC2bPkH5JwCL2l90OkfK8pUjQ==",
+ "version": "5.1.13",
+ "resolved": "https://registry.npmjs.org/@formatjs/cli/-/cli-5.1.13.tgz",
+ "integrity": "sha512-9rFWFCHEFeIUDqgMy4szoHXK7Iz29sNhY3n+N44m9VNPxjy2uWYqBEijk8bsBYhu4OLaDhHpwVbcHVJi848dHg==",
"dev": true,
"requires": {}
},
@@ -8230,17 +8230,17 @@
}
},
"@formatjs/fast-memoize": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-1.2.7.tgz",
- "integrity": "sha512-hPeM5LXUUjtCKPybWOUAWpv8lpja8Xz+uKprFPJcg5F2Rd+/bf1E0UUsLRpaAgOReAf5HMRtoIgv/UcyPICrTQ==",
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-1.2.8.tgz",
+ "integrity": "sha512-PemNUObyoIZcqdQ1ixTPugzAzhEj7j6AHIyrq/qR6x5BFTvOQeXHYsVZUqBEFduAIscUaDfou+U+xTqOiunJ3Q==",
"requires": {
"tslib": "^2.4.0"
}
},
"@formatjs/icu-messageformat-parser": {
- "version": "2.1.14",
- "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.14.tgz",
- "integrity": "sha512-0KqeVOb72losEhUW+59vhZGGd14s1f35uThfEMVKZHKLEObvJdFTiI3ZQwvTMUCzLEMxnS6mtnYPmG4mTvwd3Q==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.2.0.tgz",
+ "integrity": "sha512-NT/jKI9nvqNIsosTm+Cxv3BHutB1RIDFa4rAa2b664Od4sBnXtK7afXvAqNa3XDFxljKTij9Cp+kRMJbXozUww==",
"requires": {
"@formatjs/ecma402-abstract": "1.14.3",
"@formatjs/icu-skeleton-parser": "1.3.18",
@@ -8257,23 +8257,23 @@
}
},
"@formatjs/intl": {
- "version": "2.6.3",
- "resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-2.6.3.tgz",
- "integrity": "sha512-JaVZk14U/GypVfCZPevQ0KdruFkq16FXx7g398/Dm+YEx/W7sRiftbZeDy4wQ7WGryb45e763XycxD9o/vm9BA==",
+ "version": "2.6.5",
+ "resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-2.6.5.tgz",
+ "integrity": "sha512-kNH221hsdbTAMdsF6JAxSFV4N/9p5azXZvCLQBxl10Q4D2caPODLtne98gRhinIJ8Hv3djBabPdJG32OQaHuMA==",
"requires": {
"@formatjs/ecma402-abstract": "1.14.3",
- "@formatjs/fast-memoize": "1.2.7",
- "@formatjs/icu-messageformat-parser": "2.1.14",
- "@formatjs/intl-displaynames": "6.2.3",
+ "@formatjs/fast-memoize": "1.2.8",
+ "@formatjs/icu-messageformat-parser": "2.2.0",
+ "@formatjs/intl-displaynames": "6.2.4",
"@formatjs/intl-listformat": "7.1.7",
- "intl-messageformat": "10.2.5",
+ "intl-messageformat": "10.3.0",
"tslib": "^2.4.0"
}
},
"@formatjs/intl-displaynames": {
- "version": "6.2.3",
- "resolved": "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-6.2.3.tgz",
- "integrity": "sha512-teB0L68MDGM8jEKQg55w7nvFjzeLHE6e3eK/04s+iuEVYYmvjjiHJKHrthKENzcJ0F6mHf/AwXrbX+1mKxT6AQ==",
+ "version": "6.2.4",
+ "resolved": "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-6.2.4.tgz",
+ "integrity": "sha512-CmTbSjnmAZHNGuA9vBkWoDHvrcrRauDb0OWc6nk2dAPtesQdadr49Q9N18fr8IV7n3rblgKiYaFVjg68UkRxNg==",
"requires": {
"@formatjs/ecma402-abstract": "1.14.3",
"@formatjs/intl-localematcher": "0.2.32",
@@ -8299,12 +8299,12 @@
}
},
"@formatjs/ts-transformer": {
- "version": "3.11.5",
- "resolved": "https://registry.npmjs.org/@formatjs/ts-transformer/-/ts-transformer-3.11.5.tgz",
- "integrity": "sha512-cAmvKzgPqdetAr/RsxoXYhfNhMf5tERlXzJTsQw+j6tddPwIAbihACQx6KaajyJJ4aNssiziWNmcaHtjTqrrVw==",
+ "version": "3.11.6",
+ "resolved": "https://registry.npmjs.org/@formatjs/ts-transformer/-/ts-transformer-3.11.6.tgz",
+ "integrity": "sha512-JYlf+WT+Fxy+jWVXGhZcj3lvVqMp2LPmHoA0UXs7MvMz2gLdb+Gl6q6GI6Bw/veIt6qYwRP+hnJkRcZuXlCvbA==",
"dev": true,
"requires": {
- "@formatjs/icu-messageformat-parser": "2.1.14",
+ "@formatjs/icu-messageformat-parser": "2.2.0",
"@types/json-stable-stringify": "^1.0.32",
"@types/node": "14 || 16 || 17",
"chalk": "^4.0.0",
@@ -8386,9 +8386,9 @@
}
},
"protobufjs": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.1.2.tgz",
- "integrity": "sha512-4ZPTPkXCdel3+L81yw3dG6+Kq3umdWKh7Dc7GW/CpNk4SX3hK58iPCWeCyhVTDrbkNeKrYNZ7EojM5WDaEWTLQ==",
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.1.tgz",
+ "integrity": "sha512-L3pCItypTnPK27+CS8nuhZMYtsY+i8dqdq2vZsYHlG17CnWp1DWPQ/sos0vOKrj1fHEAzo3GBqSHLaeZyKUCDA==",
"requires": {
"@protobufjs/aspromise": "^1.1.2",
"@protobufjs/base64": "^1.1.2",
@@ -8623,9 +8623,9 @@
}
},
"@types/eslint": {
- "version": "8.4.10",
- "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz",
- "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==",
+ "version": "8.21.0",
+ "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.21.0.tgz",
+ "integrity": "sha512-35EhHNOXgxnUgh4XCJsGhE7zdlDhYDN/aMG6UbkByCFFNgQ7b3U+uVoqBpicFydR8JEfgdjCF7SJ7MiJfzuiTA==",
"dev": true,
"requires": {
"@types/estree": "*",
@@ -8879,9 +8879,9 @@
"dev": true
},
"acorn": {
- "version": "8.8.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz",
- "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==",
+ "version": "8.8.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
+ "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
"dev": true
},
"acorn-import-assertions": {
@@ -8956,9 +8956,9 @@
}
},
"babel-plugin-formatjs": {
- "version": "10.3.35",
- "resolved": "https://registry.npmjs.org/babel-plugin-formatjs/-/babel-plugin-formatjs-10.3.35.tgz",
- "integrity": "sha512-AGPsA9jOH68CBk2kKRlC8pFkjR9F1fFQ5+BEYc3y2+8E4j188sSlooYy8l//sO5mLISfIVuo7C0PZT61MlifKA==",
+ "version": "10.3.36",
+ "resolved": "https://registry.npmjs.org/babel-plugin-formatjs/-/babel-plugin-formatjs-10.3.36.tgz",
+ "integrity": "sha512-jxGh1A7Pm9eNA/cIGxO8udcdKTYsrZVb0owPs2v6hoAEXmhQXWUM9eIcfrqy9CPbVdxAAdzs6gq+uhVl20geow==",
"dev": true,
"requires": {
"@babel/core": "^7.10.4",
@@ -8966,8 +8966,8 @@
"@babel/plugin-syntax-jsx": "7",
"@babel/traverse": "7",
"@babel/types": "^7.12.11",
- "@formatjs/icu-messageformat-parser": "2.1.14",
- "@formatjs/ts-transformer": "3.11.5",
+ "@formatjs/icu-messageformat-parser": "2.2.0",
+ "@formatjs/ts-transformer": "3.11.6",
"@types/babel__core": "^7.1.7",
"@types/babel__helper-plugin-utils": "^7.10.0",
"@types/babel__traverse": "^7.1.7",
@@ -9046,15 +9046,15 @@
}
},
"browserslist": {
- "version": "4.21.4",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
- "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
+ "version": "4.21.5",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz",
+ "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==",
"dev": true,
"requires": {
- "caniuse-lite": "^1.0.30001400",
- "electron-to-chromium": "^1.4.251",
- "node-releases": "^2.0.6",
- "update-browserslist-db": "^1.0.9"
+ "caniuse-lite": "^1.0.30001449",
+ "electron-to-chromium": "^1.4.284",
+ "node-releases": "^2.0.8",
+ "update-browserslist-db": "^1.0.10"
}
},
"buffer": {
@@ -9085,9 +9085,9 @@
}
},
"caniuse-lite": {
- "version": "1.0.30001446",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001446.tgz",
- "integrity": "sha512-fEoga4PrImGcwUUGEol/PoFCSBnSkA9drgdkxXkJLsUBOnJ8rs3zDv6ApqYXGQFOyMPsjh79naWhF4DAxbF8rw==",
+ "version": "1.0.30001450",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001450.tgz",
+ "integrity": "sha512-qMBmvmQmFXaSxexkjjfMvD5rnDL0+m+dUMZKoDYsGG8iZN29RuYh9eRoMvKsT6uMAWlyUUGDEQGJJYjzCIO9ew==",
"dev": true
},
"chalk": {
@@ -9412,9 +9412,9 @@
"integrity": "sha512-HgNlIsRFP6D9VKU5atCeHRJY7XkJP8bOe8yEhd8NB7B3b4++VWTyauz6g650iiPmLfPLGlVpoJmGSgMfXDYusg=="
},
"electron-to-chromium": {
- "version": "1.4.284",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
- "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==",
+ "version": "1.4.286",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.286.tgz",
+ "integrity": "sha512-Vp3CVhmYpgf4iXNKAucoQUDcCrBQX3XLBtwgFqP9BUXuucgvAV9zWp1kYU7LL9j4++s9O+12cb3wMtN4SJy6UQ==",
"dev": true
},
"emoji-regex": {
@@ -9595,36 +9595,36 @@
}
},
"firebase": {
- "version": "9.16.0",
- "resolved": "https://registry.npmjs.org/firebase/-/firebase-9.16.0.tgz",
- "integrity": "sha512-nNLpDwJvfP3crRc6AjnHH46TAkFzk8zimNVMJfYRCwAf5amOSGyU8duuc3IsJF6dQGiYLSfzfr2tMCsQa+rhKQ==",
+ "version": "9.17.1",
+ "resolved": "https://registry.npmjs.org/firebase/-/firebase-9.17.1.tgz",
+ "integrity": "sha512-MSZaTRaaRLgDFLqoEnoPYK8zkLwQNvYeLZ3YSKdcQxG8hDifNO22ywS1cSA1ZCGHlQeOsDtfDwBejKcANf/RQw==",
"requires": {
- "@firebase/analytics": "0.9.1",
- "@firebase/analytics-compat": "0.2.1",
- "@firebase/app": "0.9.1",
- "@firebase/app-check": "0.6.1",
- "@firebase/app-check-compat": "0.3.1",
- "@firebase/app-compat": "0.2.1",
+ "@firebase/analytics": "0.9.3",
+ "@firebase/analytics-compat": "0.2.3",
+ "@firebase/app": "0.9.3",
+ "@firebase/app-check": "0.6.3",
+ "@firebase/app-check-compat": "0.3.3",
+ "@firebase/app-compat": "0.2.3",
"@firebase/app-types": "0.9.0",
- "@firebase/auth": "0.21.1",
- "@firebase/auth-compat": "0.3.1",
- "@firebase/database": "0.14.1",
- "@firebase/database-compat": "0.3.1",
- "@firebase/firestore": "3.8.1",
- "@firebase/firestore-compat": "0.3.1",
- "@firebase/functions": "0.9.1",
- "@firebase/functions-compat": "0.3.1",
- "@firebase/installations": "0.6.1",
- "@firebase/installations-compat": "0.2.1",
- "@firebase/messaging": "0.12.1",
- "@firebase/messaging-compat": "0.2.1",
- "@firebase/performance": "0.6.1",
- "@firebase/performance-compat": "0.2.1",
- "@firebase/remote-config": "0.4.1",
- "@firebase/remote-config-compat": "0.2.1",
- "@firebase/storage": "0.10.1",
- "@firebase/storage-compat": "0.2.1",
- "@firebase/util": "1.9.0"
+ "@firebase/auth": "0.21.3",
+ "@firebase/auth-compat": "0.3.3",
+ "@firebase/database": "0.14.3",
+ "@firebase/database-compat": "0.3.3",
+ "@firebase/firestore": "3.8.3",
+ "@firebase/firestore-compat": "0.3.3",
+ "@firebase/functions": "0.9.3",
+ "@firebase/functions-compat": "0.3.3",
+ "@firebase/installations": "0.6.3",
+ "@firebase/installations-compat": "0.2.3",
+ "@firebase/messaging": "0.12.3",
+ "@firebase/messaging-compat": "0.2.3",
+ "@firebase/performance": "0.6.3",
+ "@firebase/performance-compat": "0.2.3",
+ "@firebase/remote-config": "0.4.3",
+ "@firebase/remote-config-compat": "0.2.3",
+ "@firebase/storage": "0.11.1",
+ "@firebase/storage-compat": "0.3.1",
+ "@firebase/util": "1.9.2"
}
},
"fs-extra": {
@@ -9809,13 +9809,13 @@
"dev": true
},
"intl-messageformat": {
- "version": "10.2.5",
- "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.2.5.tgz",
- "integrity": "sha512-AievYMN6WLLHwBeCTv4aRKG+w3ZNyZtkObwgsKk3Q7GNTq8zDRvDbJSBQkb2OPeVCcAKcIXvak9FF/bRNavoww==",
+ "version": "10.3.0",
+ "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.3.0.tgz",
+ "integrity": "sha512-FKeBZKH9T2Ue4RUXCuwY/hEaRHU8cgICevlGKog0qSBuz/amtRKNBLetBLmRxiHeEkF7JBBckC+56GIwshlRwA==",
"requires": {
"@formatjs/ecma402-abstract": "1.14.3",
- "@formatjs/fast-memoize": "1.2.7",
- "@formatjs/icu-messageformat-parser": "2.1.14",
+ "@formatjs/fast-memoize": "1.2.8",
+ "@formatjs/icu-messageformat-parser": "2.2.0",
"tslib": "^2.4.0"
}
},
@@ -9973,9 +9973,9 @@
"dev": true
},
"libphonenumber-js": {
- "version": "1.10.18",
- "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.18.tgz",
- "integrity": "sha512-NS4ZEgNhwbcPz1gfSXCGFnQm0xEiyTSPRthIuWytDzOiEG9xnZ2FbLyfJC4tI2BMAAXpoWbNxHYH75pa3Dq9og=="
+ "version": "1.10.19",
+ "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.19.tgz",
+ "integrity": "sha512-MDZ1zLIkfSDZV5xBta3nuvbEOlsnKCPe4z5r3hyup/AXveevkl9A1eSWmLhd2FX4k7pJDe4MrLeQsux0HI/VWg=="
},
"lilconfig": {
"version": "2.0.6",
@@ -10131,9 +10131,9 @@
}
},
"node-releases": {
- "version": "2.0.8",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz",
- "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==",
+ "version": "2.0.9",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.9.tgz",
+ "integrity": "sha512-2xfmOrRkGogbTK9R6Leda0DGiXeY3p2NJpy4+gNCffdUvV6mdEJnaDEic1i3Ec2djAo8jWYoJMR5PB0MSMpxUA==",
"dev": true
},
"normalize-path": {
@@ -10672,19 +10672,19 @@
}
},
"react-intl": {
- "version": "6.2.5",
- "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-6.2.5.tgz",
- "integrity": "sha512-nz21POTKbE0sPEuEJU4o5YTZYY7VlIYCPNJaD6D2+xKyk6Noj6DoUK0LRO9LXuQNUuQ044IZl3m6ymzZRj8XFQ==",
+ "version": "6.2.7",
+ "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-6.2.7.tgz",
+ "integrity": "sha512-3xjK7FZcOcI/uw5c6NrbSXnVqT04Liua5L5K9eeIxIeYYQjcpKl9nF0jx3+sfZv9SqbxnmsFlh1DtKiCyiaZcg==",
"requires": {
"@formatjs/ecma402-abstract": "1.14.3",
- "@formatjs/icu-messageformat-parser": "2.1.14",
- "@formatjs/intl": "2.6.3",
- "@formatjs/intl-displaynames": "6.2.3",
+ "@formatjs/icu-messageformat-parser": "2.2.0",
+ "@formatjs/intl": "2.6.5",
+ "@formatjs/intl-displaynames": "6.2.4",
"@formatjs/intl-listformat": "7.1.7",
"@types/hoist-non-react-statics": "^3.3.1",
"@types/react": "16 || 17 || 18",
"hoist-non-react-statics": "^3.3.2",
- "intl-messageformat": "10.2.5",
+ "intl-messageformat": "10.3.0",
"tslib": "^2.4.0"
}
},
@@ -11002,9 +11002,9 @@
"dev": true
},
"terser": {
- "version": "5.16.1",
- "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz",
- "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==",
+ "version": "5.16.3",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.3.tgz",
+ "integrity": "sha512-v8wWLaS/xt3nE9dgKEWhNUFP6q4kngO5B8eYFUuebsu7Dw/UNAnpUod6UHo04jSSkv8TzKHjZDSd7EXdDQAl8Q==",
"dev": true,
"requires": {
"@jridgewell/source-map": "^0.3.2",
@@ -11079,9 +11079,9 @@
"dev": true
},
"tinode-sdk": {
- "version": "0.21.0-rc1",
- "resolved": "https://registry.npmjs.org/tinode-sdk/-/tinode-sdk-0.21.0-rc1.tgz",
- "integrity": "sha512-qWRwcbRC1LGVrX/ka2iYbTK/LK08Ikh3rQe2/KvK+lXt5EL2gAIkifm4qggKScYmqlJrYHogwil/f6MDCN1lhQ=="
+ "version": "0.21.0",
+ "resolved": "https://registry.npmjs.org/tinode-sdk/-/tinode-sdk-0.21.0.tgz",
+ "integrity": "sha512-QmlwO1rb9vbj8TYJAMQh0d1kH+g7d/0QVphRlwAea3ilZWvgjX0rYdIoJ1X4OnM2P00rTrJiGKECN3AS3NoK7Q=="
},
"to-fast-properties": {
"version": "2.0.0",
@@ -11104,14 +11104,14 @@
"integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
},
"tslib": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
- "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
+ "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
},
"typescript": {
- "version": "4.9.4",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz",
- "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==",
+ "version": "4.9.5",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
+ "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
"devOptional": true
},
"unicode-canonical-property-names-ecmascript": {
diff --git a/package.json b/package.json
index 41e04a25..524264c0 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "tinode-webapp",
"description": "Tinode messenger for the web",
- "version": "0.21.0-rc2",
+ "version": "0.21.0",
"repository": {
"type": "git",
"url": "https://github.com/tinode/example-react-js.git"
@@ -9,7 +9,7 @@
"scripts": {
"start": "echo 'Read installation instructions'",
"build": "npm run vers && npm run build:css && npm run extract && npm run build:i18n && npm run build:prod && npm run build:dev",
- "clean": "rm umd/* && rm css/base.min.css && rm i18n.min/*",
+ "clean": "rm umd/* && rm css/base.min.css && rm src/i18n.min/*",
"build:css": "postcss css/base.css > css/base.min.css",
"build:dev": "webpack --mode development",
"build:prod": "webpack --mode production",
@@ -70,7 +70,7 @@
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-intl": "^6.2.1",
- "tinode-sdk": "^0.21.0-rc2",
+ "tinode-sdk": "^0.21.0",
"webm-duration-fix": "^1.0.4"
},
"devDependencies": {
diff --git a/src/i18n.min/ko.json b/src/i18n.min/ko.json
index 9314ce28..b2ce35be 100644
--- a/src/i18n.min/ko.json
+++ b/src/i18n.min/ko.json
@@ -1 +1 @@
-{"action_block_contact":"연락차단","action_cancel":"취소","action_clear_messages":"메시지지우기","action_delete_messages":"모든메시지지우기","action_leave_chat":"대화나누기","action_report_chat":"대화기록","archived_contacts":"보관된연락처({수})","badge_danger":"의심 많은","badge_owner":"소유자","badge_staff":"직원 관리하에","badge_verified":"확인 됨","badge_you":"당신","block_contact_warning":"이연락처를차단하시겠습니까?","blocked_contacts_link":"차단된연락처({수})","button_add_members":"회원추가","button_cancel":"취소","button_confirm":"확인","button_create":"작성","button_delete_account":"계정삭제","button_edit":"편집","button_logout":"로그아웃","button_ok":"OK","button_reset":"재설정","button_send_request":"요청보내기","button_sign_in":"로그인","button_sign_up":"가입","button_subscribe":"구독","button_update":"업데이트","cannot_initiate_file_upload":"파일업로드를시작할수없습니다.","channel":"채널","channel_prompt":"이 채널입니다","chat_invitation":"새로운대화를시작하도록초대되었습니다.무엇을하시겠습니까?","chat_invitation_accept":"수락","chat_invitation_block":"차단","chat_invitation_ignore":"무시","clear_messages_warning":"모든메시지를지우시겠습니까?실행취소할수없습니다.","code_doesnot_match":"코드가일치하지않습니다","contacts_not_found":"채팅이없습니다 ¯∖_(ツ)_/¯","contacts_not_found_short":"'{문의}'와일치하는연락처가없습니다.","credential_email_prompt":"등록이메일","delete_account":"계정삭제","delete_account_warning":"계정을삭제하시겠습니까?실행취소할수없습니다.","delete_messages_warning":"모든사람의모든메시지를삭제하시겠습니까?실행취소할수없습니다.","download_action":"다운로드","drafty_attachment":"부착","drafty_form":"형태:","drafty_image":"이미지","email_dative":"이메일","email_prompt":"이메일(예:hong@example.com)","enable_peers_messaging":"활성화","enter_confirmation_code_prompt":"{방법}으로보낸확인코드를입력하십시오:","error_invalid_id":"잘못된ID","file_attachment_too_large":"파일크기{크기}이(가){제한}제한을초과합니다.","forgot_password_link":"비밀번호를잊으셨습니까?","full_name_prompt":"전체이름(예:홍길동)","granted_permissions":"승낙하다","group_has_no_members":"회원없음","group_user_id_prompt":"그룹또는사용자ID","image_caption_prompt":"이미지설명","invalid_content":"잘못된내용","invalid_security_token":"유효하지않은보안토큰","label_client":"클라이언트: ","label_content_type":"컨텐츠유형: ","label_default_access_mode":"기본액세스모드: ","label_file_name":"파일이름: ","label_group_members":"그룹회원: ","label_incognito_mode":"시크릿모드: ","label_message_sound":"메시지소리: ","label_muting_topic":"음소거: ","label_other_user":"기타","label_password":"비밀번호","label_permissions":"권한: ","label_private":"개인코멘트","label_push_notifications":"통지경보: ","label_push_notifications_disabled":"통지경보(HTTPS필요): ","label_reset_password":"비밀번호재설정이메일보내기: ","label_sdk":"SDK:","label_server":"서버: ","label_server_address":"서버주소: ","label_server_to_use":"사용할서버:","label_size":"크기: ","label_topic_name":"이름","label_user_contacts":"연락처","label_user_id":"ID:","label_wire_transport":"와이어수송:","label_you":"당신: ","label_your_name":"이름","label_your_permissions":"권한: ","last_seen_timestamp":"마지막으로본","leave_chat_warning":"이대화를나가시겠습니까?","link_contact_us":"문의처","link_privacy_policy":"개인정보보호정책","link_terms_of_service":"서비스약관","login_prompt":"로그인","menu_item_archive_topic":"보관","menu_item_block":"차단","menu_item_clear_messages":"메시지지우기","menu_item_clear_messages_for_all":"모두지우기","menu_item_delete":"삭제","menu_item_delete_for_all":"모두삭제","menu_item_delete_topic":"삭제","menu_item_edit_permissions":"편집권한","menu_item_info":"정보","menu_item_member_delete":"제거","menu_item_mute":"음소거","menu_item_restore_topic":"복원","menu_item_send_retry":"다시시도","menu_item_unblock":"차단해제","menu_item_unmute":"음소거해제","message_sending":"보내기...","message_sending_failed":"실패","messages_not_readable":"메시지에 액세스 할 수 없습니다","messaging_disabled_prompt":"메시지비활성화","more_online_members":"+{넘침}더보기","new_message_prompt":"새메시지","new_password_placeholder":"새비밀번호입력","no_connection":"연결없음","no_contacts":"연락처가없습니다 (._.)","numeric_confirmation_code_prompt":"숫자만","online_now":"현재접속중","password_prompt":"비밀번호","password_unchanged_prompt":"변경되지않음","peers_messaging_disabled":"동료의메시지가비활성화되었습니다.","permission_admin":"승인({val})","permission_delete":"삭제({val})","permission_join":"참여({val})","permission_owner":"소유자({val})","permission_pres":"알림받기({val})","permission_read":"읽기({val})","permission_share":"공유({val})","permission_write":"쓰기({val})","phone_dative":"전화","private_editing_placeholder":"나만볼수있습니다","push_init_failed":"푸시알림을초기화하지못했습니다","reconnect_countdown":"연결이끊어졌습니다.다시연결하는중{초}…","reconnect_now":"지금시도","reload_update":"재로드","report_chat_warning":"이대화를차단하고기록하시겠습니까?","requested_permissions":"요청","save_attachment":"저장","search_for_contacts":"검색을사용하여연락처찾기","search_no_results":"검색결과가없습니다","search_placeholder":"email:alice@example.com,tel:17025550003...와같은목록","sidepanel_title_acc_notifications":"알림","sidepanel_title_acc_support":"지원","sidepanel_title_account_settings":"계정설정","sidepanel_title_archive":"보관된채팅","sidepanel_title_blocked":"차단된채팅","sidepanel_title_cred":"자격증명확인","sidepanel_title_login":"로그인","sidepanel_title_newtpk":"새채팅시작","sidepanel_title_register":"계정만들기","sidepanel_title_reset":"비밀번호재설정","sidepanel_title_settings":"설정","stay_logged_in":"로그인상태유지","tabtitle_find_user":"찾기","tabtitle_group_by_id":"id로","tabtitle_new_group":"새그룹","tags_editor_no_tags":"일부태그추가","tags_not_found":"태그가정의되지않았습니다.일부를추가하십시오.","title_all_contacts":"모든연락처","title_group_members":"그룹구성원","title_manage_tags":"관리","title_not_found":"찾을수없음","title_permissions":"권한","title_tag_manager":"태그(사용자검색)","topic_block_warning":"이대화를차단하시겠습니까?","topic_delete_warning":"이대화를삭제하시겠습니까?","topic_name_editing_placeholder":"그룹의자유형이름","unnamed_topic":"이름없는","update_available":"업데이트가능.","upload_finishing":"마무리...","user_not_found":"찾을수없음","description_editing_placeholder":"설명(선택 사항)","label_description":"설명","button_security":"보안","panel_title_crop":"드래그하여 조정","panel_title_general":"일반","panel_title_members":"구성원","panel_title_security":"보안","panel_title_info":"정보","permissions_anonymous":"익명","permissions_authenticated":"인증됨","topic_delete":"채팅 삭제","permissions_user":"사용자 권한","password_reset_email_sent":"보안 코드가 포함된 이메일이 전송되었습니다.","label_unarchive_topic":"보관됨:","menu_item_reply":"회신하다","menu_item_forward":"리디렉션","forward_to":"메시지를 리디렉션","forward_to_search_placeholder":"연락처 검색","label_new_password":"새 비밀번호","drafty_unknown":"지원되지 않음","calls_incoming":"수신 전화","calls_outgoing":"발신 전화","calls_you_label":"너","menu_item_video_call":"영상 통화","already_in_call":"당신은 이미 말하고 있습니다!","call_cancelled":"취소 된","call_missed":"부재중","call_declined":"통화 거부","call_disconnected":"연결 끊김","label_use_secure_connection":"보안 연결 사용","cred_confirmed_successfully":"성공적으로 확인됨","menu_item_edit":"편집","editing_message":"교정하다","message_edited_marker":" 수정됨","icon_title_add_image":"이미지 추가","icon_title_attach_file":"파일을 첨부","icon_title_delete":"녹음 삭제","icon_title_pause":"재생 일시 중지","icon_title_play":"녹음 재생","icon_title_record_voice":"음성 메시지 녹음","icon_title_resume":"재생 재개","icon_title_send":"문자 보내","drag_file":"여기로 파일 드래그","drafty_video":"녹화","call_in_progress":"통화 중","menu_item_audio_call":"부르다","unrecognized_video_format":"이 동영상의 형식을 인식할 수 없습니다.","loading_note":"로드 중...","password_i_have_code":"코드가 있습니다","label_reset_password_tel":"비밀번호 재설정을 위해 SMS 보내기","mobile_phone_number":"휴대전화 번호","password_reset_sms_sent":"보안 코드가 포함된 문자 메시지가 전송되었습니다.","mobile_number_required":"휴대전화 번호 필요"}
\ No newline at end of file
+{"action_block_contact":"연락차단","action_cancel":"취소","action_clear_messages":"메시지지우기","action_delete_messages":"모든메시지지우기","action_leave_chat":"대화나누기","action_report_chat":"대화기록","archived_contacts":"보관된연락처({수})","badge_danger":"의심 많은","badge_owner":"소유자","badge_staff":"직원 관리하에","badge_verified":"확인 됨","badge_you":"당신","block_contact_warning":"이연락처를차단하시겠습니까?","blocked_contacts_link":"차단된연락처({수})","button_add_members":"회원추가","button_cancel":"취소","button_confirm":"확인","button_create":"작성","button_delete_account":"계정삭제","button_edit":"편집","button_logout":"로그아웃","button_ok":"OK","button_reset":"재설정","button_send_request":"요청보내기","button_sign_in":"로그인","button_sign_up":"가입","button_subscribe":"구독","button_update":"업데이트","cannot_initiate_file_upload":"파일업로드를시작할수없습니다.","channel":"채널","channel_prompt":"이 채널입니다","chat_invitation":"새로운대화를시작하도록초대되었습니다.무엇을하시겠습니까?","chat_invitation_accept":"수락","chat_invitation_block":"차단","chat_invitation_ignore":"무시","clear_messages_warning":"모든메시지를지우시겠습니까?실행취소할수없습니다.","code_doesnot_match":"코드가일치하지않습니다","contacts_not_found":"채팅이없습니다 ¯∖_(ツ)_/¯","contacts_not_found_short":"'{문의}'와일치하는연락처가없습니다.","credential_email_prompt":"등록이메일","delete_account":"계정삭제","delete_account_warning":"계정을삭제하시겠습니까?실행취소할수없습니다.","delete_messages_warning":"모든사람의모든메시지를삭제하시겠습니까?실행취소할수없습니다.","download_action":"다운로드","drafty_attachment":"부착","drafty_form":"형태:","drafty_image":"이미지","email_dative":"이메일","email_prompt":"이메일(예:hong@example.com)","enable_peers_messaging":"활성화","enter_confirmation_code_prompt":"{방법}으로보낸확인코드를입력하십시오:","error_invalid_id":"잘못된ID","file_attachment_too_large":"파일크기{크기}이(가){제한}제한을초과합니다.","forgot_password_link":"비밀번호를잊으셨습니까?","full_name_prompt":"전체이름(예:홍길동)","granted_permissions":"승낙하다","group_has_no_members":"회원없음","group_user_id_prompt":"그룹또는사용자ID","image_caption_prompt":"이미지설명","invalid_content":"잘못된내용","invalid_security_token":"유효하지않은보안토큰","label_client":"클라이언트: ","label_content_type":"컨텐츠유형: ","label_default_access_mode":"기본액세스모드: ","label_file_name":"파일이름: ","label_group_members":"그룹회원: ","label_incognito_mode":"시크릿모드: ","label_message_sound":"메시지소리: ","label_muting_topic":"음소거: ","label_other_user":"기타","label_password":"비밀번호","label_permissions":"권한: ","label_private":"개인코멘트","label_push_notifications":"통지경보: ","label_push_notifications_disabled":"통지경보(HTTPS필요): ","label_reset_password":"비밀번호재설정이메일보내기: ","label_sdk":"SDK:","label_server":"서버: ","label_server_address":"서버주소: ","label_server_to_use":"사용할서버:","label_size":"크기: ","label_topic_name":"이름","label_user_contacts":"연락처","label_user_id":"ID:","label_wire_transport":"와이어수송:","label_you":"당신: ","label_your_name":"이름","label_your_permissions":"권한: ","last_seen_timestamp":"마지막으로본","leave_chat_warning":"이대화를나가시겠습니까?","link_contact_us":"문의처","link_privacy_policy":"개인정보보호정책","link_terms_of_service":"서비스약관","login_prompt":"로그인","menu_item_archive_topic":"보관","menu_item_block":"차단","menu_item_clear_messages":"메시지지우기","menu_item_clear_messages_for_all":"모두지우기","menu_item_delete":"삭제","menu_item_delete_for_all":"모두삭제","menu_item_delete_topic":"삭제","menu_item_edit_permissions":"편집권한","menu_item_info":"정보","menu_item_member_delete":"제거","menu_item_mute":"음소거","menu_item_restore_topic":"복원","menu_item_send_retry":"다시시도","menu_item_unblock":"차단해제","menu_item_unmute":"음소거해제","message_sending":"보내기...","message_sending_failed":"실패","messages_not_readable":"메시지에 액세스 할 수 없습니다","messaging_disabled_prompt":"메시지비활성화","more_online_members":"+{넘침}더보기","new_message_prompt":"새메시지","new_password_placeholder":"새비밀번호입력","no_connection":"연결없음","no_contacts":"연락처가없습니다 (._.)","numeric_confirmation_code_prompt":"숫자만","online_now":"현재접속중","password_prompt":"비밀번호","password_unchanged_prompt":"변경되지않음","peers_messaging_disabled":"동료의메시지가비활성화되었습니다.","permission_admin":"승인({val})","permission_delete":"삭제({val})","permission_join":"참여({val})","permission_owner":"소유자({val})","permission_pres":"알림받기({val})","permission_read":"읽기({val})","permission_share":"공유({val})","permission_write":"쓰기({val})","phone_dative":"전화","private_editing_placeholder":"나만볼수있습니다","push_init_failed":"푸시알림을초기화하지못했습니다","reconnect_countdown":"연결이끊어졌습니다.다시연결하는중{초}…","reconnect_now":"지금시도","reload_update":"재로드","report_chat_warning":"이대화를차단하고기록하시겠습니까?","requested_permissions":"요청","save_attachment":"저장","search_for_contacts":"검색을사용하여연락처찾기","search_no_results":"검색결과가없습니다","search_placeholder":"email:alice@example.com,tel:17025550003...와같은목록","sidepanel_title_acc_notifications":"알림","sidepanel_title_acc_support":"지원","sidepanel_title_account_settings":"계정설정","sidepanel_title_archive":"보관된채팅","sidepanel_title_blocked":"차단된채팅","sidepanel_title_cred":"자격증명확인","sidepanel_title_login":"로그인","sidepanel_title_newtpk":"새채팅시작","sidepanel_title_register":"계정만들기","sidepanel_title_reset":"비밀번호재설정","sidepanel_title_settings":"설정","stay_logged_in":"로그인상태유지","tabtitle_find_user":"찾기","tabtitle_group_by_id":"id로","tabtitle_new_group":"새그룹","tags_editor_no_tags":"일부태그추가","tags_not_found":"태그가정의되지않았습니다.일부를추가하십시오.","title_all_contacts":"모든연락처","title_group_members":"그룹구성원","title_manage_tags":"관리","title_not_found":"찾을수없음","title_permissions":"권한","title_tag_manager":"태그(사용자검색)","topic_block_warning":"이대화를차단하시겠습니까?","topic_delete_warning":"이대화를삭제하시겠습니까?","topic_name_editing_placeholder":"그룹의자유형이름","unnamed_topic":"이름없는","update_available":"업데이트가능.","upload_finishing":"마무리...","user_not_found":"찾을수없음","description_editing_placeholder":"설명(선택 사항)","label_description":"설명","button_security":"보안","panel_title_crop":"드래그하여 조정","panel_title_general":"일반","panel_title_members":"구성원","panel_title_security":"보안","panel_title_info":"정보","permissions_anonymous":"익명","permissions_authenticated":"인증됨","topic_delete":"채팅 삭제","permissions_user":"사용자 권한","password_reset_email_sent":"보안 코드가 포함된 이메일이 전송되었습니다.","label_unarchive_topic":"보관됨:","menu_item_reply":"회신하다","menu_item_forward":"리디렉션","forward_to":"메시지를 리디렉션","forward_to_search_placeholder":"연락처 검색","label_new_password":"새 비밀번호","drafty_unknown":"지원되지 않음","calls_incoming":"수신 전화","calls_outgoing":"발신 전화","calls_you_label":"너","menu_item_video_call":"영상 통화","already_in_call":"당신은 이미 말하고 있습니다!","call_cancelled":"취소 된","call_missed":"부재중","call_declined":"통화 거부","call_disconnected":"연결 끊김","label_use_secure_connection":"보안 연결 사용","cred_confirmed_successfully":"성공적으로 확인됨","menu_item_edit":"편집","editing_message":"교정하다","message_edited_marker":" 수정됨","icon_title_add_image":"이미지 추가","icon_title_attach_file":"파일을 첨부","icon_title_delete":"녹음 삭제","icon_title_pause":"재생 일시 중지","icon_title_play":"녹음 재생","icon_title_record_voice":"음성 메시지 녹음","icon_title_resume":"재생 재개","icon_title_send":"문자 보내","drag_file":"여기로 파일 드래그","drafty_video":"녹화","call_in_progress":"통화 중","menu_item_audio_call":"전화","unrecognized_video_format":"이 동영상의 형식을 인식할 수 없습니다.","loading_note":"로드 중...","password_i_have_code":"코드가 있습니다","label_reset_password_tel":"비밀번호 재설정을 위해 SMS 보내기","mobile_phone_number":"휴대전화 번호","password_reset_sms_sent":"보안 코드가 포함된 문자 메시지가 전송되었습니다.","mobile_number_required":"휴대전화 번호 필요"}
\ No newline at end of file
diff --git a/src/i18n/ko.json b/src/i18n/ko.json
index 3fa00470..5a6767b7 100644
--- a/src/i18n/ko.json
+++ b/src/i18n/ko.json
@@ -1544,7 +1544,7 @@
"obsolete": false
},
"menu_item_audio_call": {
- "translation": "부르다",
+ "translation": "전화",
"defaultMessage": "Call",
"description": "Start audio call",
"missing": false,
diff --git a/src/version.js b/src/version.js
index 8f3c432f..6b52bcec 100644
--- a/src/version.js
+++ b/src/version.js
@@ -1,3 +1,3 @@
// This is a generated file. Don't edit.
-export const PACKAGE_VERSION = "0.21.0-rc2";
+export const PACKAGE_VERSION = "0.21.0";
diff --git a/umd/246.prod.js b/umd/246.prod.js
index 7469336f..3f6c1e8a 100644
--- a/umd/246.prod.js
+++ b/umd/246.prod.js
@@ -1,2 +1,2 @@
-(globalThis.webpackChunktinode_webapp=globalThis.webpackChunktinode_webapp||[]).push([[246],{9742:(e,t)=>{"use strict";t.byteLength=function(e){var t=l(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){var t,n,o=l(e),a=o[0],s=o[1],u=new i(function(e,t,n){return 3*(t+n)/4-n}(0,a,s)),c=0,f=s>0?a-4:a;for(n=0;n>16&255,u[c++]=t>>8&255,u[c++]=255&t;2===s&&(t=r[e.charCodeAt(n)]<<2|r[e.charCodeAt(n+1)]>>4,u[c++]=255&t);1===s&&(t=r[e.charCodeAt(n)]<<10|r[e.charCodeAt(n+1)]<<4|r[e.charCodeAt(n+2)]>>2,u[c++]=t>>8&255,u[c++]=255&t);return u},t.fromByteArray=function(e){for(var t,r=e.length,i=r%3,o=[],a=16383,s=0,l=r-i;sl?l:s+a));1===i?(t=e[r-1],o.push(n[t>>2]+n[t<<4&63]+"==")):2===i&&(t=(e[r-2]<<8)+e[r-1],o.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"="));return o.join("")};for(var n=[],r=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,s=o.length;a0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function u(e,t,r){for(var i,o,a=[],s=t;s>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);return a.join("")}r["-".charCodeAt(0)]=62,r["_".charCodeAt(0)]=63},8764:(e,t,n)=>{"use strict";const r=n(9742),i=n(645),o="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=l,t.SlowBuffer=function(e){+e!=e&&(e=0);return l.alloc(+e)},t.INSPECT_MAX_BYTES=50;const a=2147483647;function s(e){if(e>a)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,l.prototype),t}function l(e,t,n){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return f(e)}return u(e,t,n)}function u(e,t,n){if("string"==typeof e)return function(e,t){"string"==typeof t&&""!==t||(t="utf8");if(!l.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const n=0|m(e,t);let r=s(n);const i=r.write(e,t);i!==n&&(r=r.slice(0,i));return r}(e,t);if(ArrayBuffer.isView(e))return function(e){if(Y(e,Uint8Array)){const t=new Uint8Array(e);return p(t.buffer,t.byteOffset,t.byteLength)}return h(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(Y(e,ArrayBuffer)||e&&Y(e.buffer,ArrayBuffer))return p(e,t,n);if("undefined"!=typeof SharedArrayBuffer&&(Y(e,SharedArrayBuffer)||e&&Y(e.buffer,SharedArrayBuffer)))return p(e,t,n);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const r=e.valueOf&&e.valueOf();if(null!=r&&r!==e)return l.from(r,t,n);const i=function(e){if(l.isBuffer(e)){const t=0|d(e.length),n=s(t);return 0===n.length||e.copy(n,0,0,t),n}if(void 0!==e.length)return"number"!=typeof e.length||J(e.length)?s(0):h(e);if("Buffer"===e.type&&Array.isArray(e.data))return h(e.data)}(e);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return l.from(e[Symbol.toPrimitive]("string"),t,n);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function c(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function f(e){return c(e),s(e<0?0:0|d(e))}function h(e){const t=e.length<0?0:0|d(e.length),n=s(t);for(let r=0;r=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return 0|e}function m(e,t){if(l.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||Y(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const n=e.length,r=arguments.length>2&&!0===arguments[2];if(!r&&0===n)return 0;let i=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return W(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return G(e).length;default:if(i)return r?-1:W(e).length;t=(""+t).toLowerCase(),i=!0}}function y(e,t,n){let r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return _(this,t,n);case"utf8":case"utf-8":return B(this,t,n);case"ascii":return A(this,t,n);case"latin1":case"binary":return D(this,t,n);case"base64":return S(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return x(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function g(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),J(n=+n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=l.from(t,r)),l.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,i);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,i){let o,a=1,s=e.length,l=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,l/=2,n/=2}function u(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(i){let r=-1;for(o=n;os&&(n=s-l),o=n;o>=0;o--){let n=!0;for(let r=0;ri&&(r=i):r=i;const o=t.length;let a;for(r>o/2&&(r=o/2),a=0;a>8,i=n%256,o.push(i),o.push(r);return o}(t,e.length-n),e,n,r)}function S(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function B(e,t,n){n=Math.min(e.length,n);const r=[];let i=t;for(;i239?4:t>223?3:t>191?2:1;if(i+a<=n){let n,r,s,l;switch(a){case 1:t<128&&(o=t);break;case 2:n=e[i+1],128==(192&n)&&(l=(31&t)<<6|63&n,l>127&&(o=l));break;case 3:n=e[i+1],r=e[i+2],128==(192&n)&&128==(192&r)&&(l=(15&t)<<12|(63&n)<<6|63&r,l>2047&&(l<55296||l>57343)&&(o=l));break;case 4:n=e[i+1],r=e[i+2],s=e[i+3],128==(192&n)&&128==(192&r)&&128==(192&s)&&(l=(15&t)<<18|(63&n)<<12|(63&r)<<6|63&s,l>65535&&l<1114112&&(o=l))}}null===o?(o=65533,a=1):o>65535&&(o-=65536,r.push(o>>>10&1023|55296),o=56320|1023&o),r.push(o),i+=a}return function(e){const t=e.length;if(t<=I)return String.fromCharCode.apply(String,e);let n="",r=0;for(;rr.length?(l.isBuffer(t)||(t=l.from(t)),t.copy(r,i)):Uint8Array.prototype.set.call(r,t,i);else{if(!l.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(r,i)}i+=t.length}return r},l.byteLength=m,l.prototype._isBuffer=!0,l.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tn&&(e+=" ... "),""},o&&(l.prototype[o]=l.prototype.inspect),l.prototype.compare=function(e,t,n,r,i){if(Y(e,Uint8Array)&&(e=l.from(e,e.offset,e.byteLength)),!l.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(this===e)return 0;let o=(i>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0);const s=Math.min(o,a),u=this.slice(r,i),c=e.slice(t,n);for(let e=0;e>>=0,isFinite(n)?(n>>>=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}const i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");let o=!1;for(;;)switch(r){case"hex":return w(this,e,t,n);case"utf8":case"utf-8":return k(this,e,t,n);case"ascii":case"latin1":case"binary":return T(this,e,t,n);case"base64":return E(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const I=4096;function A(e,t,n){let r="";n=Math.min(e.length,n);for(let i=t;ir)&&(n=r);let i="";for(let r=t;rn)throw new RangeError("Trying to access beyond buffer length")}function L(e,t,n,r,i,o){if(!l.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function U(e,t,n,r,i){j(t,r,i,e,n,7);let o=Number(t&BigInt(4294967295));e[n++]=o,o>>=8,e[n++]=o,o>>=8,e[n++]=o,o>>=8,e[n++]=o;let a=Number(t>>BigInt(32)&BigInt(4294967295));return e[n++]=a,a>>=8,e[n++]=a,a>>=8,e[n++]=a,a>>=8,e[n++]=a,n}function O(e,t,n,r,i){j(t,r,i,e,n,7);let o=Number(t&BigInt(4294967295));e[n+7]=o,o>>=8,e[n+6]=o,o>>=8,e[n+5]=o,o>>=8,e[n+4]=o;let a=Number(t>>BigInt(32)&BigInt(4294967295));return e[n+3]=a,a>>=8,e[n+2]=a,a>>=8,e[n+1]=a,a>>=8,e[n]=a,n+8}function M(e,t,n,r,i,o){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function R(e,t,n,r,o){return t=+t,n>>>=0,o||M(e,0,n,4),i.write(e,t,n,r,23,4),n+4}function N(e,t,n,r,o){return t=+t,n>>>=0,o||M(e,0,n,8),i.write(e,t,n,r,52,8),n+8}l.prototype.slice=function(e,t){const n=this.length;(e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t>>=0,t>>>=0,n||P(e,t,this.length);let r=this[e],i=1,o=0;for(;++o>>=0,t>>>=0,n||P(e,t,this.length);let r=this[e+--t],i=1;for(;t>0&&(i*=256);)r+=this[e+--t]*i;return r},l.prototype.readUint8=l.prototype.readUInt8=function(e,t){return e>>>=0,t||P(e,1,this.length),this[e]},l.prototype.readUint16LE=l.prototype.readUInt16LE=function(e,t){return e>>>=0,t||P(e,2,this.length),this[e]|this[e+1]<<8},l.prototype.readUint16BE=l.prototype.readUInt16BE=function(e,t){return e>>>=0,t||P(e,2,this.length),this[e]<<8|this[e+1]},l.prototype.readUint32LE=l.prototype.readUInt32LE=function(e,t){return e>>>=0,t||P(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},l.prototype.readUint32BE=l.prototype.readUInt32BE=function(e,t){return e>>>=0,t||P(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},l.prototype.readBigUInt64LE=Z((function(e){H(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||q(e,this.length-8);const r=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,i=this[++e]+256*this[++e]+65536*this[++e]+n*2**24;return BigInt(r)+(BigInt(i)<>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||q(e,this.length-8);const r=t*2**24+65536*this[++e]+256*this[++e]+this[++e],i=this[++e]*2**24+65536*this[++e]+256*this[++e]+n;return(BigInt(r)<>>=0,t>>>=0,n||P(e,t,this.length);let r=this[e],i=1,o=0;for(;++o=i&&(r-=Math.pow(2,8*t)),r},l.prototype.readIntBE=function(e,t,n){e>>>=0,t>>>=0,n||P(e,t,this.length);let r=t,i=1,o=this[e+--r];for(;r>0&&(i*=256);)o+=this[e+--r]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*t)),o},l.prototype.readInt8=function(e,t){return e>>>=0,t||P(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},l.prototype.readInt16LE=function(e,t){e>>>=0,t||P(e,2,this.length);const n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt16BE=function(e,t){e>>>=0,t||P(e,2,this.length);const n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt32LE=function(e,t){return e>>>=0,t||P(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},l.prototype.readInt32BE=function(e,t){return e>>>=0,t||P(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},l.prototype.readBigInt64LE=Z((function(e){H(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||q(e,this.length-8);const r=this[e+4]+256*this[e+5]+65536*this[e+6]+(n<<24);return(BigInt(r)<>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||q(e,this.length-8);const r=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(r)<>>=0,t||P(e,4,this.length),i.read(this,e,!0,23,4)},l.prototype.readFloatBE=function(e,t){return e>>>=0,t||P(e,4,this.length),i.read(this,e,!1,23,4)},l.prototype.readDoubleLE=function(e,t){return e>>>=0,t||P(e,8,this.length),i.read(this,e,!0,52,8)},l.prototype.readDoubleBE=function(e,t){return e>>>=0,t||P(e,8,this.length),i.read(this,e,!1,52,8)},l.prototype.writeUintLE=l.prototype.writeUIntLE=function(e,t,n,r){if(e=+e,t>>>=0,n>>>=0,!r){L(this,e,t,n,Math.pow(2,8*n)-1,0)}let i=1,o=0;for(this[t]=255&e;++o>>=0,n>>>=0,!r){L(this,e,t,n,Math.pow(2,8*n)-1,0)}let i=n-1,o=1;for(this[t+i]=255&e;--i>=0&&(o*=256);)this[t+i]=e/o&255;return t+n},l.prototype.writeUint8=l.prototype.writeUInt8=function(e,t,n){return e=+e,t>>>=0,n||L(this,e,t,1,255,0),this[t]=255&e,t+1},l.prototype.writeUint16LE=l.prototype.writeUInt16LE=function(e,t,n){return e=+e,t>>>=0,n||L(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},l.prototype.writeUint16BE=l.prototype.writeUInt16BE=function(e,t,n){return e=+e,t>>>=0,n||L(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},l.prototype.writeUint32LE=l.prototype.writeUInt32LE=function(e,t,n){return e=+e,t>>>=0,n||L(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},l.prototype.writeUint32BE=l.prototype.writeUInt32BE=function(e,t,n){return e=+e,t>>>=0,n||L(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},l.prototype.writeBigUInt64LE=Z((function(e,t=0){return U(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),l.prototype.writeBigUInt64BE=Z((function(e,t=0){return O(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),l.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t>>>=0,!r){const r=Math.pow(2,8*n-1);L(this,e,t,n,r-1,-r)}let i=0,o=1,a=0;for(this[t]=255&e;++i>0)-a&255;return t+n},l.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t>>>=0,!r){const r=Math.pow(2,8*n-1);L(this,e,t,n,r-1,-r)}let i=n-1,o=1,a=0;for(this[t+i]=255&e;--i>=0&&(o*=256);)e<0&&0===a&&0!==this[t+i+1]&&(a=1),this[t+i]=(e/o>>0)-a&255;return t+n},l.prototype.writeInt8=function(e,t,n){return e=+e,t>>>=0,n||L(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},l.prototype.writeInt16LE=function(e,t,n){return e=+e,t>>>=0,n||L(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},l.prototype.writeInt16BE=function(e,t,n){return e=+e,t>>>=0,n||L(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},l.prototype.writeInt32LE=function(e,t,n){return e=+e,t>>>=0,n||L(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},l.prototype.writeInt32BE=function(e,t,n){return e=+e,t>>>=0,n||L(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},l.prototype.writeBigInt64LE=Z((function(e,t=0){return U(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),l.prototype.writeBigInt64BE=Z((function(e,t=0){return O(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),l.prototype.writeFloatLE=function(e,t,n){return R(this,e,t,!0,n)},l.prototype.writeFloatBE=function(e,t,n){return R(this,e,t,!1,n)},l.prototype.writeDoubleLE=function(e,t,n){return N(this,e,t,!0,n)},l.prototype.writeDoubleBE=function(e,t,n){return N(this,e,t,!1,n)},l.prototype.copy=function(e,t,n,r){if(!l.isBuffer(e))throw new TypeError("argument should be a Buffer");if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i=r+4;n-=3)t=`_${e.slice(n-3,n)}${t}`;return`${e.slice(0,n)}${t}`}function j(e,t,n,r,i,o){if(e>n||e3?0===t||t===BigInt(0)?`>= 0${r} and < 2${r} ** ${8*(o+1)}${r}`:`>= -(2${r} ** ${8*(o+1)-1}${r}) and < 2 ** ${8*(o+1)-1}${r}`:`>= ${t}${r} and <= ${n}${r}`,new F.ERR_OUT_OF_RANGE("value",i,e)}!function(e,t,n){H(t,"offset"),void 0!==e[t]&&void 0!==e[t+n]||q(t,e.length-(n+1))}(r,i,o)}function H(e,t){if("number"!=typeof e)throw new F.ERR_INVALID_ARG_TYPE(t,"number",e)}function q(e,t,n){if(Math.floor(e)!==e)throw H(e,n),new F.ERR_OUT_OF_RANGE(n||"offset","an integer",e);if(t<0)throw new F.ERR_BUFFER_OUT_OF_BOUNDS;throw new F.ERR_OUT_OF_RANGE(n||"offset",`>= ${n?1:0} and <= ${t}`,e)}V("ERR_BUFFER_OUT_OF_BOUNDS",(function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),V("ERR_INVALID_ARG_TYPE",(function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`}),TypeError),V("ERR_OUT_OF_RANGE",(function(e,t,n){let r=`The value of "${e}" is out of range.`,i=n;return Number.isInteger(n)&&Math.abs(n)>2**32?i=z(String(n)):"bigint"==typeof n&&(i=String(n),(n>BigInt(2)**BigInt(32)||n<-(BigInt(2)**BigInt(32)))&&(i=z(i)),i+="n"),r+=` It must be ${t}. Received ${i}`,r}),RangeError);const $=/[^+/0-9A-Za-z-_]/g;function W(e,t){let n;t=t||1/0;const r=e.length;let i=null;const o=[];for(let a=0;a55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&o.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&o.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;o.push(n)}else if(n<2048){if((t-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function G(e){return r.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace($,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function X(e,t,n,r){let i;for(i=0;i=t.length||i>=e.length);++i)t[i+n]=e[i];return i}function Y(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function J(e){return e!=e}const K=function(){const e="0123456789abcdef",t=new Array(256);for(let n=0;n<16;++n){const r=16*n;for(let i=0;i<16;++i)t[r+i]=e[n]+e[i]}return t}();function Z(e){return"undefined"==typeof BigInt?Q:e}function Q(){throw new Error("BigInt not supported")}},1586:(e,t,n)=>{var r=n(1721);e.exports=function(e){var t={},n=new r(e);t.trackNumber=n.nextUIntV(),t.timecode=n.nextInt16BE();var i=n.nextUInt8();t.invisible=!!(8&i),t.keyframe=!!(128&i),t.discardable=!!(1&i);var o=(6&i)>>1;return t.frames=function(e,t){if(!t)return[e.nextBuffer()];var n,r,i=[],o=e.nextUInt8()+1;if(2===t){if(e.length%o!=0)throw new Error("Fixed-Size Lacing Error");for(r=e.length/o,n=0;n{var r=n(8826);function i(e){this.buffer=e,this.offset=0}i.prototype.nextInt16BE=function(){var e=this.buffer.readInt16BE(this.offset);return this.offset+=2,e},i.prototype.nextUInt8=function(){var e=this.buffer.readUInt8(this.offset);return this.offset+=1,e},i.prototype.nextUIntV=function(){var e=r(this.buffer,this.offset);return this.offset+=e.length,e.value},i.prototype.nextIntV=function(){var e=r(this.buffer,this.offset,!0);return this.offset+=e.length,e.value},i.prototype.nextBuffer=function(e){var t=e?this.buffer.slice(this.offset,this.offset+e):this.buffer.slice(this.offset);return this.offset+=e||this.length,t},Object.defineProperty(i.prototype,"length",{get:function(){return this.buffer.length-this.offset}}),e.exports=i},8826:e=>{e.exports=function(e,t,n){t=t||0;for(var r=1;r<=8&&!(e[t]>=Math.pow(2,8-r));r++);if(r>8)throw new Error("Unrepresentable length: "+r+" "+e.toString("hex",t,t+r));if(t+r>e.length)return null;var i,o=e[t]&(1<<8-r)-1;for(i=1;i=Math.pow(2,45)&&e[t+7]>0)return{length:r,value:-1};o*=Math.pow(2,8),o+=e[t+i]}return n&&(o-=Math.pow(2,7*r-1)-1),{length:r,value:o}}},7187:e=>{"use strict";var t,n="object"==typeof Reflect?Reflect:null,r=n&&"function"==typeof n.apply?n.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};t=n&&"function"==typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var i=Number.isNaN||function(e){return e!=e};function o(){o.init.call(this)}e.exports=o,e.exports.once=function(e,t){return new Promise((function(n,r){function i(n){e.removeListener(t,o),r(n)}function o(){"function"==typeof e.removeListener&&e.removeListener("error",i),n([].slice.call(arguments))}m(e,t,o,{once:!0}),"error"!==t&&function(e,t,n){"function"==typeof e.on&&m(e,"error",t,n)}(e,i,{once:!0})}))},o.EventEmitter=o,o.prototype._events=void 0,o.prototype._eventsCount=0,o.prototype._maxListeners=void 0;var a=10;function s(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function l(e){return void 0===e._maxListeners?o.defaultMaxListeners:e._maxListeners}function u(e,t,n,r){var i,o,a,u;if(s(n),void 0===(o=e._events)?(o=e._events=Object.create(null),e._eventsCount=0):(void 0!==o.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),o=e._events),a=o[t]),void 0===a)a=o[t]=n,++e._eventsCount;else if("function"==typeof a?a=o[t]=r?[n,a]:[a,n]:r?a.unshift(n):a.push(n),(i=l(e))>0&&a.length>i&&!a.warned){a.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=a.length,u=c,console&&console.warn&&console.warn(u)}return e}function c(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function f(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=c.bind(r);return i.listener=n,r.wrapFn=i,i}function h(e,t,n){var r=e._events;if(void 0===r)return[];var i=r[t];return void 0===i?[]:"function"==typeof i?n?[i.listener||i]:[i]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var l=o[e];if(void 0===l)return!1;if("function"==typeof l)r(l,this,t);else{var u=l.length,c=d(l,u);for(n=0;n=0;o--)if(n[o]===t||n[o].listener===t){a=n[o].listener,i=o;break}if(i<0)return this;0===i?n.shift():function(e,t){for(;t+1=0;r--)this.removeListener(e,t[r]);return this},o.prototype.listeners=function(e){return h(this,e,!0)},o.prototype.rawListeners=function(e){return h(this,e,!1)},o.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):p.call(e,t)},o.prototype.listenerCount=p,o.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},645:(e,t)=>{t.read=function(e,t,n,r,i){var o,a,s=8*i-r-1,l=(1<>1,c=-7,f=n?i-1:0,h=n?-1:1,p=e[t+f];for(f+=h,o=p&(1<<-c)-1,p>>=-c,c+=s;c>0;o=256*o+e[t+f],f+=h,c-=8);for(a=o&(1<<-c)-1,o>>=-c,c+=r;c>0;a=256*a+e[t+f],f+=h,c-=8);if(0===o)o=1-u;else{if(o===l)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,r),o-=u}return(p?-1:1)*a*Math.pow(2,o-r)},t.write=function(e,t,n,r,i,o){var a,s,l,u=8*o-i-1,c=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:o-1,d=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=c):(a=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-a))<1&&(a--,l*=2),(t+=a+f>=1?h/l:h*Math.pow(2,1-f))*l>=2&&(a++,l/=2),a+f>=c?(s=0,a=c):a+f>=1?(s=(t*l-1)*Math.pow(2,i),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,i),a=0));i>=8;e[n+p]=255&s,p+=d,s/=256,i-=8);for(a=a<0;e[n+p]=255&a,p+=d,a/=256,u-=8);e[n+p-d]|=128*m}},1166:function(e,t){!function(e){var t,n="undefined",r=n!==typeof Buffer&&Buffer,i=n!==typeof Uint8Array&&Uint8Array,o=n!==typeof ArrayBuffer&&ArrayBuffer,a=[0,0,0,0,0,0,0,0],s=Array.isArray||function(e){return!!e&&"[object Array]"==Object.prototype.toString.call(e)},l=4294967296;function u(s,u,w){var k=u?0:4,T=u?4:0,E=u?0:3,C=u?1:2,S=u?2:1,B=u?3:0,I=u?y:v,A=u?g:b,D=P.prototype,_="is"+s,x="_"+_;return D.buffer=void 0,D.offset=0,D[x]=!0,D.toNumber=L,D.toString=function(e){var t=this.buffer,n=this.offset,r=O(t,n+k),i=O(t,n+T),o="",a=!w&&2147483648&r;a&&(r=~r,i=l-i);e=e||10;for(;;){var s=r%e*l+i;if(r=Math.floor(r/e),i=Math.floor(s/e),o=(s%e).toString(e)+o,!r&&!i)break}a&&(o="-"+o);return o},D.toJSON=L,D.toArray=c,r&&(D.toBuffer=f),i&&(D.toArrayBuffer=h),P[_]=function(e){return!(!e||!e[x])},e[s]=P,P;function P(e,s,u,c){return this instanceof P?function(e,s,u,c,f){i&&o&&(s instanceof o&&(s=new i(s)),c instanceof o&&(c=new i(c)));if(!(s||u||c||t))return void(e.buffer=m(a,0));if(!p(s,u)){var h=t||Array;f=u,c=s,u=0,s=t===r?r.alloc(8):new h(8)}if(e.buffer=s,e.offset=u|=0,n===typeof c)return;"string"==typeof c?function(e,t,n,r){var i=0,o=n.length,a=0,s=0;"-"===n[0]&&i++;var u=i;for(;i=0))break;s=s*r+c,a=a*r+Math.floor(s/l),s%=l}u&&(a=~a,s?s=l-s:a++);U(e,t+k,a),U(e,t+T,s)}(s,u,c,f||10):p(c,f)?d(s,u,c,f):"number"==typeof f?(U(s,u+k,c),U(s,u+T,f)):c>0?I(s,u,c):c<0?A(s,u,c):d(s,u,a,0)}(this,e,s,u,c):new P(e,s,u,c)}function L(){var e=this.buffer,t=this.offset,n=O(e,t+k),r=O(e,t+T);return w||(n|=0),n?n*l+r:r}function U(e,t,n){e[t+B]=255&n,n>>=8,e[t+S]=255&n,n>>=8,e[t+C]=255&n,n>>=8,e[t+E]=255&n}function O(e,t){return 16777216*e[t+E]+(e[t+C]<<16)+(e[t+S]<<8)+e[t+B]}}function c(e){var n=this.buffer,r=this.offset;return t=null,!1!==e&&s(n)?8===n.length?n:n.slice(r,r+8):m(n,r)}function f(e){var n=this.buffer,i=this.offset;return t=r,!1!==e&&r.isBuffer(n)?8===n.length?n:n.slice(i,i+8):r.from(h.call(this,e))}function h(e){var n=this.buffer,r=this.offset,a=n.buffer;if(t=i,!1!==e&&!n.offset&&a instanceof o)return 8===a.byteLength?a:a.slice(r,r+8);var s=new i(8);return d(s,0,n,r),s.buffer}function p(e,t){var n=e&&e.length;return t|=0,n&&t+8<=n&&"string"!=typeof e[t]}function d(e,t,n,r){t|=0,r|=0;for(var i=0;i<8;i++)e[t++]=255&n[r++]}function m(e,t){return Array.prototype.slice.call(e,t,t+8)}function y(e,t,n){for(var r=t+8;r>t;)e[--r]=255&n,n/=256}function g(e,t,n){var r=t+8;for(n++;r>t;)e[--r]=255&-n^255,n/=256}function v(e,t,n){for(var r=t+8;t{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},2800:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,i=n(1166),o=n(3210),a=n(3210),s=n(4370);!function(e){e[e.STATE_TAG=1]="STATE_TAG",e[e.STATE_SIZE=2]="STATE_SIZE",e[e.STATE_CONTENT=3]="STATE_CONTENT"}(r||(r={}));var l=function(){function e(){this._buffer=new o.Buffer(0),this._tag_stack=[],this._state=r.STATE_TAG,this._cursor=0,this._total=0,this._schema=s.byEbmlID,this._result=[]}return e.prototype.decode=function(e){this.readChunk(e);var t=this._result;return this._result=[],t},e.prototype.readChunk=function(e){for(this._buffer=a.concat([this._buffer,new o.Buffer(e)]);this._cursor=this._buffer.length)return!1;var e=(0,o.readVint)(this._buffer,this._cursor);if(null==e)return!1;var t=this._buffer.slice(this._cursor,this._cursor+e.length).reduce((function(e,t,n,r){return e+t*Math.pow(16,2*(r.length-1-n))}),0),n=this.getSchemaInfo(t),i={EBML_ID:t.toString(16),schema:n,type:n.type,name:n.name,level:n.level,tagStart:this._total,tagEnd:this._total+e.length,sizeStart:this._total+e.length,sizeEnd:null,dataStart:null,dataEnd:null,dataSize:null,data:null};return this._tag_stack.push(i),this._cursor+=e.length,this._total+=e.length,this._state=r.STATE_SIZE,!0},e.prototype.readSize=function(){if(this._cursor>=this._buffer.length)return!1;var e=(0,o.readVint)(this._buffer,this._cursor);if(null==e)return!1;var t=this._tag_stack[this._tag_stack.length-1];return t.sizeEnd=t.sizeStart+e.length,t.dataStart=t.sizeEnd,t.dataSize=e.value,-1===e.value?(t.dataEnd=-1,"m"===t.type&&(t.unknownSize=!0)):t.dataEnd=t.sizeEnd+e.value,this._cursor+=e.length,this._total+=e.length,this._state=r.STATE_CONTENT,!0},e.prototype.readContent=function(){var e=this._tag_stack[this._tag_stack.length-1];if("m"===e.type){if(e.isEnd=!1,this._result.push(e),this._state=r.STATE_TAG,0===e.dataSize){var t=Object.assign({},e,{isEnd:!0});this._result.push(t),this._tag_stack.pop()}return!0}if(this._buffer.length0;){var a=this._tag_stack[this._tag_stack.length-1];if(a.dataEnd<0)return this._tag_stack.pop(),!0;if(this._total{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(3210),i=n(3210),o=n(4370),a=function(){function e(){this._schema=o.byEbmlID,this._buffers=[],this._stack=[]}return e.prototype.encode=function(e){var t=this;return r.concat(e.reduce((function(e,n){return e.concat(t.encodeChunk(n))}),[])).buffer},e.prototype.encodeChunk=function(e){return"m"===e.type?e.isEnd?this.endTag(e):this.startTag(e):(e.data=i.Buffer.from(e.data),this.writeTag(e)),this.flush()},e.prototype.flush=function(){var e=this._buffers;return this._buffers=[],e},e.prototype.getSchemaInfo=function(e){for(var t=Object.keys(this._schema).map(Number),n=0;n0?this._stack[this._stack.length-1].children.push({tagId:n,elm:e,children:[],data:o}):this._buffers=this._buffers.concat(o)},e.prototype.startTag=function(e){var t=e.name,n=this.getSchemaInfo(t);if(null==n)throw new Error("No schema entry found for "+t);if(e.unknownSize){var o=r.encodeTag(n,new i.Buffer(0),e.unknownSize);this._buffers=this._buffers.concat(o)}else{var a={tagId:n,elm:e,children:[],data:null};this._stack.length>0&&this._stack[this._stack.length-1].children.push(a),this._stack.push(a)}},e.prototype.endTag=function(e){e.name;var t=this._stack.pop();if(null==t)throw new Error("EBML structure is broken");if(t.elm.name!==e.name)throw new Error("EBML structure is broken");var n=t.children.reduce((function(e,t){if(null===t.data)throw new Error("EBML structure is broken");return e.concat(t.data)}),[]),i=r.concat(n);"m"===t.elm.type?t.data=r.encodeTag(t.tagId,i,t.elm.unknownSize):t.data=r.encodeTag(t.tagId,i),this._stack.length<1&&(this._buffers=this._buffers.concat(t.data))},e}();t.default=a},1381:function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},r(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(7187),a=n(3210),s=function(e){function t(){var t=e.call(this)||this;return t.logGroup="",t.hasLoggingStarted=!1,t.metadataloaded=!1,t.chunks=[],t.stack=[],t.segmentOffset=0,t.last2SimpleBlockVideoTrackTimecode=[0,0],t.last2SimpleBlockAudioTrackTimecode=[0,0],t.lastClusterTimecode=0,t.lastClusterPosition=0,t.timecodeScale=1e6,t.metadataSize=0,t.metadatas=[],t.cues=[],t.firstVideoBlockRead=!1,t.firstAudioBlockRead=!1,t.currentTrack={TrackNumber:-1,TrackType:-1,DefaultDuration:null,CodecDelay:null},t.trackTypes=[],t.trackDefaultDuration=[],t.trackCodecDelay=[],t.trackInfo={type:"nothing"},t.ended=!1,t.logging=!1,t.use_duration_every_simpleblock=!1,t.use_webp=!1,t.use_segment_info=!0,t.drop_default_duration=!0,t}return i(t,e),t.prototype.stop=function(){for(this.ended=!0,this.emit_segment_info();this.stack.length;)this.stack.pop(),this.logging&&console.groupEnd();this.logging&&this.hasLoggingStarted&&this.logGroup&&console.groupEnd()},t.prototype.emit_segment_info=function(){var e=this.chunks;if(this.chunks=[],this.metadataloaded){if(!this.use_segment_info)return;var t=this.lastClusterTimecode,n=this.duration,r=this.timecodeScale;this.emit("cluster",{timecode:t,data:e}),this.emit("duration",{timecodeScale:r,duration:n})}else{this.metadataloaded=!0,this.metadatas=e;var i=this.trackTypes.indexOf(1),o=this.trackTypes.indexOf(2);if(this.trackInfo=i>=0&&o>=0?{type:"both",trackNumber:i}:i>=0?{type:"video",trackNumber:i}:o>=0?{type:"audio",trackNumber:o}:{type:"nothing"},!this.use_segment_info)return;this.emit("metadata",{data:e,metadataSize:this.metadataSize})}},t.prototype.read=function(e){var t=this,n=!1;if(!this.ended){if("m"===e.type)if(e.isEnd)this.stack.pop();else{var r=this.stack[this.stack.length-1];if(null!=r&&r.level>=e.level){this.stack.pop(),this.logging&&console.groupEnd(),r.dataEnd=e.dataEnd,r.dataSize=e.dataEnd-r.dataStart,r.unknownSize=!1;var i=Object.assign({},r,{name:r.name,type:r.type,isEnd:!0});this.chunks.push(i)}this.stack.push(e)}if("m"===e.type&&"Segment"==e.name)0!=this.segmentOffset&&console.warn("Multiple segments detected!"),this.segmentOffset=e.dataStart,this.emit("segment_offset",this.segmentOffset);else if("b"===e.type&&"SimpleBlock"===e.name){var o=a.ebmlBlock(e.data),s=o.timecode,l=o.trackNumber,u=o.frames;if(1===this.trackTypes[l]){if(!this.firstVideoBlockRead&&(this.firstVideoBlockRead=!0,"both"===this.trackInfo.type||"video"===this.trackInfo.type)){var c=this.lastClusterTimecode+s;this.cues.push({CueTrack:l,CueClusterPosition:this.lastClusterPosition,CueTime:c}),this.emit("cue_info",{CueTrack:l,CueClusterPosition:this.lastClusterPosition,CueTime:this.lastClusterTimecode}),this.emit("cue",{CueTrack:l,CueClusterPosition:this.lastClusterPosition,CueTime:c})}this.last2SimpleBlockVideoTrackTimecode=[this.last2SimpleBlockVideoTrackTimecode[1],s]}else if(2===this.trackTypes[l]){if(!this.firstAudioBlockRead&&(this.firstAudioBlockRead=!0,"audio"===this.trackInfo.type)){c=this.lastClusterTimecode+s;this.cues.push({CueTrack:l,CueClusterPosition:this.lastClusterPosition,CueTime:c}),this.emit("cue_info",{CueTrack:l,CueClusterPosition:this.lastClusterPosition,CueTime:this.lastClusterTimecode}),this.emit("cue",{CueTrack:l,CueClusterPosition:this.lastClusterPosition,CueTime:c})}this.last2SimpleBlockAudioTrackTimecode=[this.last2SimpleBlockAudioTrackTimecode[1],s]}this.use_duration_every_simpleblock&&this.emit("duration",{timecodeScale:this.timecodeScale,duration:this.duration}),this.use_webp&&u.forEach((function(e){if("9d012a"===e.slice(3,6).toString("hex")){var n=a.VP8BitStreamToRiffWebPBuffer(e),r=new Blob([n],{type:"image/webp"}),i=t.duration;t.emit("webp",{currentTime:i,webp:r})}}))}else"m"===e.type&&"Cluster"===e.name&&!1===e.isEnd?(this.firstVideoBlockRead=!1,this.firstAudioBlockRead=!1,this.emit_segment_info(),this.emit("cluster_ptr",e.tagStart),this.lastClusterPosition=e.tagStart):"u"===e.type&&"Timecode"===e.name?this.lastClusterTimecode=e.value:"u"===e.type&&"TimecodeScale"===e.name?this.timecodeScale=e.value:"m"===e.type&&"TrackEntry"===e.name?e.isEnd?(this.trackTypes[this.currentTrack.TrackNumber]=this.currentTrack.TrackType,this.trackDefaultDuration[this.currentTrack.TrackNumber]=this.currentTrack.DefaultDuration,this.trackCodecDelay[this.currentTrack.TrackNumber]=this.currentTrack.CodecDelay):this.currentTrack={TrackNumber:-1,TrackType:-1,DefaultDuration:null,CodecDelay:null}:"u"===e.type&&"TrackType"===e.name?this.currentTrack.TrackType=e.value:"u"===e.type&&"TrackNumber"===e.name?this.currentTrack.TrackNumber=e.value:"u"===e.type&&"CodecDelay"===e.name?this.currentTrack.CodecDelay=e.value:"u"===e.type&&"DefaultDuration"===e.name?this.drop_default_duration?(console.warn("DefaultDuration detected!, remove it"),n=!0):this.currentTrack.DefaultDuration=e.value:"unknown"===e.name&&console.warn(e);!this.metadataloaded&&e.dataEnd>0&&(this.metadataSize=e.dataEnd),n||this.chunks.push(e),this.logging&&this.put(e)}},Object.defineProperty(t.prototype,"duration",{get:function(){if("nothing"===this.trackInfo.type)return console.warn("no video, no audio track"),0;var e=0,t=0,n=0,r=this.trackDefaultDuration[this.trackInfo.trackNumber];if("number"==typeof r)e=r;else if("both"===this.trackInfo.type)this.last2SimpleBlockAudioTrackTimecode[1]>this.last2SimpleBlockVideoTrackTimecode[1]?(e=(this.last2SimpleBlockAudioTrackTimecode[1]-this.last2SimpleBlockAudioTrackTimecode[0])*this.timecodeScale,"number"==typeof(i=this.trackCodecDelay[this.trackTypes.indexOf(2)])&&(t=i),n=this.last2SimpleBlockAudioTrackTimecode[1]):(e=(this.last2SimpleBlockVideoTrackTimecode[1]-this.last2SimpleBlockVideoTrackTimecode[0])*this.timecodeScale,"number"==typeof(i=this.trackCodecDelay[this.trackTypes.indexOf(1)])&&(t=i),n=this.last2SimpleBlockVideoTrackTimecode[1]);else if("video"===this.trackInfo.type){e=(this.last2SimpleBlockVideoTrackTimecode[1]-this.last2SimpleBlockVideoTrackTimecode[0])*this.timecodeScale,"number"==typeof(i=this.trackCodecDelay[this.trackInfo.trackNumber])&&(t=i),n=this.last2SimpleBlockVideoTrackTimecode[1]}else if("audio"===this.trackInfo.type){var i;e=(this.last2SimpleBlockAudioTrackTimecode[1]-this.last2SimpleBlockAudioTrackTimecode[0])*this.timecodeScale,"number"==typeof(i=this.trackCodecDelay[this.trackInfo.trackNumber])&&(t=i),n=this.last2SimpleBlockAudioTrackTimecode[1]}var o=((this.lastClusterTimecode+n)*this.timecodeScale+e-t)/this.timecodeScale;return Math.floor(o)},enumerable:!1,configurable:!0}),t.prototype.addListener=function(t,n){return e.prototype.addListener.call(this,t,n)},t.prototype.put=function(e){this.hasLoggingStarted||(this.hasLoggingStarted=!0,this.logging&&this.logGroup&&console.groupCollapsed(this.logGroup)),"m"===e.type?e.isEnd?console.groupEnd():console.group(e.name+":"+e.tagStart):"b"===e.type?console.log(e.name,e.type):console.log(e.name,e.tagStart,e.type,e.value)},t}(o.EventEmitter);t.default=s},4370:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.byEbmlID=void 0,t.byEbmlID={128:{name:"ChapterDisplay",level:4,type:"m",multiple:!0,minver:1,webm:!0,description:"Contains all possible strings to use for the chapter display."},131:{name:"TrackType",level:3,type:"u",mandatory:!0,minver:1,range:"1-254",description:"A set of track types coded on 8 bits (1: video, 2: audio, 3: complex, 0x10: logo, 0x11: subtitle, 0x12: buttons, 0x20: control)."},133:{name:"ChapString",cppname:"ChapterString",level:5,type:"8",mandatory:!0,minver:1,webm:!0,description:"Contains the string to use as the chapter atom."},134:{name:"CodecID",level:3,type:"s",mandatory:!0,minver:1,description:"An ID corresponding to the codec, see the codec page for more info."},136:{name:"FlagDefault",cppname:"TrackFlagDefault",level:3,type:"u",mandatory:!0,minver:1,default:1,range:"0-1",description:"Set if that track (audio, video or subs) SHOULD be active if no language found matches the user preference. (1 bit)"},137:{name:"ChapterTrackNumber",level:5,type:"u",mandatory:!0,multiple:!0,minver:1,webm:!1,range:"not 0",description:"UID of the Track to apply this chapter too. In the absense of a control track, choosing this chapter will select the listed Tracks and deselect unlisted tracks. Absense of this element indicates that the Chapter should be applied to any currently used Tracks."},145:{name:"ChapterTimeStart",level:4,type:"u",mandatory:!0,minver:1,webm:!0,description:"Timestamp of the start of Chapter (not scaled)."},146:{name:"ChapterTimeEnd",level:4,type:"u",minver:1,webm:!1,description:"Timestamp of the end of Chapter (timestamp excluded, not scaled)."},150:{name:"CueRefTime",level:5,type:"u",mandatory:!0,minver:2,webm:!1,description:"Timestamp of the referenced Block."},151:{name:"CueRefCluster",level:5,type:"u",mandatory:!0,webm:!1,description:"The Position of the Cluster containing the referenced Block."},152:{name:"ChapterFlagHidden",level:4,type:"u",mandatory:!0,minver:1,webm:!1,default:0,range:"0-1",description:"If a chapter is hidden (1), it should not be available to the user interface (but still to Control Tracks; see flag notes). (1 bit)"},16980:{name:"ContentCompAlgo",level:6,type:"u",mandatory:!0,minver:1,webm:!1,default:0,description:"The compression algorithm used. Algorithms that have been specified so far are: 0 - zlib, 3 - Header Stripping"},16981:{name:"ContentCompSettings",level:6,type:"b",minver:1,webm:!1,description:"Settings that might be needed by the decompressor. For Header Stripping (ContentCompAlgo=3), the bytes that were removed from the beggining of each frames of the track."},17026:{name:"DocType",level:1,type:"s",mandatory:!0,default:"matroska",minver:1,description:"A string that describes the type of document that follows this EBML header. 'matroska' in our case or 'webm' for webm files."},17029:{name:"DocTypeReadVersion",level:1,type:"u",mandatory:!0,default:1,minver:1,description:"The minimum DocType version an interpreter has to support to read this file."},17030:{name:"EBMLVersion",level:1,type:"u",mandatory:!0,default:1,minver:1,description:"The version of EBML parser used to create the file."},17031:{name:"DocTypeVersion",level:1,type:"u",mandatory:!0,default:1,minver:1,description:"The version of DocType interpreter used to create the file."},17476:{name:"SegmentFamily",level:2,type:"b",multiple:!0,minver:1,webm:!1,bytesize:16,description:"A randomly generated unique ID that all segments related to each other must use (128 bits)."},17505:{name:"DateUTC",level:2,type:"d",minver:1,description:"Date of the origin of timestamp (value 0), i.e. production date."},17540:{name:"TagDefault",level:4,type:"u",mandatory:!0,minver:1,webm:!1,default:1,range:"0-1",description:"Indication to know if this is the default/original language to use for the given tag. (1 bit)"},17541:{name:"TagBinary",level:4,type:"b",minver:1,webm:!1,description:"The values of the Tag if it is binary. Note that this cannot be used in the same SimpleTag as TagString."},17543:{name:"TagString",level:4,type:"8",minver:1,webm:!1,description:"The value of the Element."},17545:{name:"Duration",level:2,type:"f",minver:1,range:"> 0",description:"Duration of the segment (based on TimecodeScale)."},17816:{name:"ChapterFlagEnabled",level:4,type:"u",mandatory:!0,minver:1,webm:!1,default:1,range:"0-1",description:"Specify wether the chapter is enabled. It can be enabled/disabled by a Control Track. When disabled, the movie should skip all the content between the TimeStart and TimeEnd of this chapter (see flag notes). (1 bit)"},18016:{name:"FileMimeType",level:3,type:"s",mandatory:!0,minver:1,webm:!1,description:"MIME type of the file."},18017:{name:"FileUsedStartTime",level:3,type:"u",divx:!0,description:"DivX font extension"},18018:{name:"FileUsedEndTime",level:3,type:"u",divx:!0,description:"DivX font extension"},18037:{name:"FileReferral",level:3,type:"b",webm:!1,description:"A binary value that a track/codec can refer to when the attachment is needed."},20529:{name:"ContentEncodingOrder",level:5,type:"u",mandatory:!0,minver:1,webm:!1,default:0,description:"Tells when this modification was used during encoding/muxing starting with 0 and counting upwards. The decoder/demuxer has to start with the highest order number it finds and work its way down. This value has to be unique over all ContentEncodingOrder elements in the segment."},20530:{name:"ContentEncodingScope",level:5,type:"u",mandatory:!0,minver:1,webm:!1,default:1,range:"not 0",description:"A bit field that describes which elements have been modified in this way. Values (big endian) can be OR'ed. Possible values: 1 - all frame contents, 2 - the track's private data, 4 - the next ContentEncoding (next ContentEncodingOrder. Either the data inside ContentCompression and/or ContentEncryption)"},20531:{name:"ContentEncodingType",level:5,type:"u",mandatory:!0,minver:1,webm:!1,default:0,description:"A value describing what kind of transformation has been done. Possible values: 0 - compression, 1 - encryption"},20532:{name:"ContentCompression",level:5,type:"m",minver:1,webm:!1,description:"Settings describing the compression used. Must be present if the value of ContentEncodingType is 0 and absent otherwise. Each block must be decompressable even if no previous block is available in order not to prevent seeking."},20533:{name:"ContentEncryption",level:5,type:"m",minver:1,webm:!1,description:"Settings describing the encryption used. Must be present if the value of ContentEncodingType is 1 and absent otherwise."},21368:{name:"CueBlockNumber",level:4,type:"u",minver:1,default:1,range:"not 0",description:"Number of the Block in the specified Cluster."},22100:{name:"ChapterStringUID",level:4,type:"8",mandatory:!1,minver:3,webm:!0,description:"A unique string ID to identify the Chapter. Use for WebVTT cue identifier storage."},22337:{name:"WritingApp",level:2,type:"8",mandatory:!0,minver:1,description:'Writing application ("mkvmerge-0.3.3").'},22612:{name:"SilentTracks",cppname:"ClusterSilentTracks",level:2,type:"m",minver:1,webm:!1,description:"The list of tracks that are not used in that part of the stream. It is useful when using overlay tracks on seeking. Then you should decide what track to use."},25152:{name:"ContentEncoding",level:4,type:"m",mandatory:!0,multiple:!0,minver:1,webm:!1,description:"Settings for one content encoding like compression or encryption."},25188:{name:"BitDepth",cppname:"AudioBitDepth",level:4,type:"u",minver:1,range:"not 0",description:"Bits per sample, mostly used for PCM."},25906:{name:"SignedElement",level:3,type:"b",multiple:!0,webm:!1,description:"An element ID whose data will be used to compute the signature."},26148:{name:"TrackTranslate",level:3,type:"m",multiple:!0,minver:1,webm:!1,description:"The track identification for the given Chapter Codec."},26897:{name:"ChapProcessCommand",cppname:"ChapterProcessCommand",level:5,type:"m",multiple:!0,minver:1,webm:!1,description:"Contains all the commands associated to the Atom."},26914:{name:"ChapProcessTime",cppname:"ChapterProcessTime",level:6,type:"u",mandatory:!0,minver:1,webm:!1,description:"Defines when the process command should be handled (0: during the whole chapter, 1: before starting playback, 2: after playback of the chapter)."},26916:{name:"ChapterTranslate",level:2,type:"m",multiple:!0,minver:1,webm:!1,description:"A tuple of corresponding ID used by chapter codecs to represent this segment."},26931:{name:"ChapProcessData",cppname:"ChapterProcessData",level:6,type:"b",mandatory:!0,minver:1,webm:!1,description:"Contains the command information. The data should be interpreted depending on the ChapProcessCodecID value. For ChapProcessCodecID = 1, the data correspond to the binary DVD cell pre/post commands."},26948:{name:"ChapProcess",cppname:"ChapterProcess",level:4,type:"m",multiple:!0,minver:1,webm:!1,description:"Contains all the commands associated to the Atom."},26965:{name:"ChapProcessCodecID",cppname:"ChapterProcessCodecID",level:5,type:"u",mandatory:!0,minver:1,webm:!1,default:0,description:"Contains the type of the codec used for the processing. A value of 0 means native Matroska processing (to be defined), a value of 1 means the DVD command set is used. More codec IDs can be added later."},29555:{name:"Tag",level:2,type:"m",mandatory:!0,multiple:!0,minver:1,webm:!1,description:"Element containing elements specific to Tracks/Chapters."},29572:{name:"SegmentFilename",level:2,type:"8",minver:1,webm:!1,description:"A filename corresponding to this segment."},29766:{name:"AttachmentLink",cppname:"TrackAttachmentLink",level:3,type:"u",minver:1,webm:!1,range:"not 0",description:"The UID of an attachment that is used by this codec."},2459272:{name:"CodecName",level:3,type:"8",minver:1,description:"A human-readable string specifying the codec."},408125543:{name:"Segment",level:"0",type:"m",mandatory:!0,multiple:!0,minver:1,description:"This element contains all other top-level (level 1) elements. Typically a Matroska file is composed of 1 segment."},17530:{name:"TagLanguage",level:4,type:"s",mandatory:!0,minver:1,webm:!1,default:"und",description:"Specifies the language of the tag specified, in the Matroska languages form."},17827:{name:"TagName",level:4,type:"8",mandatory:!0,minver:1,webm:!1,description:"The name of the Tag that is going to be stored."},26568:{name:"SimpleTag",cppname:"TagSimple",level:3,recursive:"1",type:"m",mandatory:!0,multiple:!0,minver:1,webm:!1,description:"Contains general information about the target."},25542:{name:"TagAttachmentUID",level:4,type:"u",multiple:!0,minver:1,webm:!1,default:0,description:"A unique ID to identify the Attachment(s) the tags belong to. If the value is 0 at this level, the tags apply to all the attachments in the Segment."},25540:{name:"TagChapterUID",level:4,type:"u",multiple:!0,minver:1,webm:!1,default:0,description:"A unique ID to identify the Chapter(s) the tags belong to. If the value is 0 at this level, the tags apply to all chapters in the Segment."},25545:{name:"TagEditionUID",level:4,type:"u",multiple:!0,minver:1,webm:!1,default:0,description:"A unique ID to identify the EditionEntry(s) the tags belong to. If the value is 0 at this level, the tags apply to all editions in the Segment."},25541:{name:"TagTrackUID",level:4,type:"u",multiple:!0,minver:1,webm:!1,default:0,description:"A unique ID to identify the Track(s) the tags belong to. If the value is 0 at this level, the tags apply to all tracks in the Segment."},25546:{name:"TargetType",cppname:"TagTargetType",level:4,type:"s",minver:1,webm:!1,strong:"informational",description:'An string that can be used to display the logical level of the target like "ALBUM", "TRACK", "MOVIE", "CHAPTER", etc (see TargetType).'},26826:{name:"TargetTypeValue",cppname:"TagTargetTypeValue",level:4,type:"u",minver:1,webm:!1,default:50,description:"A number to indicate the logical level of the target (see TargetType)."},25536:{name:"Targets",cppname:"TagTargets",level:3,type:"m",mandatory:!0,minver:1,webm:!1,description:"Contain all UIDs where the specified meta data apply. It is empty to describe everything in the segment."},307544935:{name:"Tags",level:1,type:"m",multiple:!0,minver:1,webm:!1,description:"Element containing elements specific to Tracks/Chapters. A list of valid tags can be found here."},17677:{name:"ChapProcessPrivate",cppname:"ChapterProcessPrivate",level:5,type:"b",minver:1,webm:!1,description:'Some optional data attached to the ChapProcessCodecID information. For ChapProcessCodecID = 1, it is the "DVD level" equivalent.'},17278:{name:"ChapCountry",cppname:"ChapterCountry",level:5,type:"s",multiple:!0,minver:1,webm:!1,description:"The countries corresponding to the string, same 2 octets as in Internet domains."},17276:{name:"ChapLanguage",cppname:"ChapterLanguage",level:5,type:"s",mandatory:!0,multiple:!0,minver:1,webm:!0,default:"eng",description:"The languages corresponding to the string, in the bibliographic ISO-639-2 form."},143:{name:"ChapterTrack",level:4,type:"m",minver:1,webm:!1,description:"List of tracks on which the chapter applies. If this element is not present, all tracks apply"},25539:{name:"ChapterPhysicalEquiv",level:4,type:"u",minver:1,webm:!1,description:'Specify the physical equivalent of this ChapterAtom like "DVD" (60) or "SIDE" (50), see complete list of values.'},28348:{name:"ChapterSegmentEditionUID",level:4,type:"u",minver:1,webm:!1,range:"not 0",description:"The EditionUID to play from the segment linked in ChapterSegmentUID."},28263:{name:"ChapterSegmentUID",level:4,type:"b",minver:1,webm:!1,range:">0",bytesize:16,description:"A segment to play in place of this chapter. Edition ChapterSegmentEditionUID should be used for this segment, otherwise no edition is used."},29636:{name:"ChapterUID",level:4,type:"u",mandatory:!0,minver:1,webm:!0,range:"not 0",description:"A unique ID to identify the Chapter."},182:{name:"ChapterAtom",level:3,recursive:"1",type:"m",mandatory:!0,multiple:!0,minver:1,webm:!0,description:"Contains the atom information to use as the chapter atom (apply to all tracks)."},17885:{name:"EditionFlagOrdered",level:3,type:"u",minver:1,webm:!1,default:0,range:"0-1",description:"Specify if the chapters can be defined multiple times and the order to play them is enforced. (1 bit)"},17883:{name:"EditionFlagDefault",level:3,type:"u",mandatory:!0,minver:1,webm:!1,default:0,range:"0-1",description:"If a flag is set (1) the edition should be used as the default one. (1 bit)"},17853:{name:"EditionFlagHidden",level:3,type:"u",mandatory:!0,minver:1,webm:!1,default:0,range:"0-1",description:"If an edition is hidden (1), it should not be available to the user interface (but still to Control Tracks; see flag notes). (1 bit)"},17852:{name:"EditionUID",level:3,type:"u",minver:1,webm:!1,range:"not 0",description:"A unique ID to identify the edition. It's useful for tagging an edition."},17849:{name:"EditionEntry",level:2,type:"m",mandatory:!0,multiple:!0,minver:1,webm:!0,description:"Contains all information about a segment edition."},272869232:{name:"Chapters",level:1,type:"m",minver:1,webm:!0,description:"A system to define basic menus and partition data. For more detailed information, look at the Chapters Explanation."},18094:{name:"FileUID",level:3,type:"u",mandatory:!0,minver:1,webm:!1,range:"not 0",description:"Unique ID representing the file, as random as possible."},18012:{name:"FileData",level:3,type:"b",mandatory:!0,minver:1,webm:!1,description:"The data of the file."},18030:{name:"FileName",level:3,type:"8",mandatory:!0,minver:1,webm:!1,description:"Filename of the attached file."},18046:{name:"FileDescription",level:3,type:"8",minver:1,webm:!1,description:"A human-friendly name for the attached file."},24999:{name:"AttachedFile",level:2,type:"m",mandatory:!0,multiple:!0,minver:1,webm:!1,description:"An attached file."},423732329:{name:"Attachments",level:1,type:"m",minver:1,webm:!1,description:"Contain attached files."},235:{name:"CueRefCodecState",level:5,type:"u",webm:!1,default:0,description:"The position of the Codec State corresponding to this referenced element. 0 means that the data is taken from the initial Track Entry."},21343:{name:"CueRefNumber",level:5,type:"u",webm:!1,default:1,range:"not 0",description:"Number of the referenced Block of Track X in the specified Cluster."},219:{name:"CueReference",level:4,type:"m",multiple:!0,minver:2,webm:!1,description:"The Clusters containing the required referenced Blocks."},234:{name:"CueCodecState",level:4,type:"u",minver:2,webm:!1,default:0,description:"The position of the Codec State corresponding to this Cue element. 0 means that the data is taken from the initial Track Entry."},178:{name:"CueDuration",level:4,type:"u",mandatory:!1,minver:4,webm:!1,description:"The duration of the block according to the segment time base. If missing the track's DefaultDuration does not apply and no duration information is available in terms of the cues."},240:{name:"CueRelativePosition",level:4,type:"u",mandatory:!1,minver:4,webm:!1,description:"The relative position of the referenced block inside the cluster with 0 being the first possible position for an element inside that cluster.",position:"clusterRelative"},241:{name:"CueClusterPosition",level:4,type:"u",mandatory:!0,minver:1,description:"The position of the Cluster containing the required Block.",position:"segment"},247:{name:"CueTrack",level:4,type:"u",mandatory:!0,minver:1,range:"not 0",description:"The track for which a position is given."},183:{name:"CueTrackPositions",level:3,type:"m",mandatory:!0,multiple:!0,minver:1,description:"Contain positions for different tracks corresponding to the timestamp."},179:{name:"CueTime",level:3,type:"u",mandatory:!0,minver:1,description:"Absolute timestamp according to the segment time base."},187:{name:"CuePoint",level:2,type:"m",mandatory:!0,multiple:!0,minver:1,description:"Contains all information relative to a seek point in the segment."},475249515:{name:"Cues",level:1,type:"m",minver:1,description:'A top-level element to speed seeking access. All entries are local to the segment. Should be mandatory for non "live" streams.'},18406:{name:"ContentSigHashAlgo",level:6,type:"u",minver:1,webm:!1,default:0,description:"The hash algorithm used for the signature. A value of '0' means that the contents have not been signed but only encrypted. Predefined values: 1 - SHA1-160 2 - MD5"},18405:{name:"ContentSigAlgo",level:6,type:"u",minver:1,webm:!1,default:0,description:"The algorithm used for the signature. A value of '0' means that the contents have not been signed but only encrypted. Predefined values: 1 - RSA"},18404:{name:"ContentSigKeyID",level:6,type:"b",minver:1,webm:!1,description:"This is the ID of the private key the data was signed with."},18403:{name:"ContentSignature",level:6,type:"b",minver:1,webm:!1,description:"A cryptographic signature of the contents."},18402:{name:"ContentEncKeyID",level:6,type:"b",minver:1,webm:!1,description:"For public key algorithms this is the ID of the public key the the data was encrypted with."},18401:{name:"ContentEncAlgo",level:6,type:"u",minver:1,webm:!1,default:0,description:"The encryption algorithm used. The value '0' means that the contents have not been encrypted but only signed. Predefined values: 1 - DES, 2 - 3DES, 3 - Twofish, 4 - Blowfish, 5 - AES"},28032:{name:"ContentEncodings",level:3,type:"m",minver:1,webm:!1,description:"Settings for several content encoding mechanisms like compression or encryption."},196:{name:"TrickMasterTrackSegmentUID",level:3,type:"b",divx:!0,bytesize:16,description:"DivX trick track extenstions"},199:{name:"TrickMasterTrackUID",level:3,type:"u",divx:!0,description:"DivX trick track extenstions"},198:{name:"TrickTrackFlag",level:3,type:"u",divx:!0,default:0,description:"DivX trick track extenstions"},193:{name:"TrickTrackSegmentUID",level:3,type:"b",divx:!0,bytesize:16,description:"DivX trick track extenstions"},192:{name:"TrickTrackUID",level:3,type:"u",divx:!0,description:"DivX trick track extenstions"},237:{name:"TrackJoinUID",level:5,type:"u",mandatory:!0,multiple:!0,minver:3,webm:!1,range:"not 0",description:"The trackUID number of a track whose blocks are used to create this virtual track."},233:{name:"TrackJoinBlocks",level:4,type:"m",minver:3,webm:!1,description:"Contains the list of all tracks whose Blocks need to be combined to create this virtual track"},230:{name:"TrackPlaneType",level:6,type:"u",mandatory:!0,minver:3,webm:!1,description:"The kind of plane this track corresponds to (0: left eye, 1: right eye, 2: background)."},229:{name:"TrackPlaneUID",level:6,type:"u",mandatory:!0,minver:3,webm:!1,range:"not 0",description:"The trackUID number of the track representing the plane."},228:{name:"TrackPlane",level:5,type:"m",mandatory:!0,multiple:!0,minver:3,webm:!1,description:"Contains a video plane track that need to be combined to create this 3D track"},227:{name:"TrackCombinePlanes",level:4,type:"m",minver:3,webm:!1,description:"Contains the list of all video plane tracks that need to be combined to create this 3D track"},226:{name:"TrackOperation",level:3,type:"m",minver:3,webm:!1,description:"Operation that needs to be applied on tracks to create this virtual track. For more details look at the Specification Notes on the subject."},32123:{name:"ChannelPositions",cppname:"AudioPosition",level:4,type:"b",webm:!1,description:"Table of horizontal angles for each successive channel, see appendix."},159:{name:"Channels",cppname:"AudioChannels",level:4,type:"u",mandatory:!0,minver:1,default:1,range:"not 0",description:"Numbers of channels in the track."},30901:{name:"OutputSamplingFrequency",cppname:"AudioOutputSamplingFreq",level:4,type:"f",minver:1,default:"Sampling Frequency",range:"> 0",description:"Real output sampling frequency in Hz (used for SBR techniques)."},181:{name:"SamplingFrequency",cppname:"AudioSamplingFreq",level:4,type:"f",mandatory:!0,minver:1,default:8e3,range:"> 0",description:"Sampling frequency in Hz."},225:{name:"Audio",cppname:"TrackAudio",level:3,type:"m",minver:1,description:"Audio settings."},2327523:{name:"FrameRate",cppname:"VideoFrameRate",level:4,type:"f",range:"> 0",strong:"Informational",description:"Number of frames per second. only."},3126563:{name:"GammaValue",cppname:"VideoGamma",level:4,type:"f",webm:!1,range:"> 0",description:"Gamma Value."},3061028:{name:"ColourSpace",cppname:"VideoColourSpace",level:4,type:"b",minver:1,webm:!1,bytesize:4,description:"Same value as in AVI (32 bits)."},21683:{name:"AspectRatioType",cppname:"VideoAspectRatio",level:4,type:"u",minver:1,default:0,description:"Specify the possible modifications to the aspect ratio (0: free resizing, 1: keep aspect ratio, 2: fixed)."},21682:{name:"DisplayUnit",cppname:"VideoDisplayUnit",level:4,type:"u",minver:1,default:0,description:"How DisplayWidth & DisplayHeight should be interpreted (0: pixels, 1: centimeters, 2: inches, 3: Display Aspect Ratio)."},21690:{name:"DisplayHeight",cppname:"VideoDisplayHeight",level:4,type:"u",minver:1,default:"PixelHeight",range:"not 0",description:"Height of the video frames to display. The default value is only valid when DisplayUnit is 0."},21680:{name:"DisplayWidth",cppname:"VideoDisplayWidth",level:4,type:"u",minver:1,default:"PixelWidth",range:"not 0",description:"Width of the video frames to display. The default value is only valid when DisplayUnit is 0."},21725:{name:"PixelCropRight",cppname:"VideoPixelCropRight",level:4,type:"u",minver:1,default:0,description:"The number of video pixels to remove on the right of the image."},21708:{name:"PixelCropLeft",cppname:"VideoPixelCropLeft",level:4,type:"u",minver:1,default:0,description:"The number of video pixels to remove on the left of the image."},21691:{name:"PixelCropTop",cppname:"VideoPixelCropTop",level:4,type:"u",minver:1,default:0,description:"The number of video pixels to remove at the top of the image."},21674:{name:"PixelCropBottom",cppname:"VideoPixelCropBottom",level:4,type:"u",minver:1,default:0,description:"The number of video pixels to remove at the bottom of the image (for HDTV content)."},186:{name:"PixelHeight",cppname:"VideoPixelHeight",level:4,type:"u",mandatory:!0,minver:1,range:"not 0",description:"Height of the encoded video frames in pixels."},176:{name:"PixelWidth",cppname:"VideoPixelWidth",level:4,type:"u",mandatory:!0,minver:1,range:"not 0",description:"Width of the encoded video frames in pixels."},21433:{name:"OldStereoMode",level:4,type:"u",maxver:"0",webm:!1,divx:!1,description:"DEPRECATED, DO NOT USE. Bogus StereoMode value used in old versions of libmatroska. (0: mono, 1: right eye, 2: left eye, 3: both eyes)."},21440:{name:"AlphaMode",cppname:"VideoAlphaMode",level:4,type:"u",minver:3,webm:!0,default:0,description:"Alpha Video Mode. Presence of this element indicates that the BlockAdditional element could contain Alpha data."},21432:{name:"StereoMode",cppname:"VideoStereoMode",level:4,type:"u",minver:3,webm:!0,default:0,description:"Stereo-3D video mode (0: mono, 1: side by side (left eye is first), 2: top-bottom (right eye is first), 3: top-bottom (left eye is first), 4: checkboard (right is first), 5: checkboard (left is first), 6: row interleaved (right is first), 7: row interleaved (left is first), 8: column interleaved (right is first), 9: column interleaved (left is first), 10: anaglyph (cyan/red), 11: side by side (right eye is first), 12: anaglyph (green/magenta), 13 both eyes laced in one Block (left eye is first), 14 both eyes laced in one Block (right eye is first)) . There are some more details on 3D support in the Specification Notes."},154:{name:"FlagInterlaced",cppname:"VideoFlagInterlaced",level:4,type:"u",mandatory:!0,minver:2,webm:!0,default:0,range:"0-1",description:"Set if the video is interlaced. (1 bit)"},224:{name:"Video",cppname:"TrackVideo",level:3,type:"m",minver:1,description:"Video settings."},26277:{name:"TrackTranslateTrackID",level:4,type:"b",mandatory:!0,minver:1,webm:!1,description:"The binary value used to represent this track in the chapter codec data. The format depends on the ChapProcessCodecID used."},26303:{name:"TrackTranslateCodec",level:4,type:"u",mandatory:!0,minver:1,webm:!1,description:"The chapter codec using this ID (0: Matroska Script, 1: DVD-menu)."},26364:{name:"TrackTranslateEditionUID",level:4,type:"u",multiple:!0,minver:1,webm:!1,description:"Specify an edition UID on which this translation applies. When not specified, it means for all editions found in the segment."},22203:{name:"SeekPreRoll",level:3,type:"u",mandatory:!0,multiple:!1,default:0,minver:4,webm:!0,description:"After a discontinuity, SeekPreRoll is the duration in nanoseconds of the data the decoder must decode before the decoded data is valid."},22186:{name:"CodecDelay",level:3,type:"u",multiple:!1,default:0,minver:4,webm:!0,description:"CodecDelay is The codec-built-in delay in nanoseconds. This value must be subtracted from each block timestamp in order to get the actual timestamp. The value should be small so the muxing of tracks with the same actual timestamp are in the same Cluster."},28587:{name:"TrackOverlay",level:3,type:"u",multiple:!0,minver:1,webm:!1,description:"Specify that this track is an overlay track for the Track specified (in the u-integer). That means when this track has a gap (see SilentTracks) the overlay track should be used instead. The order of multiple TrackOverlay matters, the first one is the one that should be used. If not found it should be the second, etc."},170:{name:"CodecDecodeAll",level:3,type:"u",mandatory:!0,minver:2,webm:!1,default:1,range:"0-1",description:"The codec can decode potentially damaged data (1 bit)."},2536e3:{name:"CodecDownloadURL",level:3,type:"s",multiple:!0,webm:!1,description:"A URL to download about the codec used."},3883072:{name:"CodecInfoURL",level:3,type:"s",multiple:!0,webm:!1,description:"A URL to find information about the codec used."},3839639:{name:"CodecSettings",level:3,type:"8",webm:!1,description:"A string describing the encoding setting used."},25506:{name:"CodecPrivate",level:3,type:"b",minver:1,description:"Private data only known to the codec."},2274716:{name:"Language",cppname:"TrackLanguage",level:3,type:"s",minver:1,default:"eng",description:"Specifies the language of the track in the Matroska languages form."},21358:{name:"Name",cppname:"TrackName",level:3,type:"8",minver:1,description:"A human-readable track name."},21998:{name:"MaxBlockAdditionID",level:3,type:"u",mandatory:!0,minver:1,webm:!1,default:0,description:"The maximum value of BlockAdditions for this track."},21375:{name:"TrackOffset",level:3,type:"i",webm:!1,default:0,description:"A value to add to the Block's Timestamp. This can be used to adjust the playback offset of a track."},2306383:{name:"TrackTimecodeScale",level:3,type:"f",mandatory:!0,minver:1,maxver:"3",webm:!1,default:1,range:"> 0",description:"DEPRECATED, DO NOT USE. The scale to apply on this track to work at normal speed in relation with other tracks (mostly used to adjust video speed when the audio length differs)."},2313850:{name:"DefaultDecodedFieldDuration",cppname:"TrackDefaultDecodedFieldDuration",level:3,type:"u",minver:4,range:"not 0",description:"The period in nanoseconds (not scaled by TimcodeScale)\nbetween two successive fields at the output of the decoding process (see the notes)"},2352003:{name:"DefaultDuration",cppname:"TrackDefaultDuration",level:3,type:"u",minver:1,range:"not 0",description:"Number of nanoseconds (not scaled via TimecodeScale) per frame ('frame' in the Matroska sense -- one element put into a (Simple)Block)."},28152:{name:"MaxCache",cppname:"TrackMaxCache",level:3,type:"u",minver:1,webm:!1,description:"The maximum cache size required to store referenced frames in and the current frame. 0 means no cache is needed."},28135:{name:"MinCache",cppname:"TrackMinCache",level:3,type:"u",mandatory:!0,minver:1,webm:!1,default:0,description:"The minimum number of frames a player should be able to cache during playback. If set to 0, the reference pseudo-cache system is not used."},156:{name:"FlagLacing",cppname:"TrackFlagLacing",level:3,type:"u",mandatory:!0,minver:1,default:1,range:"0-1",description:"Set if the track may contain blocks using lacing. (1 bit)"},21930:{name:"FlagForced",cppname:"TrackFlagForced",level:3,type:"u",mandatory:!0,minver:1,default:0,range:"0-1",description:"Set if that track MUST be active during playback. There can be many forced track for a kind (audio, video or subs), the player should select the one which language matches the user preference or the default + forced track. Overlay MAY happen between a forced and non-forced track of the same kind. (1 bit)"},185:{name:"FlagEnabled",cppname:"TrackFlagEnabled",level:3,type:"u",mandatory:!0,minver:2,webm:!0,default:1,range:"0-1",description:"Set if the track is usable. (1 bit)"},29637:{name:"TrackUID",level:3,type:"u",mandatory:!0,minver:1,range:"not 0",description:"A unique ID to identify the Track. This should be kept the same when making a direct stream copy of the Track to another file."},215:{name:"TrackNumber",level:3,type:"u",mandatory:!0,minver:1,range:"not 0",description:"The track number as used in the Block Header (using more than 127 tracks is not encouraged, though the design allows an unlimited number)."},174:{name:"TrackEntry",level:2,type:"m",mandatory:!0,multiple:!0,minver:1,description:"Describes a track with all elements."},374648427:{name:"Tracks",level:1,type:"m",multiple:!0,minver:1,description:"A top-level block of information with many tracks described."},175:{name:"EncryptedBlock",level:2,type:"b",multiple:!0,webm:!1,description:"Similar to EncryptedBlock Structure)"},202:{name:"ReferenceTimeCode",level:4,type:"u",multiple:!1,mandatory:!0,minver:0,webm:!1,divx:!0,description:"DivX trick track extenstions"},201:{name:"ReferenceOffset",level:4,type:"u",multiple:!1,mandatory:!0,minver:0,webm:!1,divx:!0,description:"DivX trick track extenstions"},200:{name:"ReferenceFrame",level:3,type:"m",multiple:!1,minver:0,webm:!1,divx:!0,description:"DivX trick track extenstions"},207:{name:"SliceDuration",level:5,type:"u",default:0,description:"The (scaled) duration to apply to the element."},206:{name:"Delay",cppname:"SliceDelay",level:5,type:"u",default:0,description:"The (scaled) delay to apply to the element."},203:{name:"BlockAdditionID",cppname:"SliceBlockAddID",level:5,type:"u",default:0,description:"The ID of the BlockAdditional element (0 is the main Block)."},205:{name:"FrameNumber",cppname:"SliceFrameNumber",level:5,type:"u",default:0,description:"The number of the frame to generate from this lace with this delay (allow you to generate many frames from the same Block/Frame)."},204:{name:"LaceNumber",cppname:"SliceLaceNumber",level:5,type:"u",minver:1,default:0,divx:!1,description:"The reverse number of the frame in the lace (0 is the last frame, 1 is the next to last, etc). While there are a few files in the wild with this element, it is no longer in use and has been deprecated. Being able to interpret this element is not required for playback."},232:{name:"TimeSlice",level:4,type:"m",multiple:!0,minver:1,divx:!1,description:"Contains extra time information about the data contained in the Block. While there are a few files in the wild with this element, it is no longer in use and has been deprecated. Being able to interpret this element is not required for playback."},142:{name:"Slices",level:3,type:"m",minver:1,divx:!1,description:"Contains slices description."},30114:{name:"DiscardPadding",level:3,type:"i",minver:4,webm:!0,description:"Duration in nanoseconds of the silent data added to the Block (padding at the end of the Block for positive value, at the beginning of the Block for negative value). The duration of DiscardPadding is not calculated in the duration of the TrackEntry and should be discarded during playback."},164:{name:"CodecState",level:3,type:"b",minver:2,webm:!1,description:"The new codec state to use. Data interpretation is private to the codec. This information should always be referenced by a seek entry."},253:{name:"ReferenceVirtual",level:3,type:"i",webm:!1,description:"Relative position of the data that should be in position of the virtual block."},251:{name:"ReferenceBlock",level:3,type:"i",multiple:!0,minver:1,description:"Timestamp of another frame used as a reference (ie: B or P frame). The timestamp is relative to the block it's attached to."},250:{name:"ReferencePriority",cppname:"FlagReferenced",level:3,type:"u",mandatory:!0,minver:1,webm:!1,default:0,description:"This frame is referenced and has the specified cache priority. In cache only a frame of the same or higher priority can replace this frame. A value of 0 means the frame is not referenced."},155:{name:"BlockDuration",level:3,type:"u",minver:1,default:"TrackDuration",description:'The duration of the Block (based on TimecodeScale). This element is mandatory when DefaultDuration is set for the track (but can be omitted as other default values). When not written and with no DefaultDuration, the value is assumed to be the difference between the timestamp of this Block and the timestamp of the next Block in "display" order (not coding order). This element can be useful at the end of a Track (as there is not other Block available), or when there is a break in a track like for subtitle tracks. When set to 0 that means the frame is not a keyframe.'},165:{name:"BlockAdditional",level:5,type:"b",mandatory:!0,minver:1,webm:!1,description:"Interpreted by the codec as it wishes (using the BlockAddID)."},238:{name:"BlockAddID",level:5,type:"u",mandatory:!0,minver:1,webm:!1,default:1,range:"not 0",description:"An ID to identify the BlockAdditional level."},166:{name:"BlockMore",level:4,type:"m",mandatory:!0,multiple:!0,minver:1,webm:!1,description:"Contain the BlockAdditional and some parameters."},30113:{name:"BlockAdditions",level:3,type:"m",minver:1,webm:!1,description:"Contain additional blocks to complete the main one. An EBML parser that has no knowledge of the Block structure could still see and use/skip these data."},162:{name:"BlockVirtual",level:3,type:"b",webm:!1,description:"A Block with no data. It must be stored in the stream at the place the real Block should be in display order. (see Block Virtual)"},161:{name:"Block",level:3,type:"b",mandatory:!0,minver:1,description:"Block containing the actual data to be rendered and a timestamp relative to the Cluster Timecode. (see Block Structure)"},160:{name:"BlockGroup",level:2,type:"m",multiple:!0,minver:1,description:"Basic container of information containing a single Block or BlockVirtual, and information specific to that Block/VirtualBlock."},163:{name:"SimpleBlock",level:2,type:"b",multiple:!0,minver:2,webm:!0,divx:!0,description:"Similar to SimpleBlock Structure"},171:{name:"PrevSize",cppname:"ClusterPrevSize",level:2,type:"u",minver:1,description:"Size of the previous Cluster, in octets. Can be useful for backward playing.",position:"prevCluster"},167:{name:"Position",cppname:"ClusterPosition",level:2,type:"u",minver:1,webm:!1,description:"The Position of the Cluster in the segment (0 in live broadcast streams). It might help to resynchronise offset on damaged streams.",position:"segment"},22743:{name:"SilentTrackNumber",cppname:"ClusterSilentTrackNumber",level:3,type:"u",multiple:!0,minver:1,webm:!1,description:"One of the track number that are not used from now on in the stream. It could change later if not specified as silent in a further Cluster."},231:{name:"Timecode",cppname:"ClusterTimecode",level:2,type:"u",mandatory:!0,minver:1,description:"Absolute timestamp of the cluster (based on TimecodeScale)."},524531317:{name:"Cluster",level:1,type:"m",multiple:!0,minver:1,description:"The lower level element containing the (monolithic) Block structure."},19840:{name:"MuxingApp",level:2,type:"8",mandatory:!0,minver:1,description:'Muxing application or library ("libmatroska-0.4.3").'},31657:{name:"Title",level:2,type:"8",minver:1,webm:!1,description:"General name of the segment."},2807730:{name:"TimecodeScaleDenominator",level:2,type:"u",mandatory:!0,minver:4,default:"1000000000",description:"Timestamp scale numerator, see TimecodeScale."},2807729:{name:"TimecodeScale",level:2,type:"u",mandatory:!0,minver:1,default:"1000000",description:"Timestamp scale in nanoseconds (1.000.000 means all timestamps in the segment are expressed in milliseconds)."},27045:{name:"ChapterTranslateID",level:3,type:"b",mandatory:!0,minver:1,webm:!1,description:"The binary value used to represent this segment in the chapter codec data. The format depends on the ChapProcessCodecID used."},27071:{name:"ChapterTranslateCodec",level:3,type:"u",mandatory:!0,minver:1,webm:!1,description:"The chapter codec using this ID (0: Matroska Script, 1: DVD-menu)."},27132:{name:"ChapterTranslateEditionUID",level:3,type:"u",multiple:!0,minver:1,webm:!1,description:"Specify an edition UID on which this correspondance applies. When not specified, it means for all editions found in the segment."},4096955:{name:"NextFilename",level:2,type:"8",minver:1,webm:!1,description:"An escaped filename corresponding to the next segment."},4110627:{name:"NextUID",level:2,type:"b",minver:1,webm:!1,bytesize:16,description:"A unique ID to identify the next chained segment (128 bits)."},3965867:{name:"PrevFilename",level:2,type:"8",minver:1,webm:!1,description:"An escaped filename corresponding to the previous segment."},3979555:{name:"PrevUID",level:2,type:"b",minver:1,webm:!1,bytesize:16,description:"A unique ID to identify the previous chained segment (128 bits)."},29604:{name:"SegmentUID",level:2,type:"b",minver:1,webm:!1,range:"not 0",bytesize:16,description:"A randomly generated unique ID to identify the current segment between many others (128 bits)."},357149030:{name:"Info",level:1,type:"m",mandatory:!0,multiple:!0,minver:1,description:"Contains miscellaneous general information and statistics on the file."},21420:{name:"SeekPosition",level:3,type:"u",mandatory:!0,minver:1,description:"The position of the element in the segment in octets (0 = first level 1 element).",position:"segment"},21419:{name:"SeekID",level:3,type:"b",mandatory:!0,minver:1,description:"The binary ID corresponding to the element name.",type2:"ebmlID"},19899:{name:"Seek",cppname:"SeekPoint",level:2,type:"m",mandatory:!0,multiple:!0,minver:1,description:"Contains a single seek entry to an EBML element."},290298740:{name:"SeekHead",cppname:"SeekHeader",level:1,type:"m",multiple:!0,minver:1,description:"Contains the position of other level 1 elements."},32379:{name:"SignatureElementList",level:2,type:"m",multiple:!0,webm:!1,i:"Cluster|Block|BlockAdditional",description:"A list consists of a number of consecutive elements that represent one case where data is used in signature. Ex: means that the BlockAdditional of all Blocks in all Clusters is used for encryption."},32347:{name:"SignatureElements",level:1,type:"m",webm:!1,description:"Contains elements that will be used to compute the signature."},32437:{name:"Signature",level:1,type:"b",webm:!1,description:"The signature of the data (until a new."},32421:{name:"SignaturePublicKey",level:1,type:"b",webm:!1,description:"The public key to use with the algorithm (in the case of a PKI-based signature)."},32410:{name:"SignatureHash",level:1,type:"u",webm:!1,description:"Hash algorithm used (1=SHA1-160, 2=MD5)."},32394:{name:"SignatureAlgo",level:1,type:"u",webm:!1,description:"Signature algorithm used (1=RSA, 2=elliptic)."},458458727:{name:"SignatureSlot",level:-1,type:"m",multiple:!0,webm:!1,description:"Contain signature of some (coming) elements in the stream."},191:{name:"CRC-32",level:-1,type:"b",minver:1,webm:!1,description:"The CRC is computed on all the data of the Master element it's in. The CRC element should be the first in it's parent master for easier reading. All level 1 elements should include a CRC-32. The CRC in use is the IEEE CRC32 Little Endian",crc:!0},236:{name:"Void",level:-1,type:"b",minver:1,description:"Used to void damaged data, to avoid unexpected behaviors when using damaged data. The content is discarded. Also used to reserve space in a sub-element for later use."},17139:{name:"EBMLMaxSizeLength",level:1,type:"u",mandatory:!0,default:8,minver:1,description:"The maximum length of the sizes you'll find in this file (8 or less in Matroska). This does not override the element size indicated at the beginning of an element. Elements that have an indicated size which is larger than what is allowed by EBMLMaxSizeLength shall be considered invalid."},17138:{name:"EBMLMaxIDLength",level:1,type:"u",mandatory:!0,default:4,minver:1,description:"The maximum length of the IDs you'll find in this file (4 or less in Matroska)."},17143:{name:"EBMLReadVersion",level:1,type:"u",mandatory:!0,default:1,minver:1,description:"The minimum EBML version a parser has to support to read this file."},440786851:{name:"EBML",level:"0",type:"m",mandatory:!0,multiple:!0,minver:1,description:"Set the EBML characteristics of the data to follow. Each EBML document has to start with this."},21936:{name:"Colour",level:"4",type:"m",mandatory:!0,multiple:!0,description:"Settings describing the colour format."},21937:{name:"MatrixCoefficients",level:"5",type:"u",mandatory:!0,multiple:!0,description:"The Matrix Coefficients of the video used to derive luma and chroma values from red, green, and blue color primaries. For clarity, the value and meanings for MatrixCoefficients are adopted from Table 4 of ISO/IEC 23001-8:2016 or ITU-T H.273."},21945:{name:"Range",level:"5",type:"u",mandatory:!0,multiple:!0,description:"Clipping of the color ranges."},21946:{name:"TransferCharacteristics",level:"5",type:"u",mandatory:!0,multiple:!0,description:"The transfer characteristics of the video."},21947:{name:"Primaries",level:"5",type:"u",mandatory:!0,multiple:!0,description:"The colour primaries of the video. For clarity, the value and meanings for Primaries are adopted from Table 2 of ISO/IEC 23091-4 or ITU-T H.273."}}},1384:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),i=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.tools=t.Reader=t.Encoder=t.Decoder=void 0,i(n(4990),t);var o=n(2800);t.Decoder=o.default;var a=n(8031);t.Encoder=a.default;var s=n(1381);t.Reader=s.default;var l=n(3210);t.tools=l},190:function(e,t,n){"use strict";var r=this&&this.__assign||function(){return r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n8){var i=e.readHexString(t,n,n+r);throw new Error("Unrepresentable length: ".concat(r," ").concat(i))}if(n+r>t.length)return null;for(var o=t[n]&(1<<8-r)-1,a=1;a=Math.pow(2,8)&&t[n+7]>0)return{length:r,value:-1};o*=Math.pow(2,8),o+=t[n+a]}return{length:r,value:o}},e.writeVint=function(e){if(e<0||e>Math.pow(2,53))throw new Error("Unrepresentable value: ".concat(e));var t=1;for(t=1;t<=8&&!(e{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.convertEBMLDateToJSDate=t.createFloatBuffer=t.createIntBuffer=t.createUIntBuffer=t.encodeValueToBuffer=t.concat=t.putRefinedMetaData=t.extractElement=t.removeElement=t.makeMetadataSeekable=t.createRIFFChunk=t.VP8BitStreamToRiffWebPBuffer=t.WebPBlockFilter=t.encodeTag=t.readBlock=t.ebmlBlock=t.writeVint=t.readVint=t.Buffer=void 0;var r=n(1166),i=n(8031),o=n(8764),a=n(190),s=n(1586);function l(e,n){var r=new t.Buffer(4);return r.writeUInt32LE(n.byteLength,0),d([new t.Buffer(e.substr(0,4),"ascii"),r,n,new t.Buffer(n.byteLength%2==0?0:1)])}function u(e,t){for(var n=-1,r=0;r=0?Array.prototype.splice.apply(e,[i+1,0].concat(n)):r?[].concat([{name:t,type:"m",isEnd:!1}],n,[{name:t,type:"m",isEnd:!0}]).reverse().forEach((function(t){e.unshift(t)})):(e.push({name:t,type:"m",isEnd:!1}),n.forEach((function(t){e.push(t)})),e.push({name:t,type:"m",isEnd:!0}))}function d(e){return t.Buffer.concat(e)}function m(e){for(var n=1;e>=Math.pow(2,8*n);n++);if(n>=7)return console.warn("7bit or more bigger uint not supported."),new r.Uint64BE(e).toBuffer();var i=new t.Buffer(n);return i.writeUIntBE(e,0,n),i}function y(e){for(var n=1;e>=Math.pow(2,8*n);n++);if(n>=7)return console.warn("7bit or more bigger uint not supported."),new r.Int64BE(e).toBuffer();var i=new t.Buffer(n);return i.writeIntBE(e,0,n),i}function g(e,n){var r;if(void 0===n&&(n=8),8===n)return(r=new t.Buffer(8)).writeDoubleBE(e,0),r;if(4===n)return(r=new t.Buffer(4)).writeFloatBE(e,0),r;throw new Error("float type bits must 4bytes or 8bytes")}t.Buffer=o.Buffer,t.readVint=a.default.readVint,t.writeVint=a.default.writeVint,t.ebmlBlock=s,t.readBlock=function(e){return(0,t.ebmlBlock)(new t.Buffer(e))},t.encodeTag=function(e,n,r){return void 0===r&&(r=!1),d([e,r?new t.Buffer("01ffffffffffffff","hex"):(0,t.writeVint)(n.length),n])},t.WebPBlockFilter=function(e){return e.reduce((function(e,n){return"b"!==n.type||"SimpleBlock"!==n.name?e:(0,t.ebmlBlock)(n.data).frames.some((function(e){return"9d012a"===e.slice(3,6).toString("hex")}))?e.concat(n):e}),[])},t.VP8BitStreamToRiffWebPBuffer=function(e){var n=l("VP8 ",e);return l("RIFF",d([new t.Buffer("WEBP","ascii"),n]))},t.createRIFFChunk=l,t.makeMetadataSeekable=function(e,n,r){var o=c("EBML",e),a=f(o)+12,s=e[e.length-1].dataEnd-a,l=c("Info",e);u("Duration",l),l.splice(1,0,{name:"Duration",type:"f",data:g(n,8)});for(var h=f(l),p=c("Tracks",e),d=f(p),y=47,v=[],b=5+15*r.length,w=[],k=-1,T=function(e){var n=y,i=n+h,o=i+d,l=o+b-s;if((v=[]).push({name:"SeekHead",type:"m",isEnd:!1}),v.push({name:"Seek",type:"m",isEnd:!1}),v.push({name:"SeekID",type:"b",data:new t.Buffer([21,73,169,102])}),v.push({name:"SeekPosition",type:"u",data:m(n)}),v.push({name:"Seek",type:"m",isEnd:!0}),v.push({name:"Seek",type:"m",isEnd:!1}),v.push({name:"SeekID",type:"b",data:new t.Buffer([22,84,174,107])}),v.push({name:"SeekPosition",type:"u",data:m(i)}),v.push({name:"Seek",type:"m",isEnd:!0}),v.push({name:"Seek",type:"m",isEnd:!1}),v.push({name:"SeekID",type:"b",data:new t.Buffer([28,83,187,107])}),v.push({name:"SeekPosition",type:"u",data:m(o)}),v.push({name:"Seek",type:"m",isEnd:!0}),v.push({name:"SeekHead",type:"m",isEnd:!0}),y=f(v),(w=[]).push({name:"Cues",type:"m",isEnd:!1}),r.forEach((function(e){var t=e.CueTrack,n=e.CueClusterPosition,r=e.CueTime;w.push({name:"CuePoint",type:"m",isEnd:!1}),w.push({name:"CueTime",type:"u",data:m(r)}),w.push({name:"CueTrackPositions",type:"m",isEnd:!1}),w.push({name:"CueTrack",type:"u",data:m(t)}),n-=a,n+=l,w.push({name:"CueClusterPosition",type:"u",data:m(n)}),w.push({name:"CueTrackPositions",type:"m",isEnd:!0}),w.push({name:"CuePoint",type:"m",isEnd:!0})})),w.push({name:"Cues",type:"m",isEnd:!0}),b=f(w),k===l)return"break";if(k=l,9===e)throw new Error("Failed to converge to a stable metadata size")},E=0;E<10;E++){if("break"===T(E))break}var C=[].concat.apply([],[o,{name:"Segment",type:"m",isEnd:!1,unknownSize:!0},v,l,p,w]);return(new i.default).encode(C)},t.removeElement=u,t.extractElement=c,t.putRefinedMetaData=function(e,n){Array.isArray(n.cueInfos)&&!Array.isArray(n.cues)&&(console.warn("putRefinedMetaData: info.cueInfos property is deprecated. please use info.cues"),n.cues=n.cueInfos);for(var r=[],o=[],a=0;a0))throw new Error("metadata dataEnd has wrong number");var l,u=o[o.length-1].dataEnd,c=r[r.length-1].dataEnd,f=(new i.default).encode(r).byteLength-c,p=u-o[0].tagStart,d=(o[0].tagStart,o[0].tagStart,new t.Buffer([24,83,128,103])),m=new t.Buffer("01ffffffffffffff","hex"),y=d.byteLength+m.byteLength,g=p;for(l=1;l<20;l++){var v=h(o,f+(c+y+g-u),n),b=(new i.default).encode(v).byteLength;if(b===g)return(new i.default).encode([].concat(r,[{type:"m",name:"Segment",isEnd:!1,unknownSize:!0}],v));g=b}throw new Error("unable to refine metadata, stable size could not be found in "+l+" iterations!")},t.concat=d,t.encodeValueToBuffer=function(e){var n=new t.Buffer(0);if("m"===e.type)return e;switch(e.type){case"u":n=m(e.value);break;case"i":n=y(e.value);break;case"f":n=g(e.value);break;case"s":n=new t.Buffer(e.value,"ascii");break;case"8":n=new t.Buffer(e.value,"utf8");break;case"b":n=e.value;break;case"d":n=new r.Int64BE(e.value.getTime().toString()).toBuffer()}return Object.assign({},e,{data:n})},t.createUIntBuffer=m,t.createIntBuffer=y,t.createFloatBuffer=g,t.convertEBMLDateToJSDate=function(e){return e instanceof Date?e:new Date(new Date("2001-01-01T00:00:00.000Z").getTime()+Number(e)/1e3/1e3)}},8246:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(e){o(e)}}function s(e){try{l(r.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]{"use strict";t.byteLength=function(e){var t=l(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){var t,n,o=l(e),a=o[0],s=o[1],u=new i(function(e,t,n){return 3*(t+n)/4-n}(0,a,s)),c=0,f=s>0?a-4:a;for(n=0;n>16&255,u[c++]=t>>8&255,u[c++]=255&t;2===s&&(t=r[e.charCodeAt(n)]<<2|r[e.charCodeAt(n+1)]>>4,u[c++]=255&t);1===s&&(t=r[e.charCodeAt(n)]<<10|r[e.charCodeAt(n+1)]<<4|r[e.charCodeAt(n+2)]>>2,u[c++]=t>>8&255,u[c++]=255&t);return u},t.fromByteArray=function(e){for(var t,r=e.length,i=r%3,o=[],a=16383,s=0,l=r-i;sl?l:s+a));1===i?(t=e[r-1],o.push(n[t>>2]+n[t<<4&63]+"==")):2===i&&(t=(e[r-2]<<8)+e[r-1],o.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"="));return o.join("")};for(var n=[],r=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,s=o.length;a0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function u(e,t,r){for(var i,o,a=[],s=t;s>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);return a.join("")}r["-".charCodeAt(0)]=62,r["_".charCodeAt(0)]=63},8764:(e,t,n)=>{"use strict";const r=n(9742),i=n(645),o="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=l,t.SlowBuffer=function(e){+e!=e&&(e=0);return l.alloc(+e)},t.INSPECT_MAX_BYTES=50;const a=2147483647;function s(e){if(e>a)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,l.prototype),t}function l(e,t,n){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return f(e)}return u(e,t,n)}function u(e,t,n){if("string"==typeof e)return function(e,t){"string"==typeof t&&""!==t||(t="utf8");if(!l.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const n=0|m(e,t);let r=s(n);const i=r.write(e,t);i!==n&&(r=r.slice(0,i));return r}(e,t);if(ArrayBuffer.isView(e))return function(e){if(Y(e,Uint8Array)){const t=new Uint8Array(e);return p(t.buffer,t.byteOffset,t.byteLength)}return h(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(Y(e,ArrayBuffer)||e&&Y(e.buffer,ArrayBuffer))return p(e,t,n);if("undefined"!=typeof SharedArrayBuffer&&(Y(e,SharedArrayBuffer)||e&&Y(e.buffer,SharedArrayBuffer)))return p(e,t,n);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const r=e.valueOf&&e.valueOf();if(null!=r&&r!==e)return l.from(r,t,n);const i=function(e){if(l.isBuffer(e)){const t=0|d(e.length),n=s(t);return 0===n.length||e.copy(n,0,0,t),n}if(void 0!==e.length)return"number"!=typeof e.length||J(e.length)?s(0):h(e);if("Buffer"===e.type&&Array.isArray(e.data))return h(e.data)}(e);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return l.from(e[Symbol.toPrimitive]("string"),t,n);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function c(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function f(e){return c(e),s(e<0?0:0|d(e))}function h(e){const t=e.length<0?0:0|d(e.length),n=s(t);for(let r=0;r=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return 0|e}function m(e,t){if(l.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||Y(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const n=e.length,r=arguments.length>2&&!0===arguments[2];if(!r&&0===n)return 0;let i=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return W(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return G(e).length;default:if(i)return r?-1:W(e).length;t=(""+t).toLowerCase(),i=!0}}function y(e,t,n){let r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return _(this,t,n);case"utf8":case"utf-8":return B(this,t,n);case"ascii":return A(this,t,n);case"latin1":case"binary":return D(this,t,n);case"base64":return S(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return x(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function g(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),J(n=+n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=l.from(t,r)),l.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,i);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,i){let o,a=1,s=e.length,l=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,l/=2,n/=2}function u(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(i){let r=-1;for(o=n;os&&(n=s-l),o=n;o>=0;o--){let n=!0;for(let r=0;ri&&(r=i):r=i;const o=t.length;let a;for(r>o/2&&(r=o/2),a=0;a>8,i=n%256,o.push(i),o.push(r);return o}(t,e.length-n),e,n,r)}function S(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function B(e,t,n){n=Math.min(e.length,n);const r=[];let i=t;for(;i239?4:t>223?3:t>191?2:1;if(i+a<=n){let n,r,s,l;switch(a){case 1:t<128&&(o=t);break;case 2:n=e[i+1],128==(192&n)&&(l=(31&t)<<6|63&n,l>127&&(o=l));break;case 3:n=e[i+1],r=e[i+2],128==(192&n)&&128==(192&r)&&(l=(15&t)<<12|(63&n)<<6|63&r,l>2047&&(l<55296||l>57343)&&(o=l));break;case 4:n=e[i+1],r=e[i+2],s=e[i+3],128==(192&n)&&128==(192&r)&&128==(192&s)&&(l=(15&t)<<18|(63&n)<<12|(63&r)<<6|63&s,l>65535&&l<1114112&&(o=l))}}null===o?(o=65533,a=1):o>65535&&(o-=65536,r.push(o>>>10&1023|55296),o=56320|1023&o),r.push(o),i+=a}return function(e){const t=e.length;if(t<=I)return String.fromCharCode.apply(String,e);let n="",r=0;for(;rr.length?(l.isBuffer(t)||(t=l.from(t)),t.copy(r,i)):Uint8Array.prototype.set.call(r,t,i);else{if(!l.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(r,i)}i+=t.length}return r},l.byteLength=m,l.prototype._isBuffer=!0,l.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tn&&(e+=" ... "),""},o&&(l.prototype[o]=l.prototype.inspect),l.prototype.compare=function(e,t,n,r,i){if(Y(e,Uint8Array)&&(e=l.from(e,e.offset,e.byteLength)),!l.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(this===e)return 0;let o=(i>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0);const s=Math.min(o,a),u=this.slice(r,i),c=e.slice(t,n);for(let e=0;e>>=0,isFinite(n)?(n>>>=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}const i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");let o=!1;for(;;)switch(r){case"hex":return w(this,e,t,n);case"utf8":case"utf-8":return k(this,e,t,n);case"ascii":case"latin1":case"binary":return T(this,e,t,n);case"base64":return E(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const I=4096;function A(e,t,n){let r="";n=Math.min(e.length,n);for(let i=t;ir)&&(n=r);let i="";for(let r=t;rn)throw new RangeError("Trying to access beyond buffer length")}function L(e,t,n,r,i,o){if(!l.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function U(e,t,n,r,i){j(t,r,i,e,n,7);let o=Number(t&BigInt(4294967295));e[n++]=o,o>>=8,e[n++]=o,o>>=8,e[n++]=o,o>>=8,e[n++]=o;let a=Number(t>>BigInt(32)&BigInt(4294967295));return e[n++]=a,a>>=8,e[n++]=a,a>>=8,e[n++]=a,a>>=8,e[n++]=a,n}function O(e,t,n,r,i){j(t,r,i,e,n,7);let o=Number(t&BigInt(4294967295));e[n+7]=o,o>>=8,e[n+6]=o,o>>=8,e[n+5]=o,o>>=8,e[n+4]=o;let a=Number(t>>BigInt(32)&BigInt(4294967295));return e[n+3]=a,a>>=8,e[n+2]=a,a>>=8,e[n+1]=a,a>>=8,e[n]=a,n+8}function M(e,t,n,r,i,o){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function R(e,t,n,r,o){return t=+t,n>>>=0,o||M(e,0,n,4),i.write(e,t,n,r,23,4),n+4}function N(e,t,n,r,o){return t=+t,n>>>=0,o||M(e,0,n,8),i.write(e,t,n,r,52,8),n+8}l.prototype.slice=function(e,t){const n=this.length;(e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t>>=0,t>>>=0,n||P(e,t,this.length);let r=this[e],i=1,o=0;for(;++o>>=0,t>>>=0,n||P(e,t,this.length);let r=this[e+--t],i=1;for(;t>0&&(i*=256);)r+=this[e+--t]*i;return r},l.prototype.readUint8=l.prototype.readUInt8=function(e,t){return e>>>=0,t||P(e,1,this.length),this[e]},l.prototype.readUint16LE=l.prototype.readUInt16LE=function(e,t){return e>>>=0,t||P(e,2,this.length),this[e]|this[e+1]<<8},l.prototype.readUint16BE=l.prototype.readUInt16BE=function(e,t){return e>>>=0,t||P(e,2,this.length),this[e]<<8|this[e+1]},l.prototype.readUint32LE=l.prototype.readUInt32LE=function(e,t){return e>>>=0,t||P(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},l.prototype.readUint32BE=l.prototype.readUInt32BE=function(e,t){return e>>>=0,t||P(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},l.prototype.readBigUInt64LE=Z((function(e){H(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||q(e,this.length-8);const r=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,i=this[++e]+256*this[++e]+65536*this[++e]+n*2**24;return BigInt(r)+(BigInt(i)<>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||q(e,this.length-8);const r=t*2**24+65536*this[++e]+256*this[++e]+this[++e],i=this[++e]*2**24+65536*this[++e]+256*this[++e]+n;return(BigInt(r)<>>=0,t>>>=0,n||P(e,t,this.length);let r=this[e],i=1,o=0;for(;++o=i&&(r-=Math.pow(2,8*t)),r},l.prototype.readIntBE=function(e,t,n){e>>>=0,t>>>=0,n||P(e,t,this.length);let r=t,i=1,o=this[e+--r];for(;r>0&&(i*=256);)o+=this[e+--r]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*t)),o},l.prototype.readInt8=function(e,t){return e>>>=0,t||P(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},l.prototype.readInt16LE=function(e,t){e>>>=0,t||P(e,2,this.length);const n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt16BE=function(e,t){e>>>=0,t||P(e,2,this.length);const n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt32LE=function(e,t){return e>>>=0,t||P(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},l.prototype.readInt32BE=function(e,t){return e>>>=0,t||P(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},l.prototype.readBigInt64LE=Z((function(e){H(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||q(e,this.length-8);const r=this[e+4]+256*this[e+5]+65536*this[e+6]+(n<<24);return(BigInt(r)<>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||q(e,this.length-8);const r=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(r)<>>=0,t||P(e,4,this.length),i.read(this,e,!0,23,4)},l.prototype.readFloatBE=function(e,t){return e>>>=0,t||P(e,4,this.length),i.read(this,e,!1,23,4)},l.prototype.readDoubleLE=function(e,t){return e>>>=0,t||P(e,8,this.length),i.read(this,e,!0,52,8)},l.prototype.readDoubleBE=function(e,t){return e>>>=0,t||P(e,8,this.length),i.read(this,e,!1,52,8)},l.prototype.writeUintLE=l.prototype.writeUIntLE=function(e,t,n,r){if(e=+e,t>>>=0,n>>>=0,!r){L(this,e,t,n,Math.pow(2,8*n)-1,0)}let i=1,o=0;for(this[t]=255&e;++o>>=0,n>>>=0,!r){L(this,e,t,n,Math.pow(2,8*n)-1,0)}let i=n-1,o=1;for(this[t+i]=255&e;--i>=0&&(o*=256);)this[t+i]=e/o&255;return t+n},l.prototype.writeUint8=l.prototype.writeUInt8=function(e,t,n){return e=+e,t>>>=0,n||L(this,e,t,1,255,0),this[t]=255&e,t+1},l.prototype.writeUint16LE=l.prototype.writeUInt16LE=function(e,t,n){return e=+e,t>>>=0,n||L(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},l.prototype.writeUint16BE=l.prototype.writeUInt16BE=function(e,t,n){return e=+e,t>>>=0,n||L(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},l.prototype.writeUint32LE=l.prototype.writeUInt32LE=function(e,t,n){return e=+e,t>>>=0,n||L(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},l.prototype.writeUint32BE=l.prototype.writeUInt32BE=function(e,t,n){return e=+e,t>>>=0,n||L(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},l.prototype.writeBigUInt64LE=Z((function(e,t=0){return U(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),l.prototype.writeBigUInt64BE=Z((function(e,t=0){return O(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),l.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t>>>=0,!r){const r=Math.pow(2,8*n-1);L(this,e,t,n,r-1,-r)}let i=0,o=1,a=0;for(this[t]=255&e;++i>0)-a&255;return t+n},l.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t>>>=0,!r){const r=Math.pow(2,8*n-1);L(this,e,t,n,r-1,-r)}let i=n-1,o=1,a=0;for(this[t+i]=255&e;--i>=0&&(o*=256);)e<0&&0===a&&0!==this[t+i+1]&&(a=1),this[t+i]=(e/o>>0)-a&255;return t+n},l.prototype.writeInt8=function(e,t,n){return e=+e,t>>>=0,n||L(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},l.prototype.writeInt16LE=function(e,t,n){return e=+e,t>>>=0,n||L(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},l.prototype.writeInt16BE=function(e,t,n){return e=+e,t>>>=0,n||L(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},l.prototype.writeInt32LE=function(e,t,n){return e=+e,t>>>=0,n||L(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},l.prototype.writeInt32BE=function(e,t,n){return e=+e,t>>>=0,n||L(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},l.prototype.writeBigInt64LE=Z((function(e,t=0){return U(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),l.prototype.writeBigInt64BE=Z((function(e,t=0){return O(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),l.prototype.writeFloatLE=function(e,t,n){return R(this,e,t,!0,n)},l.prototype.writeFloatBE=function(e,t,n){return R(this,e,t,!1,n)},l.prototype.writeDoubleLE=function(e,t,n){return N(this,e,t,!0,n)},l.prototype.writeDoubleBE=function(e,t,n){return N(this,e,t,!1,n)},l.prototype.copy=function(e,t,n,r){if(!l.isBuffer(e))throw new TypeError("argument should be a Buffer");if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i=r+4;n-=3)t=`_${e.slice(n-3,n)}${t}`;return`${e.slice(0,n)}${t}`}function j(e,t,n,r,i,o){if(e>n||e3?0===t||t===BigInt(0)?`>= 0${r} and < 2${r} ** ${8*(o+1)}${r}`:`>= -(2${r} ** ${8*(o+1)-1}${r}) and < 2 ** ${8*(o+1)-1}${r}`:`>= ${t}${r} and <= ${n}${r}`,new F.ERR_OUT_OF_RANGE("value",i,e)}!function(e,t,n){H(t,"offset"),void 0!==e[t]&&void 0!==e[t+n]||q(t,e.length-(n+1))}(r,i,o)}function H(e,t){if("number"!=typeof e)throw new F.ERR_INVALID_ARG_TYPE(t,"number",e)}function q(e,t,n){if(Math.floor(e)!==e)throw H(e,n),new F.ERR_OUT_OF_RANGE(n||"offset","an integer",e);if(t<0)throw new F.ERR_BUFFER_OUT_OF_BOUNDS;throw new F.ERR_OUT_OF_RANGE(n||"offset",`>= ${n?1:0} and <= ${t}`,e)}V("ERR_BUFFER_OUT_OF_BOUNDS",(function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),V("ERR_INVALID_ARG_TYPE",(function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`}),TypeError),V("ERR_OUT_OF_RANGE",(function(e,t,n){let r=`The value of "${e}" is out of range.`,i=n;return Number.isInteger(n)&&Math.abs(n)>2**32?i=z(String(n)):"bigint"==typeof n&&(i=String(n),(n>BigInt(2)**BigInt(32)||n<-(BigInt(2)**BigInt(32)))&&(i=z(i)),i+="n"),r+=` It must be ${t}. Received ${i}`,r}),RangeError);const $=/[^+/0-9A-Za-z-_]/g;function W(e,t){let n;t=t||1/0;const r=e.length;let i=null;const o=[];for(let a=0;a55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&o.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&o.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;o.push(n)}else if(n<2048){if((t-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function G(e){return r.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace($,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function X(e,t,n,r){let i;for(i=0;i=t.length||i>=e.length);++i)t[i+n]=e[i];return i}function Y(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function J(e){return e!=e}const K=function(){const e="0123456789abcdef",t=new Array(256);for(let n=0;n<16;++n){const r=16*n;for(let i=0;i<16;++i)t[r+i]=e[n]+e[i]}return t}();function Z(e){return"undefined"==typeof BigInt?Q:e}function Q(){throw new Error("BigInt not supported")}},1586:(e,t,n)=>{var r=n(1721),i=1,o=3,a=2;e.exports=function(e){var t={},n=new r(e);t.trackNumber=n.nextUIntV(),t.timecode=n.nextInt16BE();var s=n.nextUInt8();t.invisible=!!(8&s),t.keyframe=!!(128&s),t.discardable=!!(1&s);var l=(6&s)>>1;return t.frames=function(e,t){if(!t)return[e.nextBuffer()];var n,r,s=[],l=e.nextUInt8()+1;if(t===a){if(e.length%l!=0)throw new Error("Fixed-Size Lacing Error");for(r=e.length/l,n=0;n{var r=n(8826);function i(e){this.buffer=e,this.offset=0}i.prototype.nextInt16BE=function(){var e=this.buffer.readInt16BE(this.offset);return this.offset+=2,e},i.prototype.nextUInt8=function(){var e=this.buffer.readUInt8(this.offset);return this.offset+=1,e},i.prototype.nextUIntV=function(){var e=r(this.buffer,this.offset);return this.offset+=e.length,e.value},i.prototype.nextIntV=function(){var e=r(this.buffer,this.offset,!0);return this.offset+=e.length,e.value},i.prototype.nextBuffer=function(e){var t=e?this.buffer.slice(this.offset,this.offset+e):this.buffer.slice(this.offset);return this.offset+=e||this.length,t},Object.defineProperty(i.prototype,"length",{get:function(){return this.buffer.length-this.offset}}),e.exports=i},8826:e=>{e.exports=function(e,t,n){t=t||0;for(var r=1;r<=8&&!(e[t]>=Math.pow(2,8-r));r++);if(r>8)throw new Error("Unrepresentable length: "+r+" "+e.toString("hex",t,t+r));if(t+r>e.length)return null;var i,o=e[t]&(1<<8-r)-1;for(i=1;i=Math.pow(2,45)&&e[t+7]>0)return{length:r,value:-1};o*=Math.pow(2,8),o+=e[t+i]}return n&&(o-=Math.pow(2,7*r-1)-1),{length:r,value:o}}},7187:e=>{"use strict";var t,n="object"==typeof Reflect?Reflect:null,r=n&&"function"==typeof n.apply?n.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};t=n&&"function"==typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var i=Number.isNaN||function(e){return e!=e};function o(){o.init.call(this)}e.exports=o,e.exports.once=function(e,t){return new Promise((function(n,r){function i(n){e.removeListener(t,o),r(n)}function o(){"function"==typeof e.removeListener&&e.removeListener("error",i),n([].slice.call(arguments))}m(e,t,o,{once:!0}),"error"!==t&&function(e,t,n){"function"==typeof e.on&&m(e,"error",t,n)}(e,i,{once:!0})}))},o.EventEmitter=o,o.prototype._events=void 0,o.prototype._eventsCount=0,o.prototype._maxListeners=void 0;var a=10;function s(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function l(e){return void 0===e._maxListeners?o.defaultMaxListeners:e._maxListeners}function u(e,t,n,r){var i,o,a,u;if(s(n),void 0===(o=e._events)?(o=e._events=Object.create(null),e._eventsCount=0):(void 0!==o.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),o=e._events),a=o[t]),void 0===a)a=o[t]=n,++e._eventsCount;else if("function"==typeof a?a=o[t]=r?[n,a]:[a,n]:r?a.unshift(n):a.push(n),(i=l(e))>0&&a.length>i&&!a.warned){a.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=a.length,u=c,console&&console.warn&&console.warn(u)}return e}function c(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function f(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=c.bind(r);return i.listener=n,r.wrapFn=i,i}function h(e,t,n){var r=e._events;if(void 0===r)return[];var i=r[t];return void 0===i?[]:"function"==typeof i?n?[i.listener||i]:[i]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var l=o[e];if(void 0===l)return!1;if("function"==typeof l)r(l,this,t);else{var u=l.length,c=d(l,u);for(n=0;n=0;o--)if(n[o]===t||n[o].listener===t){a=n[o].listener,i=o;break}if(i<0)return this;0===i?n.shift():function(e,t){for(;t+1=0;r--)this.removeListener(e,t[r]);return this},o.prototype.listeners=function(e){return h(this,e,!0)},o.prototype.rawListeners=function(e){return h(this,e,!1)},o.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):p.call(e,t)},o.prototype.listenerCount=p,o.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},645:(e,t)=>{t.read=function(e,t,n,r,i){var o,a,s=8*i-r-1,l=(1<>1,c=-7,f=n?i-1:0,h=n?-1:1,p=e[t+f];for(f+=h,o=p&(1<<-c)-1,p>>=-c,c+=s;c>0;o=256*o+e[t+f],f+=h,c-=8);for(a=o&(1<<-c)-1,o>>=-c,c+=r;c>0;a=256*a+e[t+f],f+=h,c-=8);if(0===o)o=1-u;else{if(o===l)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,r),o-=u}return(p?-1:1)*a*Math.pow(2,o-r)},t.write=function(e,t,n,r,i,o){var a,s,l,u=8*o-i-1,c=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:o-1,d=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=c):(a=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-a))<1&&(a--,l*=2),(t+=a+f>=1?h/l:h*Math.pow(2,1-f))*l>=2&&(a++,l/=2),a+f>=c?(s=0,a=c):a+f>=1?(s=(t*l-1)*Math.pow(2,i),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,i),a=0));i>=8;e[n+p]=255&s,p+=d,s/=256,i-=8);for(a=a<0;e[n+p]=255&a,p+=d,a/=256,u-=8);e[n+p-d]|=128*m}},1166:function(e,t){!function(e){var t,n="undefined",r=n!==typeof Buffer&&Buffer,i=n!==typeof Uint8Array&&Uint8Array,o=n!==typeof ArrayBuffer&&ArrayBuffer,a=[0,0,0,0,0,0,0,0],s=Array.isArray||function(e){return!!e&&"[object Array]"==Object.prototype.toString.call(e)},l=4294967296,u=16777216;function c(s,c,k){var T=c?0:4,E=c?4:0,C=c?0:3,S=c?1:2,B=c?2:1,I=c?3:0,A=c?g:b,D=c?v:w,_=L.prototype,x="is"+s,P="_"+x;return _.buffer=void 0,_.offset=0,_[P]=!0,_.toNumber=U,_.toString=function(e){var t=this.buffer,n=this.offset,r=M(t,n+T),i=M(t,n+E),o="",a=!k&&2147483648&r;a&&(r=~r,i=l-i);e=e||10;for(;;){var s=r%e*l+i;if(r=Math.floor(r/e),i=Math.floor(s/e),o=(s%e).toString(e)+o,!r&&!i)break}a&&(o="-"+o);return o},_.toJSON=U,_.toArray=f,r&&(_.toBuffer=h),i&&(_.toArrayBuffer=p),L[x]=function(e){return!(!e||!e[P])},e[s]=L,L;function L(e,s,u,c){return this instanceof L?function(e,s,u,c,f){i&&o&&(s instanceof o&&(s=new i(s)),c instanceof o&&(c=new i(c)));if(!(s||u||c||t))return void(e.buffer=y(a,0));if(!d(s,u)){var h=t||Array;f=u,c=s,u=0,s=t===r?r.alloc(8):new h(8)}if(e.buffer=s,e.offset=u|=0,n===typeof c)return;"string"==typeof c?function(e,t,n,r){var i=0,o=n.length,a=0,s=0;"-"===n[0]&&i++;var u=i;for(;i=0))break;s=s*r+c,a=a*r+Math.floor(s/l),s%=l}u&&(a=~a,s?s=l-s:a++);O(e,t+T,a),O(e,t+E,s)}(s,u,c,f||10):d(c,f)?m(s,u,c,f):"number"==typeof f?(O(s,u+T,c),O(s,u+E,f)):c>0?A(s,u,c):c<0?D(s,u,c):m(s,u,a,0)}(this,e,s,u,c):new L(e,s,u,c)}function U(){var e=this.buffer,t=this.offset,n=M(e,t+T),r=M(e,t+E);return k||(n|=0),n?n*l+r:r}function O(e,t,n){e[t+I]=255&n,n>>=8,e[t+B]=255&n,n>>=8,e[t+S]=255&n,n>>=8,e[t+C]=255&n}function M(e,t){return e[t+C]*u+(e[t+S]<<16)+(e[t+B]<<8)+e[t+I]}}function f(e){var n=this.buffer,r=this.offset;return t=null,!1!==e&&s(n)?8===n.length?n:n.slice(r,r+8):y(n,r)}function h(e){var n=this.buffer,i=this.offset;return t=r,!1!==e&&r.isBuffer(n)?8===n.length?n:n.slice(i,i+8):r.from(p.call(this,e))}function p(e){var n=this.buffer,r=this.offset,a=n.buffer;if(t=i,!1!==e&&!n.offset&&a instanceof o)return 8===a.byteLength?a:a.slice(r,r+8);var s=new i(8);return m(s,0,n,r),s.buffer}function d(e,t){var n=e&&e.length;return t|=0,n&&t+8<=n&&"string"!=typeof e[t]}function m(e,t,n,r){t|=0,r|=0;for(var i=0;i<8;i++)e[t++]=255&n[r++]}function y(e,t){return Array.prototype.slice.call(e,t,t+8)}function g(e,t,n){for(var r=t+8;r>t;)e[--r]=255&n,n/=256}function v(e,t,n){var r=t+8;for(n++;r>t;)e[--r]=255&-n^255,n/=256}function b(e,t,n){for(var r=t+8;t{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},2800:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,i=n(1166),o=n(3210),a=n(3210),s=n(4370);!function(e){e[e.STATE_TAG=1]="STATE_TAG",e[e.STATE_SIZE=2]="STATE_SIZE",e[e.STATE_CONTENT=3]="STATE_CONTENT"}(r||(r={}));var l=function(){function e(){this._buffer=new o.Buffer(0),this._tag_stack=[],this._state=r.STATE_TAG,this._cursor=0,this._total=0,this._schema=s.byEbmlID,this._result=[]}return e.prototype.decode=function(e){this.readChunk(e);var t=this._result;return this._result=[],t},e.prototype.readChunk=function(e){for(this._buffer=a.concat([this._buffer,new o.Buffer(e)]);this._cursor=this._buffer.length)return!1;var e=(0,o.readVint)(this._buffer,this._cursor);if(null==e)return!1;var t=this._buffer.slice(this._cursor,this._cursor+e.length).reduce((function(e,t,n,r){return e+t*Math.pow(16,2*(r.length-1-n))}),0),n=this.getSchemaInfo(t),i={EBML_ID:t.toString(16),schema:n,type:n.type,name:n.name,level:n.level,tagStart:this._total,tagEnd:this._total+e.length,sizeStart:this._total+e.length,sizeEnd:null,dataStart:null,dataEnd:null,dataSize:null,data:null};return this._tag_stack.push(i),this._cursor+=e.length,this._total+=e.length,this._state=r.STATE_SIZE,!0},e.prototype.readSize=function(){if(this._cursor>=this._buffer.length)return!1;var e=(0,o.readVint)(this._buffer,this._cursor);if(null==e)return!1;var t=this._tag_stack[this._tag_stack.length-1];return t.sizeEnd=t.sizeStart+e.length,t.dataStart=t.sizeEnd,t.dataSize=e.value,-1===e.value?(t.dataEnd=-1,"m"===t.type&&(t.unknownSize=!0)):t.dataEnd=t.sizeEnd+e.value,this._cursor+=e.length,this._total+=e.length,this._state=r.STATE_CONTENT,!0},e.prototype.readContent=function(){var e=this._tag_stack[this._tag_stack.length-1];if("m"===e.type){if(e.isEnd=!1,this._result.push(e),this._state=r.STATE_TAG,0===e.dataSize){var t=Object.assign({},e,{isEnd:!0});this._result.push(t),this._tag_stack.pop()}return!0}if(this._buffer.length0;){var a=this._tag_stack[this._tag_stack.length-1];if(a.dataEnd<0)return this._tag_stack.pop(),!0;if(this._total{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(3210),i=n(3210),o=n(4370),a=function(){function e(){this._schema=o.byEbmlID,this._buffers=[],this._stack=[]}return e.prototype.encode=function(e){var t=this;return r.concat(e.reduce((function(e,n){return e.concat(t.encodeChunk(n))}),[])).buffer},e.prototype.encodeChunk=function(e){return"m"===e.type?e.isEnd?this.endTag(e):this.startTag(e):(e.data=i.Buffer.from(e.data),this.writeTag(e)),this.flush()},e.prototype.flush=function(){var e=this._buffers;return this._buffers=[],e},e.prototype.getSchemaInfo=function(e){for(var t=Object.keys(this._schema).map(Number),n=0;n0?this._stack[this._stack.length-1].children.push({tagId:n,elm:e,children:[],data:o}):this._buffers=this._buffers.concat(o)},e.prototype.startTag=function(e){var t=e.name,n=this.getSchemaInfo(t);if(null==n)throw new Error("No schema entry found for "+t);if(e.unknownSize){var o=r.encodeTag(n,new i.Buffer(0),e.unknownSize);this._buffers=this._buffers.concat(o)}else{var a={tagId:n,elm:e,children:[],data:null};this._stack.length>0&&this._stack[this._stack.length-1].children.push(a),this._stack.push(a)}},e.prototype.endTag=function(e){e.name;var t=this._stack.pop();if(null==t)throw new Error("EBML structure is broken");if(t.elm.name!==e.name)throw new Error("EBML structure is broken");var n=t.children.reduce((function(e,t){if(null===t.data)throw new Error("EBML structure is broken");return e.concat(t.data)}),[]),i=r.concat(n);"m"===t.elm.type?t.data=r.encodeTag(t.tagId,i,t.elm.unknownSize):t.data=r.encodeTag(t.tagId,i),this._stack.length<1&&(this._buffers=this._buffers.concat(t.data))},e}();t.default=a},1381:function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},r(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(7187),a=n(3210),s=function(e){function t(){var t=e.call(this)||this;return t.logGroup="",t.hasLoggingStarted=!1,t.metadataloaded=!1,t.chunks=[],t.stack=[],t.segmentOffset=0,t.last2SimpleBlockVideoTrackTimecode=[0,0],t.last2SimpleBlockAudioTrackTimecode=[0,0],t.lastClusterTimecode=0,t.lastClusterPosition=0,t.timecodeScale=1e6,t.metadataSize=0,t.metadatas=[],t.cues=[],t.firstVideoBlockRead=!1,t.firstAudioBlockRead=!1,t.currentTrack={TrackNumber:-1,TrackType:-1,DefaultDuration:null,CodecDelay:null},t.trackTypes=[],t.trackDefaultDuration=[],t.trackCodecDelay=[],t.trackInfo={type:"nothing"},t.ended=!1,t.logging=!1,t.use_duration_every_simpleblock=!1,t.use_webp=!1,t.use_segment_info=!0,t.drop_default_duration=!0,t}return i(t,e),t.prototype.stop=function(){for(this.ended=!0,this.emit_segment_info();this.stack.length;)this.stack.pop(),this.logging&&console.groupEnd();this.logging&&this.hasLoggingStarted&&this.logGroup&&console.groupEnd()},t.prototype.emit_segment_info=function(){var e=this.chunks;if(this.chunks=[],this.metadataloaded){if(!this.use_segment_info)return;var t=this.lastClusterTimecode,n=this.duration,r=this.timecodeScale;this.emit("cluster",{timecode:t,data:e}),this.emit("duration",{timecodeScale:r,duration:n})}else{this.metadataloaded=!0,this.metadatas=e;var i=this.trackTypes.indexOf(1),o=this.trackTypes.indexOf(2);if(this.trackInfo=i>=0&&o>=0?{type:"both",trackNumber:i}:i>=0?{type:"video",trackNumber:i}:o>=0?{type:"audio",trackNumber:o}:{type:"nothing"},!this.use_segment_info)return;this.emit("metadata",{data:e,metadataSize:this.metadataSize})}},t.prototype.read=function(e){var t=this,n=!1;if(!this.ended){if("m"===e.type)if(e.isEnd)this.stack.pop();else{var r=this.stack[this.stack.length-1];if(null!=r&&r.level>=e.level){this.stack.pop(),this.logging&&console.groupEnd(),r.dataEnd=e.dataEnd,r.dataSize=e.dataEnd-r.dataStart,r.unknownSize=!1;var i=Object.assign({},r,{name:r.name,type:r.type,isEnd:!0});this.chunks.push(i)}this.stack.push(e)}if("m"===e.type&&"Segment"==e.name)0!=this.segmentOffset&&console.warn("Multiple segments detected!"),this.segmentOffset=e.dataStart,this.emit("segment_offset",this.segmentOffset);else if("b"===e.type&&"SimpleBlock"===e.name){var o=a.ebmlBlock(e.data),s=o.timecode,l=o.trackNumber,u=o.frames;if(1===this.trackTypes[l]){if(!this.firstVideoBlockRead&&(this.firstVideoBlockRead=!0,"both"===this.trackInfo.type||"video"===this.trackInfo.type)){var c=this.lastClusterTimecode+s;this.cues.push({CueTrack:l,CueClusterPosition:this.lastClusterPosition,CueTime:c}),this.emit("cue_info",{CueTrack:l,CueClusterPosition:this.lastClusterPosition,CueTime:this.lastClusterTimecode}),this.emit("cue",{CueTrack:l,CueClusterPosition:this.lastClusterPosition,CueTime:c})}this.last2SimpleBlockVideoTrackTimecode=[this.last2SimpleBlockVideoTrackTimecode[1],s]}else if(2===this.trackTypes[l]){if(!this.firstAudioBlockRead&&(this.firstAudioBlockRead=!0,"audio"===this.trackInfo.type)){c=this.lastClusterTimecode+s;this.cues.push({CueTrack:l,CueClusterPosition:this.lastClusterPosition,CueTime:c}),this.emit("cue_info",{CueTrack:l,CueClusterPosition:this.lastClusterPosition,CueTime:this.lastClusterTimecode}),this.emit("cue",{CueTrack:l,CueClusterPosition:this.lastClusterPosition,CueTime:c})}this.last2SimpleBlockAudioTrackTimecode=[this.last2SimpleBlockAudioTrackTimecode[1],s]}this.use_duration_every_simpleblock&&this.emit("duration",{timecodeScale:this.timecodeScale,duration:this.duration}),this.use_webp&&u.forEach((function(e){if("9d012a"===e.slice(3,6).toString("hex")){var n=a.VP8BitStreamToRiffWebPBuffer(e),r=new Blob([n],{type:"image/webp"}),i=t.duration;t.emit("webp",{currentTime:i,webp:r})}}))}else"m"===e.type&&"Cluster"===e.name&&!1===e.isEnd?(this.firstVideoBlockRead=!1,this.firstAudioBlockRead=!1,this.emit_segment_info(),this.emit("cluster_ptr",e.tagStart),this.lastClusterPosition=e.tagStart):"u"===e.type&&"Timecode"===e.name?this.lastClusterTimecode=e.value:"u"===e.type&&"TimecodeScale"===e.name?this.timecodeScale=e.value:"m"===e.type&&"TrackEntry"===e.name?e.isEnd?(this.trackTypes[this.currentTrack.TrackNumber]=this.currentTrack.TrackType,this.trackDefaultDuration[this.currentTrack.TrackNumber]=this.currentTrack.DefaultDuration,this.trackCodecDelay[this.currentTrack.TrackNumber]=this.currentTrack.CodecDelay):this.currentTrack={TrackNumber:-1,TrackType:-1,DefaultDuration:null,CodecDelay:null}:"u"===e.type&&"TrackType"===e.name?this.currentTrack.TrackType=e.value:"u"===e.type&&"TrackNumber"===e.name?this.currentTrack.TrackNumber=e.value:"u"===e.type&&"CodecDelay"===e.name?this.currentTrack.CodecDelay=e.value:"u"===e.type&&"DefaultDuration"===e.name?this.drop_default_duration?(console.warn("DefaultDuration detected!, remove it"),n=!0):this.currentTrack.DefaultDuration=e.value:"unknown"===e.name&&console.warn(e);!this.metadataloaded&&e.dataEnd>0&&(this.metadataSize=e.dataEnd),n||this.chunks.push(e),this.logging&&this.put(e)}},Object.defineProperty(t.prototype,"duration",{get:function(){if("nothing"===this.trackInfo.type)return console.warn("no video, no audio track"),0;var e=0,t=0,n=0,r=this.trackDefaultDuration[this.trackInfo.trackNumber];if("number"==typeof r)e=r;else if("both"===this.trackInfo.type)this.last2SimpleBlockAudioTrackTimecode[1]>this.last2SimpleBlockVideoTrackTimecode[1]?(e=(this.last2SimpleBlockAudioTrackTimecode[1]-this.last2SimpleBlockAudioTrackTimecode[0])*this.timecodeScale,"number"==typeof(i=this.trackCodecDelay[this.trackTypes.indexOf(2)])&&(t=i),n=this.last2SimpleBlockAudioTrackTimecode[1]):(e=(this.last2SimpleBlockVideoTrackTimecode[1]-this.last2SimpleBlockVideoTrackTimecode[0])*this.timecodeScale,"number"==typeof(i=this.trackCodecDelay[this.trackTypes.indexOf(1)])&&(t=i),n=this.last2SimpleBlockVideoTrackTimecode[1]);else if("video"===this.trackInfo.type){e=(this.last2SimpleBlockVideoTrackTimecode[1]-this.last2SimpleBlockVideoTrackTimecode[0])*this.timecodeScale,"number"==typeof(i=this.trackCodecDelay[this.trackInfo.trackNumber])&&(t=i),n=this.last2SimpleBlockVideoTrackTimecode[1]}else if("audio"===this.trackInfo.type){var i;e=(this.last2SimpleBlockAudioTrackTimecode[1]-this.last2SimpleBlockAudioTrackTimecode[0])*this.timecodeScale,"number"==typeof(i=this.trackCodecDelay[this.trackInfo.trackNumber])&&(t=i),n=this.last2SimpleBlockAudioTrackTimecode[1]}var o=((this.lastClusterTimecode+n)*this.timecodeScale+e-t)/this.timecodeScale;return Math.floor(o)},enumerable:!1,configurable:!0}),t.prototype.addListener=function(t,n){return e.prototype.addListener.call(this,t,n)},t.prototype.put=function(e){this.hasLoggingStarted||(this.hasLoggingStarted=!0,this.logging&&this.logGroup&&console.groupCollapsed(this.logGroup)),"m"===e.type?e.isEnd?console.groupEnd():console.group(e.name+":"+e.tagStart):"b"===e.type?console.log(e.name,e.type):console.log(e.name,e.tagStart,e.type,e.value)},t}(o.EventEmitter);t.default=s},4370:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.byEbmlID=void 0,t.byEbmlID={128:{name:"ChapterDisplay",level:4,type:"m",multiple:!0,minver:1,webm:!0,description:"Contains all possible strings to use for the chapter display."},131:{name:"TrackType",level:3,type:"u",mandatory:!0,minver:1,range:"1-254",description:"A set of track types coded on 8 bits (1: video, 2: audio, 3: complex, 0x10: logo, 0x11: subtitle, 0x12: buttons, 0x20: control)."},133:{name:"ChapString",cppname:"ChapterString",level:5,type:"8",mandatory:!0,minver:1,webm:!0,description:"Contains the string to use as the chapter atom."},134:{name:"CodecID",level:3,type:"s",mandatory:!0,minver:1,description:"An ID corresponding to the codec, see the codec page for more info."},136:{name:"FlagDefault",cppname:"TrackFlagDefault",level:3,type:"u",mandatory:!0,minver:1,default:1,range:"0-1",description:"Set if that track (audio, video or subs) SHOULD be active if no language found matches the user preference. (1 bit)"},137:{name:"ChapterTrackNumber",level:5,type:"u",mandatory:!0,multiple:!0,minver:1,webm:!1,range:"not 0",description:"UID of the Track to apply this chapter too. In the absense of a control track, choosing this chapter will select the listed Tracks and deselect unlisted tracks. Absense of this element indicates that the Chapter should be applied to any currently used Tracks."},145:{name:"ChapterTimeStart",level:4,type:"u",mandatory:!0,minver:1,webm:!0,description:"Timestamp of the start of Chapter (not scaled)."},146:{name:"ChapterTimeEnd",level:4,type:"u",minver:1,webm:!1,description:"Timestamp of the end of Chapter (timestamp excluded, not scaled)."},150:{name:"CueRefTime",level:5,type:"u",mandatory:!0,minver:2,webm:!1,description:"Timestamp of the referenced Block."},151:{name:"CueRefCluster",level:5,type:"u",mandatory:!0,webm:!1,description:"The Position of the Cluster containing the referenced Block."},152:{name:"ChapterFlagHidden",level:4,type:"u",mandatory:!0,minver:1,webm:!1,default:0,range:"0-1",description:"If a chapter is hidden (1), it should not be available to the user interface (but still to Control Tracks; see flag notes). (1 bit)"},16980:{name:"ContentCompAlgo",level:6,type:"u",mandatory:!0,minver:1,webm:!1,default:0,description:"The compression algorithm used. Algorithms that have been specified so far are: 0 - zlib, 3 - Header Stripping"},16981:{name:"ContentCompSettings",level:6,type:"b",minver:1,webm:!1,description:"Settings that might be needed by the decompressor. For Header Stripping (ContentCompAlgo=3), the bytes that were removed from the beggining of each frames of the track."},17026:{name:"DocType",level:1,type:"s",mandatory:!0,default:"matroska",minver:1,description:"A string that describes the type of document that follows this EBML header. 'matroska' in our case or 'webm' for webm files."},17029:{name:"DocTypeReadVersion",level:1,type:"u",mandatory:!0,default:1,minver:1,description:"The minimum DocType version an interpreter has to support to read this file."},17030:{name:"EBMLVersion",level:1,type:"u",mandatory:!0,default:1,minver:1,description:"The version of EBML parser used to create the file."},17031:{name:"DocTypeVersion",level:1,type:"u",mandatory:!0,default:1,minver:1,description:"The version of DocType interpreter used to create the file."},17476:{name:"SegmentFamily",level:2,type:"b",multiple:!0,minver:1,webm:!1,bytesize:16,description:"A randomly generated unique ID that all segments related to each other must use (128 bits)."},17505:{name:"DateUTC",level:2,type:"d",minver:1,description:"Date of the origin of timestamp (value 0), i.e. production date."},17540:{name:"TagDefault",level:4,type:"u",mandatory:!0,minver:1,webm:!1,default:1,range:"0-1",description:"Indication to know if this is the default/original language to use for the given tag. (1 bit)"},17541:{name:"TagBinary",level:4,type:"b",minver:1,webm:!1,description:"The values of the Tag if it is binary. Note that this cannot be used in the same SimpleTag as TagString."},17543:{name:"TagString",level:4,type:"8",minver:1,webm:!1,description:"The value of the Element."},17545:{name:"Duration",level:2,type:"f",minver:1,range:"> 0",description:"Duration of the segment (based on TimecodeScale)."},17816:{name:"ChapterFlagEnabled",level:4,type:"u",mandatory:!0,minver:1,webm:!1,default:1,range:"0-1",description:"Specify wether the chapter is enabled. It can be enabled/disabled by a Control Track. When disabled, the movie should skip all the content between the TimeStart and TimeEnd of this chapter (see flag notes). (1 bit)"},18016:{name:"FileMimeType",level:3,type:"s",mandatory:!0,minver:1,webm:!1,description:"MIME type of the file."},18017:{name:"FileUsedStartTime",level:3,type:"u",divx:!0,description:"DivX font extension"},18018:{name:"FileUsedEndTime",level:3,type:"u",divx:!0,description:"DivX font extension"},18037:{name:"FileReferral",level:3,type:"b",webm:!1,description:"A binary value that a track/codec can refer to when the attachment is needed."},20529:{name:"ContentEncodingOrder",level:5,type:"u",mandatory:!0,minver:1,webm:!1,default:0,description:"Tells when this modification was used during encoding/muxing starting with 0 and counting upwards. The decoder/demuxer has to start with the highest order number it finds and work its way down. This value has to be unique over all ContentEncodingOrder elements in the segment."},20530:{name:"ContentEncodingScope",level:5,type:"u",mandatory:!0,minver:1,webm:!1,default:1,range:"not 0",description:"A bit field that describes which elements have been modified in this way. Values (big endian) can be OR'ed. Possible values: 1 - all frame contents, 2 - the track's private data, 4 - the next ContentEncoding (next ContentEncodingOrder. Either the data inside ContentCompression and/or ContentEncryption)"},20531:{name:"ContentEncodingType",level:5,type:"u",mandatory:!0,minver:1,webm:!1,default:0,description:"A value describing what kind of transformation has been done. Possible values: 0 - compression, 1 - encryption"},20532:{name:"ContentCompression",level:5,type:"m",minver:1,webm:!1,description:"Settings describing the compression used. Must be present if the value of ContentEncodingType is 0 and absent otherwise. Each block must be decompressable even if no previous block is available in order not to prevent seeking."},20533:{name:"ContentEncryption",level:5,type:"m",minver:1,webm:!1,description:"Settings describing the encryption used. Must be present if the value of ContentEncodingType is 1 and absent otherwise."},21368:{name:"CueBlockNumber",level:4,type:"u",minver:1,default:1,range:"not 0",description:"Number of the Block in the specified Cluster."},22100:{name:"ChapterStringUID",level:4,type:"8",mandatory:!1,minver:3,webm:!0,description:"A unique string ID to identify the Chapter. Use for WebVTT cue identifier storage."},22337:{name:"WritingApp",level:2,type:"8",mandatory:!0,minver:1,description:'Writing application ("mkvmerge-0.3.3").'},22612:{name:"SilentTracks",cppname:"ClusterSilentTracks",level:2,type:"m",minver:1,webm:!1,description:"The list of tracks that are not used in that part of the stream. It is useful when using overlay tracks on seeking. Then you should decide what track to use."},25152:{name:"ContentEncoding",level:4,type:"m",mandatory:!0,multiple:!0,minver:1,webm:!1,description:"Settings for one content encoding like compression or encryption."},25188:{name:"BitDepth",cppname:"AudioBitDepth",level:4,type:"u",minver:1,range:"not 0",description:"Bits per sample, mostly used for PCM."},25906:{name:"SignedElement",level:3,type:"b",multiple:!0,webm:!1,description:"An element ID whose data will be used to compute the signature."},26148:{name:"TrackTranslate",level:3,type:"m",multiple:!0,minver:1,webm:!1,description:"The track identification for the given Chapter Codec."},26897:{name:"ChapProcessCommand",cppname:"ChapterProcessCommand",level:5,type:"m",multiple:!0,minver:1,webm:!1,description:"Contains all the commands associated to the Atom."},26914:{name:"ChapProcessTime",cppname:"ChapterProcessTime",level:6,type:"u",mandatory:!0,minver:1,webm:!1,description:"Defines when the process command should be handled (0: during the whole chapter, 1: before starting playback, 2: after playback of the chapter)."},26916:{name:"ChapterTranslate",level:2,type:"m",multiple:!0,minver:1,webm:!1,description:"A tuple of corresponding ID used by chapter codecs to represent this segment."},26931:{name:"ChapProcessData",cppname:"ChapterProcessData",level:6,type:"b",mandatory:!0,minver:1,webm:!1,description:"Contains the command information. The data should be interpreted depending on the ChapProcessCodecID value. For ChapProcessCodecID = 1, the data correspond to the binary DVD cell pre/post commands."},26948:{name:"ChapProcess",cppname:"ChapterProcess",level:4,type:"m",multiple:!0,minver:1,webm:!1,description:"Contains all the commands associated to the Atom."},26965:{name:"ChapProcessCodecID",cppname:"ChapterProcessCodecID",level:5,type:"u",mandatory:!0,minver:1,webm:!1,default:0,description:"Contains the type of the codec used for the processing. A value of 0 means native Matroska processing (to be defined), a value of 1 means the DVD command set is used. More codec IDs can be added later."},29555:{name:"Tag",level:2,type:"m",mandatory:!0,multiple:!0,minver:1,webm:!1,description:"Element containing elements specific to Tracks/Chapters."},29572:{name:"SegmentFilename",level:2,type:"8",minver:1,webm:!1,description:"A filename corresponding to this segment."},29766:{name:"AttachmentLink",cppname:"TrackAttachmentLink",level:3,type:"u",minver:1,webm:!1,range:"not 0",description:"The UID of an attachment that is used by this codec."},2459272:{name:"CodecName",level:3,type:"8",minver:1,description:"A human-readable string specifying the codec."},408125543:{name:"Segment",level:"0",type:"m",mandatory:!0,multiple:!0,minver:1,description:"This element contains all other top-level (level 1) elements. Typically a Matroska file is composed of 1 segment."},17530:{name:"TagLanguage",level:4,type:"s",mandatory:!0,minver:1,webm:!1,default:"und",description:"Specifies the language of the tag specified, in the Matroska languages form."},17827:{name:"TagName",level:4,type:"8",mandatory:!0,minver:1,webm:!1,description:"The name of the Tag that is going to be stored."},26568:{name:"SimpleTag",cppname:"TagSimple",level:3,recursive:"1",type:"m",mandatory:!0,multiple:!0,minver:1,webm:!1,description:"Contains general information about the target."},25542:{name:"TagAttachmentUID",level:4,type:"u",multiple:!0,minver:1,webm:!1,default:0,description:"A unique ID to identify the Attachment(s) the tags belong to. If the value is 0 at this level, the tags apply to all the attachments in the Segment."},25540:{name:"TagChapterUID",level:4,type:"u",multiple:!0,minver:1,webm:!1,default:0,description:"A unique ID to identify the Chapter(s) the tags belong to. If the value is 0 at this level, the tags apply to all chapters in the Segment."},25545:{name:"TagEditionUID",level:4,type:"u",multiple:!0,minver:1,webm:!1,default:0,description:"A unique ID to identify the EditionEntry(s) the tags belong to. If the value is 0 at this level, the tags apply to all editions in the Segment."},25541:{name:"TagTrackUID",level:4,type:"u",multiple:!0,minver:1,webm:!1,default:0,description:"A unique ID to identify the Track(s) the tags belong to. If the value is 0 at this level, the tags apply to all tracks in the Segment."},25546:{name:"TargetType",cppname:"TagTargetType",level:4,type:"s",minver:1,webm:!1,strong:"informational",description:'An string that can be used to display the logical level of the target like "ALBUM", "TRACK", "MOVIE", "CHAPTER", etc (see TargetType).'},26826:{name:"TargetTypeValue",cppname:"TagTargetTypeValue",level:4,type:"u",minver:1,webm:!1,default:50,description:"A number to indicate the logical level of the target (see TargetType)."},25536:{name:"Targets",cppname:"TagTargets",level:3,type:"m",mandatory:!0,minver:1,webm:!1,description:"Contain all UIDs where the specified meta data apply. It is empty to describe everything in the segment."},307544935:{name:"Tags",level:1,type:"m",multiple:!0,minver:1,webm:!1,description:"Element containing elements specific to Tracks/Chapters. A list of valid tags can be found here."},17677:{name:"ChapProcessPrivate",cppname:"ChapterProcessPrivate",level:5,type:"b",minver:1,webm:!1,description:'Some optional data attached to the ChapProcessCodecID information. For ChapProcessCodecID = 1, it is the "DVD level" equivalent.'},17278:{name:"ChapCountry",cppname:"ChapterCountry",level:5,type:"s",multiple:!0,minver:1,webm:!1,description:"The countries corresponding to the string, same 2 octets as in Internet domains."},17276:{name:"ChapLanguage",cppname:"ChapterLanguage",level:5,type:"s",mandatory:!0,multiple:!0,minver:1,webm:!0,default:"eng",description:"The languages corresponding to the string, in the bibliographic ISO-639-2 form."},143:{name:"ChapterTrack",level:4,type:"m",minver:1,webm:!1,description:"List of tracks on which the chapter applies. If this element is not present, all tracks apply"},25539:{name:"ChapterPhysicalEquiv",level:4,type:"u",minver:1,webm:!1,description:'Specify the physical equivalent of this ChapterAtom like "DVD" (60) or "SIDE" (50), see complete list of values.'},28348:{name:"ChapterSegmentEditionUID",level:4,type:"u",minver:1,webm:!1,range:"not 0",description:"The EditionUID to play from the segment linked in ChapterSegmentUID."},28263:{name:"ChapterSegmentUID",level:4,type:"b",minver:1,webm:!1,range:">0",bytesize:16,description:"A segment to play in place of this chapter. Edition ChapterSegmentEditionUID should be used for this segment, otherwise no edition is used."},29636:{name:"ChapterUID",level:4,type:"u",mandatory:!0,minver:1,webm:!0,range:"not 0",description:"A unique ID to identify the Chapter."},182:{name:"ChapterAtom",level:3,recursive:"1",type:"m",mandatory:!0,multiple:!0,minver:1,webm:!0,description:"Contains the atom information to use as the chapter atom (apply to all tracks)."},17885:{name:"EditionFlagOrdered",level:3,type:"u",minver:1,webm:!1,default:0,range:"0-1",description:"Specify if the chapters can be defined multiple times and the order to play them is enforced. (1 bit)"},17883:{name:"EditionFlagDefault",level:3,type:"u",mandatory:!0,minver:1,webm:!1,default:0,range:"0-1",description:"If a flag is set (1) the edition should be used as the default one. (1 bit)"},17853:{name:"EditionFlagHidden",level:3,type:"u",mandatory:!0,minver:1,webm:!1,default:0,range:"0-1",description:"If an edition is hidden (1), it should not be available to the user interface (but still to Control Tracks; see flag notes). (1 bit)"},17852:{name:"EditionUID",level:3,type:"u",minver:1,webm:!1,range:"not 0",description:"A unique ID to identify the edition. It's useful for tagging an edition."},17849:{name:"EditionEntry",level:2,type:"m",mandatory:!0,multiple:!0,minver:1,webm:!0,description:"Contains all information about a segment edition."},272869232:{name:"Chapters",level:1,type:"m",minver:1,webm:!0,description:"A system to define basic menus and partition data. For more detailed information, look at the Chapters Explanation."},18094:{name:"FileUID",level:3,type:"u",mandatory:!0,minver:1,webm:!1,range:"not 0",description:"Unique ID representing the file, as random as possible."},18012:{name:"FileData",level:3,type:"b",mandatory:!0,minver:1,webm:!1,description:"The data of the file."},18030:{name:"FileName",level:3,type:"8",mandatory:!0,minver:1,webm:!1,description:"Filename of the attached file."},18046:{name:"FileDescription",level:3,type:"8",minver:1,webm:!1,description:"A human-friendly name for the attached file."},24999:{name:"AttachedFile",level:2,type:"m",mandatory:!0,multiple:!0,minver:1,webm:!1,description:"An attached file."},423732329:{name:"Attachments",level:1,type:"m",minver:1,webm:!1,description:"Contain attached files."},235:{name:"CueRefCodecState",level:5,type:"u",webm:!1,default:0,description:"The position of the Codec State corresponding to this referenced element. 0 means that the data is taken from the initial Track Entry."},21343:{name:"CueRefNumber",level:5,type:"u",webm:!1,default:1,range:"not 0",description:"Number of the referenced Block of Track X in the specified Cluster."},219:{name:"CueReference",level:4,type:"m",multiple:!0,minver:2,webm:!1,description:"The Clusters containing the required referenced Blocks."},234:{name:"CueCodecState",level:4,type:"u",minver:2,webm:!1,default:0,description:"The position of the Codec State corresponding to this Cue element. 0 means that the data is taken from the initial Track Entry."},178:{name:"CueDuration",level:4,type:"u",mandatory:!1,minver:4,webm:!1,description:"The duration of the block according to the segment time base. If missing the track's DefaultDuration does not apply and no duration information is available in terms of the cues."},240:{name:"CueRelativePosition",level:4,type:"u",mandatory:!1,minver:4,webm:!1,description:"The relative position of the referenced block inside the cluster with 0 being the first possible position for an element inside that cluster.",position:"clusterRelative"},241:{name:"CueClusterPosition",level:4,type:"u",mandatory:!0,minver:1,description:"The position of the Cluster containing the required Block.",position:"segment"},247:{name:"CueTrack",level:4,type:"u",mandatory:!0,minver:1,range:"not 0",description:"The track for which a position is given."},183:{name:"CueTrackPositions",level:3,type:"m",mandatory:!0,multiple:!0,minver:1,description:"Contain positions for different tracks corresponding to the timestamp."},179:{name:"CueTime",level:3,type:"u",mandatory:!0,minver:1,description:"Absolute timestamp according to the segment time base."},187:{name:"CuePoint",level:2,type:"m",mandatory:!0,multiple:!0,minver:1,description:"Contains all information relative to a seek point in the segment."},475249515:{name:"Cues",level:1,type:"m",minver:1,description:'A top-level element to speed seeking access. All entries are local to the segment. Should be mandatory for non "live" streams.'},18406:{name:"ContentSigHashAlgo",level:6,type:"u",minver:1,webm:!1,default:0,description:"The hash algorithm used for the signature. A value of '0' means that the contents have not been signed but only encrypted. Predefined values: 1 - SHA1-160 2 - MD5"},18405:{name:"ContentSigAlgo",level:6,type:"u",minver:1,webm:!1,default:0,description:"The algorithm used for the signature. A value of '0' means that the contents have not been signed but only encrypted. Predefined values: 1 - RSA"},18404:{name:"ContentSigKeyID",level:6,type:"b",minver:1,webm:!1,description:"This is the ID of the private key the data was signed with."},18403:{name:"ContentSignature",level:6,type:"b",minver:1,webm:!1,description:"A cryptographic signature of the contents."},18402:{name:"ContentEncKeyID",level:6,type:"b",minver:1,webm:!1,description:"For public key algorithms this is the ID of the public key the the data was encrypted with."},18401:{name:"ContentEncAlgo",level:6,type:"u",minver:1,webm:!1,default:0,description:"The encryption algorithm used. The value '0' means that the contents have not been encrypted but only signed. Predefined values: 1 - DES, 2 - 3DES, 3 - Twofish, 4 - Blowfish, 5 - AES"},28032:{name:"ContentEncodings",level:3,type:"m",minver:1,webm:!1,description:"Settings for several content encoding mechanisms like compression or encryption."},196:{name:"TrickMasterTrackSegmentUID",level:3,type:"b",divx:!0,bytesize:16,description:"DivX trick track extenstions"},199:{name:"TrickMasterTrackUID",level:3,type:"u",divx:!0,description:"DivX trick track extenstions"},198:{name:"TrickTrackFlag",level:3,type:"u",divx:!0,default:0,description:"DivX trick track extenstions"},193:{name:"TrickTrackSegmentUID",level:3,type:"b",divx:!0,bytesize:16,description:"DivX trick track extenstions"},192:{name:"TrickTrackUID",level:3,type:"u",divx:!0,description:"DivX trick track extenstions"},237:{name:"TrackJoinUID",level:5,type:"u",mandatory:!0,multiple:!0,minver:3,webm:!1,range:"not 0",description:"The trackUID number of a track whose blocks are used to create this virtual track."},233:{name:"TrackJoinBlocks",level:4,type:"m",minver:3,webm:!1,description:"Contains the list of all tracks whose Blocks need to be combined to create this virtual track"},230:{name:"TrackPlaneType",level:6,type:"u",mandatory:!0,minver:3,webm:!1,description:"The kind of plane this track corresponds to (0: left eye, 1: right eye, 2: background)."},229:{name:"TrackPlaneUID",level:6,type:"u",mandatory:!0,minver:3,webm:!1,range:"not 0",description:"The trackUID number of the track representing the plane."},228:{name:"TrackPlane",level:5,type:"m",mandatory:!0,multiple:!0,minver:3,webm:!1,description:"Contains a video plane track that need to be combined to create this 3D track"},227:{name:"TrackCombinePlanes",level:4,type:"m",minver:3,webm:!1,description:"Contains the list of all video plane tracks that need to be combined to create this 3D track"},226:{name:"TrackOperation",level:3,type:"m",minver:3,webm:!1,description:"Operation that needs to be applied on tracks to create this virtual track. For more details look at the Specification Notes on the subject."},32123:{name:"ChannelPositions",cppname:"AudioPosition",level:4,type:"b",webm:!1,description:"Table of horizontal angles for each successive channel, see appendix."},159:{name:"Channels",cppname:"AudioChannels",level:4,type:"u",mandatory:!0,minver:1,default:1,range:"not 0",description:"Numbers of channels in the track."},30901:{name:"OutputSamplingFrequency",cppname:"AudioOutputSamplingFreq",level:4,type:"f",minver:1,default:"Sampling Frequency",range:"> 0",description:"Real output sampling frequency in Hz (used for SBR techniques)."},181:{name:"SamplingFrequency",cppname:"AudioSamplingFreq",level:4,type:"f",mandatory:!0,minver:1,default:8e3,range:"> 0",description:"Sampling frequency in Hz."},225:{name:"Audio",cppname:"TrackAudio",level:3,type:"m",minver:1,description:"Audio settings."},2327523:{name:"FrameRate",cppname:"VideoFrameRate",level:4,type:"f",range:"> 0",strong:"Informational",description:"Number of frames per second. only."},3126563:{name:"GammaValue",cppname:"VideoGamma",level:4,type:"f",webm:!1,range:"> 0",description:"Gamma Value."},3061028:{name:"ColourSpace",cppname:"VideoColourSpace",level:4,type:"b",minver:1,webm:!1,bytesize:4,description:"Same value as in AVI (32 bits)."},21683:{name:"AspectRatioType",cppname:"VideoAspectRatio",level:4,type:"u",minver:1,default:0,description:"Specify the possible modifications to the aspect ratio (0: free resizing, 1: keep aspect ratio, 2: fixed)."},21682:{name:"DisplayUnit",cppname:"VideoDisplayUnit",level:4,type:"u",minver:1,default:0,description:"How DisplayWidth & DisplayHeight should be interpreted (0: pixels, 1: centimeters, 2: inches, 3: Display Aspect Ratio)."},21690:{name:"DisplayHeight",cppname:"VideoDisplayHeight",level:4,type:"u",minver:1,default:"PixelHeight",range:"not 0",description:"Height of the video frames to display. The default value is only valid when DisplayUnit is 0."},21680:{name:"DisplayWidth",cppname:"VideoDisplayWidth",level:4,type:"u",minver:1,default:"PixelWidth",range:"not 0",description:"Width of the video frames to display. The default value is only valid when DisplayUnit is 0."},21725:{name:"PixelCropRight",cppname:"VideoPixelCropRight",level:4,type:"u",minver:1,default:0,description:"The number of video pixels to remove on the right of the image."},21708:{name:"PixelCropLeft",cppname:"VideoPixelCropLeft",level:4,type:"u",minver:1,default:0,description:"The number of video pixels to remove on the left of the image."},21691:{name:"PixelCropTop",cppname:"VideoPixelCropTop",level:4,type:"u",minver:1,default:0,description:"The number of video pixels to remove at the top of the image."},21674:{name:"PixelCropBottom",cppname:"VideoPixelCropBottom",level:4,type:"u",minver:1,default:0,description:"The number of video pixels to remove at the bottom of the image (for HDTV content)."},186:{name:"PixelHeight",cppname:"VideoPixelHeight",level:4,type:"u",mandatory:!0,minver:1,range:"not 0",description:"Height of the encoded video frames in pixels."},176:{name:"PixelWidth",cppname:"VideoPixelWidth",level:4,type:"u",mandatory:!0,minver:1,range:"not 0",description:"Width of the encoded video frames in pixels."},21433:{name:"OldStereoMode",level:4,type:"u",maxver:"0",webm:!1,divx:!1,description:"DEPRECATED, DO NOT USE. Bogus StereoMode value used in old versions of libmatroska. (0: mono, 1: right eye, 2: left eye, 3: both eyes)."},21440:{name:"AlphaMode",cppname:"VideoAlphaMode",level:4,type:"u",minver:3,webm:!0,default:0,description:"Alpha Video Mode. Presence of this element indicates that the BlockAdditional element could contain Alpha data."},21432:{name:"StereoMode",cppname:"VideoStereoMode",level:4,type:"u",minver:3,webm:!0,default:0,description:"Stereo-3D video mode (0: mono, 1: side by side (left eye is first), 2: top-bottom (right eye is first), 3: top-bottom (left eye is first), 4: checkboard (right is first), 5: checkboard (left is first), 6: row interleaved (right is first), 7: row interleaved (left is first), 8: column interleaved (right is first), 9: column interleaved (left is first), 10: anaglyph (cyan/red), 11: side by side (right eye is first), 12: anaglyph (green/magenta), 13 both eyes laced in one Block (left eye is first), 14 both eyes laced in one Block (right eye is first)) . There are some more details on 3D support in the Specification Notes."},154:{name:"FlagInterlaced",cppname:"VideoFlagInterlaced",level:4,type:"u",mandatory:!0,minver:2,webm:!0,default:0,range:"0-1",description:"Set if the video is interlaced. (1 bit)"},224:{name:"Video",cppname:"TrackVideo",level:3,type:"m",minver:1,description:"Video settings."},26277:{name:"TrackTranslateTrackID",level:4,type:"b",mandatory:!0,minver:1,webm:!1,description:"The binary value used to represent this track in the chapter codec data. The format depends on the ChapProcessCodecID used."},26303:{name:"TrackTranslateCodec",level:4,type:"u",mandatory:!0,minver:1,webm:!1,description:"The chapter codec using this ID (0: Matroska Script, 1: DVD-menu)."},26364:{name:"TrackTranslateEditionUID",level:4,type:"u",multiple:!0,minver:1,webm:!1,description:"Specify an edition UID on which this translation applies. When not specified, it means for all editions found in the segment."},22203:{name:"SeekPreRoll",level:3,type:"u",mandatory:!0,multiple:!1,default:0,minver:4,webm:!0,description:"After a discontinuity, SeekPreRoll is the duration in nanoseconds of the data the decoder must decode before the decoded data is valid."},22186:{name:"CodecDelay",level:3,type:"u",multiple:!1,default:0,minver:4,webm:!0,description:"CodecDelay is The codec-built-in delay in nanoseconds. This value must be subtracted from each block timestamp in order to get the actual timestamp. The value should be small so the muxing of tracks with the same actual timestamp are in the same Cluster."},28587:{name:"TrackOverlay",level:3,type:"u",multiple:!0,minver:1,webm:!1,description:"Specify that this track is an overlay track for the Track specified (in the u-integer). That means when this track has a gap (see SilentTracks) the overlay track should be used instead. The order of multiple TrackOverlay matters, the first one is the one that should be used. If not found it should be the second, etc."},170:{name:"CodecDecodeAll",level:3,type:"u",mandatory:!0,minver:2,webm:!1,default:1,range:"0-1",description:"The codec can decode potentially damaged data (1 bit)."},2536e3:{name:"CodecDownloadURL",level:3,type:"s",multiple:!0,webm:!1,description:"A URL to download about the codec used."},3883072:{name:"CodecInfoURL",level:3,type:"s",multiple:!0,webm:!1,description:"A URL to find information about the codec used."},3839639:{name:"CodecSettings",level:3,type:"8",webm:!1,description:"A string describing the encoding setting used."},25506:{name:"CodecPrivate",level:3,type:"b",minver:1,description:"Private data only known to the codec."},2274716:{name:"Language",cppname:"TrackLanguage",level:3,type:"s",minver:1,default:"eng",description:"Specifies the language of the track in the Matroska languages form."},21358:{name:"Name",cppname:"TrackName",level:3,type:"8",minver:1,description:"A human-readable track name."},21998:{name:"MaxBlockAdditionID",level:3,type:"u",mandatory:!0,minver:1,webm:!1,default:0,description:"The maximum value of BlockAdditions for this track."},21375:{name:"TrackOffset",level:3,type:"i",webm:!1,default:0,description:"A value to add to the Block's Timestamp. This can be used to adjust the playback offset of a track."},2306383:{name:"TrackTimecodeScale",level:3,type:"f",mandatory:!0,minver:1,maxver:"3",webm:!1,default:1,range:"> 0",description:"DEPRECATED, DO NOT USE. The scale to apply on this track to work at normal speed in relation with other tracks (mostly used to adjust video speed when the audio length differs)."},2313850:{name:"DefaultDecodedFieldDuration",cppname:"TrackDefaultDecodedFieldDuration",level:3,type:"u",minver:4,range:"not 0",description:"The period in nanoseconds (not scaled by TimcodeScale)\nbetween two successive fields at the output of the decoding process (see the notes)"},2352003:{name:"DefaultDuration",cppname:"TrackDefaultDuration",level:3,type:"u",minver:1,range:"not 0",description:"Number of nanoseconds (not scaled via TimecodeScale) per frame ('frame' in the Matroska sense -- one element put into a (Simple)Block)."},28152:{name:"MaxCache",cppname:"TrackMaxCache",level:3,type:"u",minver:1,webm:!1,description:"The maximum cache size required to store referenced frames in and the current frame. 0 means no cache is needed."},28135:{name:"MinCache",cppname:"TrackMinCache",level:3,type:"u",mandatory:!0,minver:1,webm:!1,default:0,description:"The minimum number of frames a player should be able to cache during playback. If set to 0, the reference pseudo-cache system is not used."},156:{name:"FlagLacing",cppname:"TrackFlagLacing",level:3,type:"u",mandatory:!0,minver:1,default:1,range:"0-1",description:"Set if the track may contain blocks using lacing. (1 bit)"},21930:{name:"FlagForced",cppname:"TrackFlagForced",level:3,type:"u",mandatory:!0,minver:1,default:0,range:"0-1",description:"Set if that track MUST be active during playback. There can be many forced track for a kind (audio, video or subs), the player should select the one which language matches the user preference or the default + forced track. Overlay MAY happen between a forced and non-forced track of the same kind. (1 bit)"},185:{name:"FlagEnabled",cppname:"TrackFlagEnabled",level:3,type:"u",mandatory:!0,minver:2,webm:!0,default:1,range:"0-1",description:"Set if the track is usable. (1 bit)"},29637:{name:"TrackUID",level:3,type:"u",mandatory:!0,minver:1,range:"not 0",description:"A unique ID to identify the Track. This should be kept the same when making a direct stream copy of the Track to another file."},215:{name:"TrackNumber",level:3,type:"u",mandatory:!0,minver:1,range:"not 0",description:"The track number as used in the Block Header (using more than 127 tracks is not encouraged, though the design allows an unlimited number)."},174:{name:"TrackEntry",level:2,type:"m",mandatory:!0,multiple:!0,minver:1,description:"Describes a track with all elements."},374648427:{name:"Tracks",level:1,type:"m",multiple:!0,minver:1,description:"A top-level block of information with many tracks described."},175:{name:"EncryptedBlock",level:2,type:"b",multiple:!0,webm:!1,description:"Similar to EncryptedBlock Structure)"},202:{name:"ReferenceTimeCode",level:4,type:"u",multiple:!1,mandatory:!0,minver:0,webm:!1,divx:!0,description:"DivX trick track extenstions"},201:{name:"ReferenceOffset",level:4,type:"u",multiple:!1,mandatory:!0,minver:0,webm:!1,divx:!0,description:"DivX trick track extenstions"},200:{name:"ReferenceFrame",level:3,type:"m",multiple:!1,minver:0,webm:!1,divx:!0,description:"DivX trick track extenstions"},207:{name:"SliceDuration",level:5,type:"u",default:0,description:"The (scaled) duration to apply to the element."},206:{name:"Delay",cppname:"SliceDelay",level:5,type:"u",default:0,description:"The (scaled) delay to apply to the element."},203:{name:"BlockAdditionID",cppname:"SliceBlockAddID",level:5,type:"u",default:0,description:"The ID of the BlockAdditional element (0 is the main Block)."},205:{name:"FrameNumber",cppname:"SliceFrameNumber",level:5,type:"u",default:0,description:"The number of the frame to generate from this lace with this delay (allow you to generate many frames from the same Block/Frame)."},204:{name:"LaceNumber",cppname:"SliceLaceNumber",level:5,type:"u",minver:1,default:0,divx:!1,description:"The reverse number of the frame in the lace (0 is the last frame, 1 is the next to last, etc). While there are a few files in the wild with this element, it is no longer in use and has been deprecated. Being able to interpret this element is not required for playback."},232:{name:"TimeSlice",level:4,type:"m",multiple:!0,minver:1,divx:!1,description:"Contains extra time information about the data contained in the Block. While there are a few files in the wild with this element, it is no longer in use and has been deprecated. Being able to interpret this element is not required for playback."},142:{name:"Slices",level:3,type:"m",minver:1,divx:!1,description:"Contains slices description."},30114:{name:"DiscardPadding",level:3,type:"i",minver:4,webm:!0,description:"Duration in nanoseconds of the silent data added to the Block (padding at the end of the Block for positive value, at the beginning of the Block for negative value). The duration of DiscardPadding is not calculated in the duration of the TrackEntry and should be discarded during playback."},164:{name:"CodecState",level:3,type:"b",minver:2,webm:!1,description:"The new codec state to use. Data interpretation is private to the codec. This information should always be referenced by a seek entry."},253:{name:"ReferenceVirtual",level:3,type:"i",webm:!1,description:"Relative position of the data that should be in position of the virtual block."},251:{name:"ReferenceBlock",level:3,type:"i",multiple:!0,minver:1,description:"Timestamp of another frame used as a reference (ie: B or P frame). The timestamp is relative to the block it's attached to."},250:{name:"ReferencePriority",cppname:"FlagReferenced",level:3,type:"u",mandatory:!0,minver:1,webm:!1,default:0,description:"This frame is referenced and has the specified cache priority. In cache only a frame of the same or higher priority can replace this frame. A value of 0 means the frame is not referenced."},155:{name:"BlockDuration",level:3,type:"u",minver:1,default:"TrackDuration",description:'The duration of the Block (based on TimecodeScale). This element is mandatory when DefaultDuration is set for the track (but can be omitted as other default values). When not written and with no DefaultDuration, the value is assumed to be the difference between the timestamp of this Block and the timestamp of the next Block in "display" order (not coding order). This element can be useful at the end of a Track (as there is not other Block available), or when there is a break in a track like for subtitle tracks. When set to 0 that means the frame is not a keyframe.'},165:{name:"BlockAdditional",level:5,type:"b",mandatory:!0,minver:1,webm:!1,description:"Interpreted by the codec as it wishes (using the BlockAddID)."},238:{name:"BlockAddID",level:5,type:"u",mandatory:!0,minver:1,webm:!1,default:1,range:"not 0",description:"An ID to identify the BlockAdditional level."},166:{name:"BlockMore",level:4,type:"m",mandatory:!0,multiple:!0,minver:1,webm:!1,description:"Contain the BlockAdditional and some parameters."},30113:{name:"BlockAdditions",level:3,type:"m",minver:1,webm:!1,description:"Contain additional blocks to complete the main one. An EBML parser that has no knowledge of the Block structure could still see and use/skip these data."},162:{name:"BlockVirtual",level:3,type:"b",webm:!1,description:"A Block with no data. It must be stored in the stream at the place the real Block should be in display order. (see Block Virtual)"},161:{name:"Block",level:3,type:"b",mandatory:!0,minver:1,description:"Block containing the actual data to be rendered and a timestamp relative to the Cluster Timecode. (see Block Structure)"},160:{name:"BlockGroup",level:2,type:"m",multiple:!0,minver:1,description:"Basic container of information containing a single Block or BlockVirtual, and information specific to that Block/VirtualBlock."},163:{name:"SimpleBlock",level:2,type:"b",multiple:!0,minver:2,webm:!0,divx:!0,description:"Similar to SimpleBlock Structure"},171:{name:"PrevSize",cppname:"ClusterPrevSize",level:2,type:"u",minver:1,description:"Size of the previous Cluster, in octets. Can be useful for backward playing.",position:"prevCluster"},167:{name:"Position",cppname:"ClusterPosition",level:2,type:"u",minver:1,webm:!1,description:"The Position of the Cluster in the segment (0 in live broadcast streams). It might help to resynchronise offset on damaged streams.",position:"segment"},22743:{name:"SilentTrackNumber",cppname:"ClusterSilentTrackNumber",level:3,type:"u",multiple:!0,minver:1,webm:!1,description:"One of the track number that are not used from now on in the stream. It could change later if not specified as silent in a further Cluster."},231:{name:"Timecode",cppname:"ClusterTimecode",level:2,type:"u",mandatory:!0,minver:1,description:"Absolute timestamp of the cluster (based on TimecodeScale)."},524531317:{name:"Cluster",level:1,type:"m",multiple:!0,minver:1,description:"The lower level element containing the (monolithic) Block structure."},19840:{name:"MuxingApp",level:2,type:"8",mandatory:!0,minver:1,description:'Muxing application or library ("libmatroska-0.4.3").'},31657:{name:"Title",level:2,type:"8",minver:1,webm:!1,description:"General name of the segment."},2807730:{name:"TimecodeScaleDenominator",level:2,type:"u",mandatory:!0,minver:4,default:"1000000000",description:"Timestamp scale numerator, see TimecodeScale."},2807729:{name:"TimecodeScale",level:2,type:"u",mandatory:!0,minver:1,default:"1000000",description:"Timestamp scale in nanoseconds (1.000.000 means all timestamps in the segment are expressed in milliseconds)."},27045:{name:"ChapterTranslateID",level:3,type:"b",mandatory:!0,minver:1,webm:!1,description:"The binary value used to represent this segment in the chapter codec data. The format depends on the ChapProcessCodecID used."},27071:{name:"ChapterTranslateCodec",level:3,type:"u",mandatory:!0,minver:1,webm:!1,description:"The chapter codec using this ID (0: Matroska Script, 1: DVD-menu)."},27132:{name:"ChapterTranslateEditionUID",level:3,type:"u",multiple:!0,minver:1,webm:!1,description:"Specify an edition UID on which this correspondance applies. When not specified, it means for all editions found in the segment."},4096955:{name:"NextFilename",level:2,type:"8",minver:1,webm:!1,description:"An escaped filename corresponding to the next segment."},4110627:{name:"NextUID",level:2,type:"b",minver:1,webm:!1,bytesize:16,description:"A unique ID to identify the next chained segment (128 bits)."},3965867:{name:"PrevFilename",level:2,type:"8",minver:1,webm:!1,description:"An escaped filename corresponding to the previous segment."},3979555:{name:"PrevUID",level:2,type:"b",minver:1,webm:!1,bytesize:16,description:"A unique ID to identify the previous chained segment (128 bits)."},29604:{name:"SegmentUID",level:2,type:"b",minver:1,webm:!1,range:"not 0",bytesize:16,description:"A randomly generated unique ID to identify the current segment between many others (128 bits)."},357149030:{name:"Info",level:1,type:"m",mandatory:!0,multiple:!0,minver:1,description:"Contains miscellaneous general information and statistics on the file."},21420:{name:"SeekPosition",level:3,type:"u",mandatory:!0,minver:1,description:"The position of the element in the segment in octets (0 = first level 1 element).",position:"segment"},21419:{name:"SeekID",level:3,type:"b",mandatory:!0,minver:1,description:"The binary ID corresponding to the element name.",type2:"ebmlID"},19899:{name:"Seek",cppname:"SeekPoint",level:2,type:"m",mandatory:!0,multiple:!0,minver:1,description:"Contains a single seek entry to an EBML element."},290298740:{name:"SeekHead",cppname:"SeekHeader",level:1,type:"m",multiple:!0,minver:1,description:"Contains the position of other level 1 elements."},32379:{name:"SignatureElementList",level:2,type:"m",multiple:!0,webm:!1,i:"Cluster|Block|BlockAdditional",description:"A list consists of a number of consecutive elements that represent one case where data is used in signature. Ex: means that the BlockAdditional of all Blocks in all Clusters is used for encryption."},32347:{name:"SignatureElements",level:1,type:"m",webm:!1,description:"Contains elements that will be used to compute the signature."},32437:{name:"Signature",level:1,type:"b",webm:!1,description:"The signature of the data (until a new."},32421:{name:"SignaturePublicKey",level:1,type:"b",webm:!1,description:"The public key to use with the algorithm (in the case of a PKI-based signature)."},32410:{name:"SignatureHash",level:1,type:"u",webm:!1,description:"Hash algorithm used (1=SHA1-160, 2=MD5)."},32394:{name:"SignatureAlgo",level:1,type:"u",webm:!1,description:"Signature algorithm used (1=RSA, 2=elliptic)."},458458727:{name:"SignatureSlot",level:-1,type:"m",multiple:!0,webm:!1,description:"Contain signature of some (coming) elements in the stream."},191:{name:"CRC-32",level:-1,type:"b",minver:1,webm:!1,description:"The CRC is computed on all the data of the Master element it's in. The CRC element should be the first in it's parent master for easier reading. All level 1 elements should include a CRC-32. The CRC in use is the IEEE CRC32 Little Endian",crc:!0},236:{name:"Void",level:-1,type:"b",minver:1,description:"Used to void damaged data, to avoid unexpected behaviors when using damaged data. The content is discarded. Also used to reserve space in a sub-element for later use."},17139:{name:"EBMLMaxSizeLength",level:1,type:"u",mandatory:!0,default:8,minver:1,description:"The maximum length of the sizes you'll find in this file (8 or less in Matroska). This does not override the element size indicated at the beginning of an element. Elements that have an indicated size which is larger than what is allowed by EBMLMaxSizeLength shall be considered invalid."},17138:{name:"EBMLMaxIDLength",level:1,type:"u",mandatory:!0,default:4,minver:1,description:"The maximum length of the IDs you'll find in this file (4 or less in Matroska)."},17143:{name:"EBMLReadVersion",level:1,type:"u",mandatory:!0,default:1,minver:1,description:"The minimum EBML version a parser has to support to read this file."},440786851:{name:"EBML",level:"0",type:"m",mandatory:!0,multiple:!0,minver:1,description:"Set the EBML characteristics of the data to follow. Each EBML document has to start with this."},21936:{name:"Colour",level:"4",type:"m",mandatory:!0,multiple:!0,description:"Settings describing the colour format."},21937:{name:"MatrixCoefficients",level:"5",type:"u",mandatory:!0,multiple:!0,description:"The Matrix Coefficients of the video used to derive luma and chroma values from red, green, and blue color primaries. For clarity, the value and meanings for MatrixCoefficients are adopted from Table 4 of ISO/IEC 23001-8:2016 or ITU-T H.273."},21945:{name:"Range",level:"5",type:"u",mandatory:!0,multiple:!0,description:"Clipping of the color ranges."},21946:{name:"TransferCharacteristics",level:"5",type:"u",mandatory:!0,multiple:!0,description:"The transfer characteristics of the video."},21947:{name:"Primaries",level:"5",type:"u",mandatory:!0,multiple:!0,description:"The colour primaries of the video. For clarity, the value and meanings for Primaries are adopted from Table 2 of ISO/IEC 23091-4 or ITU-T H.273."}}},1384:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),i=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.tools=t.Reader=t.Encoder=t.Decoder=void 0,i(n(4990),t);var o=n(2800);t.Decoder=o.default;var a=n(8031);t.Encoder=a.default;var s=n(1381);t.Reader=s.default;var l=n(3210);t.tools=l},190:function(e,t,n){"use strict";var r=this&&this.__assign||function(){return r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n8){var i=e.readHexString(t,n,n+r);throw new Error("Unrepresentable length: ".concat(r," ").concat(i))}if(n+r>t.length)return null;for(var o=t[n]&(1<<8-r)-1,a=1;a=Math.pow(2,8)&&t[n+7]>0)return{length:r,value:-1};o*=Math.pow(2,8),o+=t[n+a]}return{length:r,value:o}},e.writeVint=function(e){if(e<0||e>Math.pow(2,53))throw new Error("Unrepresentable value: ".concat(e));var t=1;for(t=1;t<=8&&!(e{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.convertEBMLDateToJSDate=t.createFloatBuffer=t.createIntBuffer=t.createUIntBuffer=t.encodeValueToBuffer=t.concat=t.putRefinedMetaData=t.extractElement=t.removeElement=t.makeMetadataSeekable=t.createRIFFChunk=t.VP8BitStreamToRiffWebPBuffer=t.WebPBlockFilter=t.encodeTag=t.readBlock=t.ebmlBlock=t.writeVint=t.readVint=t.Buffer=void 0;var r=n(1166),i=n(8031),o=n(8764),a=n(190),s=n(1586);function l(e,n){var r=new t.Buffer(4);return r.writeUInt32LE(n.byteLength,0),d([new t.Buffer(e.substr(0,4),"ascii"),r,n,new t.Buffer(n.byteLength%2==0?0:1)])}function u(e,t){for(var n=-1,r=0;r=0?Array.prototype.splice.apply(e,[i+1,0].concat(n)):r?[].concat([{name:t,type:"m",isEnd:!1}],n,[{name:t,type:"m",isEnd:!0}]).reverse().forEach((function(t){e.unshift(t)})):(e.push({name:t,type:"m",isEnd:!1}),n.forEach((function(t){e.push(t)})),e.push({name:t,type:"m",isEnd:!0}))}function d(e){return t.Buffer.concat(e)}function m(e){for(var n=1;e>=Math.pow(2,8*n);n++);if(n>=7)return console.warn("7bit or more bigger uint not supported."),new r.Uint64BE(e).toBuffer();var i=new t.Buffer(n);return i.writeUIntBE(e,0,n),i}function y(e){for(var n=1;e>=Math.pow(2,8*n);n++);if(n>=7)return console.warn("7bit or more bigger uint not supported."),new r.Int64BE(e).toBuffer();var i=new t.Buffer(n);return i.writeIntBE(e,0,n),i}function g(e,n){var r;if(void 0===n&&(n=8),8===n)return(r=new t.Buffer(8)).writeDoubleBE(e,0),r;if(4===n)return(r=new t.Buffer(4)).writeFloatBE(e,0),r;throw new Error("float type bits must 4bytes or 8bytes")}t.Buffer=o.Buffer,t.readVint=a.default.readVint,t.writeVint=a.default.writeVint,t.ebmlBlock=s,t.readBlock=function(e){return(0,t.ebmlBlock)(new t.Buffer(e))},t.encodeTag=function(e,n,r){return void 0===r&&(r=!1),d([e,r?new t.Buffer("01ffffffffffffff","hex"):(0,t.writeVint)(n.length),n])},t.WebPBlockFilter=function(e){return e.reduce((function(e,n){return"b"!==n.type||"SimpleBlock"!==n.name?e:(0,t.ebmlBlock)(n.data).frames.some((function(e){return"9d012a"===e.slice(3,6).toString("hex")}))?e.concat(n):e}),[])},t.VP8BitStreamToRiffWebPBuffer=function(e){var n=l("VP8 ",e);return l("RIFF",d([new t.Buffer("WEBP","ascii"),n]))},t.createRIFFChunk=l,t.makeMetadataSeekable=function(e,n,r){var o=c("EBML",e),a=f(o)+12,s=e[e.length-1].dataEnd-a,l=c("Info",e);u("Duration",l),l.splice(1,0,{name:"Duration",type:"f",data:g(n,8)});for(var h=f(l),p=c("Tracks",e),d=f(p),y=47,v=[],b=5+15*r.length,w=[],k=-1,T=function(e){var n=y,i=n+h,o=i+d,l=o+b-s;if((v=[]).push({name:"SeekHead",type:"m",isEnd:!1}),v.push({name:"Seek",type:"m",isEnd:!1}),v.push({name:"SeekID",type:"b",data:new t.Buffer([21,73,169,102])}),v.push({name:"SeekPosition",type:"u",data:m(n)}),v.push({name:"Seek",type:"m",isEnd:!0}),v.push({name:"Seek",type:"m",isEnd:!1}),v.push({name:"SeekID",type:"b",data:new t.Buffer([22,84,174,107])}),v.push({name:"SeekPosition",type:"u",data:m(i)}),v.push({name:"Seek",type:"m",isEnd:!0}),v.push({name:"Seek",type:"m",isEnd:!1}),v.push({name:"SeekID",type:"b",data:new t.Buffer([28,83,187,107])}),v.push({name:"SeekPosition",type:"u",data:m(o)}),v.push({name:"Seek",type:"m",isEnd:!0}),v.push({name:"SeekHead",type:"m",isEnd:!0}),y=f(v),(w=[]).push({name:"Cues",type:"m",isEnd:!1}),r.forEach((function(e){var t=e.CueTrack,n=e.CueClusterPosition,r=e.CueTime;w.push({name:"CuePoint",type:"m",isEnd:!1}),w.push({name:"CueTime",type:"u",data:m(r)}),w.push({name:"CueTrackPositions",type:"m",isEnd:!1}),w.push({name:"CueTrack",type:"u",data:m(t)}),n-=a,n+=l,w.push({name:"CueClusterPosition",type:"u",data:m(n)}),w.push({name:"CueTrackPositions",type:"m",isEnd:!0}),w.push({name:"CuePoint",type:"m",isEnd:!0})})),w.push({name:"Cues",type:"m",isEnd:!0}),b=f(w),k===l)return"break";if(k=l,9===e)throw new Error("Failed to converge to a stable metadata size")},E=0;E<10;E++){if("break"===T(E))break}var C=[].concat.apply([],[o,{name:"Segment",type:"m",isEnd:!1,unknownSize:!0},v,l,p,w]);return(new i.default).encode(C)},t.removeElement=u,t.extractElement=c,t.putRefinedMetaData=function(e,n){Array.isArray(n.cueInfos)&&!Array.isArray(n.cues)&&(console.warn("putRefinedMetaData: info.cueInfos property is deprecated. please use info.cues"),n.cues=n.cueInfos);for(var r=[],o=[],a=0;a0))throw new Error("metadata dataEnd has wrong number");var l,u=o[o.length-1].dataEnd,c=r[r.length-1].dataEnd,f=(new i.default).encode(r).byteLength-c,p=u-o[0].tagStart,d=(o[0].tagStart,o[0].tagStart,new t.Buffer([24,83,128,103])),m=new t.Buffer("01ffffffffffffff","hex"),y=d.byteLength+m.byteLength,g=p;for(l=1;l<20;l++){var v=h(o,f+(c+y+g-u),n),b=(new i.default).encode(v).byteLength;if(b===g)return(new i.default).encode([].concat(r,[{type:"m",name:"Segment",isEnd:!1,unknownSize:!0}],v));g=b}throw new Error("unable to refine metadata, stable size could not be found in "+l+" iterations!")},t.concat=d,t.encodeValueToBuffer=function(e){var n=new t.Buffer(0);if("m"===e.type)return e;switch(e.type){case"u":n=m(e.value);break;case"i":n=y(e.value);break;case"f":n=g(e.value);break;case"s":n=new t.Buffer(e.value,"ascii");break;case"8":n=new t.Buffer(e.value,"utf8");break;case"b":n=e.value;break;case"d":n=new r.Int64BE(e.value.getTime().toString()).toBuffer()}return Object.assign({},e,{data:n})},t.createUIntBuffer=m,t.createIntBuffer=y,t.createFloatBuffer=g,t.convertEBMLDateToJSDate=function(e){return e instanceof Date?e:new Date(new Date("2001-01-01T00:00:00.000Z").getTime()+Number(e)/1e3/1e3)}},8246:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(e){o(e)}}function s(e){try{l(r.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1] 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","var BufferReader = require('./lib/buffer-reader')\n\nvar XIPH_LACING = 1\nvar EBML_LACING = 3\nvar FIXED_SIZE_LACING = 2\n\nmodule.exports = function (buffer) {\n var block = {}\n var reader = new BufferReader(buffer)\n\n block.trackNumber = reader.nextUIntV()\n block.timecode = reader.nextInt16BE()\n\n var flags = reader.nextUInt8()\n\n block.invisible = !!(flags & 0x8)\n\n // only valid for SimpleBlock\n block.keyframe = !!(flags & 0x80)\n block.discardable = !!(flags & 0x1)\n\n var lacing = (flags & 0x6) >> 1\n\n block.frames = readLacedData(reader, lacing)\n\n return block\n}\n\nfunction readLacedData (reader, lacing) {\n if (!lacing) return [reader.nextBuffer()]\n\n var i, frameSize\n var frames = []\n var framesNum = reader.nextUInt8() + 1 // number of frames\n\n if (lacing === FIXED_SIZE_LACING) {\n // remaining data should be divisible by the number of frames\n if (reader.length % framesNum !== 0) throw new Error('Fixed-Size Lacing Error')\n\n frameSize = reader.length / framesNum\n for (i = 0; i < framesNum; i++) {\n frames.push(reader.nextBuffer(frameSize))\n }\n return frames\n }\n\n var frameSizes = []\n\n if (lacing === XIPH_LACING) {\n for (i = 0; i < framesNum - 1; i++) {\n var val\n frameSize = 0\n do {\n val = reader.nextUInt8()\n frameSize += val\n } while (val === 0xff)\n frameSizes.push(frameSize)\n }\n } else if (lacing === EBML_LACING) {\n // first frame\n frameSize = reader.nextUIntV()\n frameSizes.push(frameSize)\n\n // middle frames\n for (i = 1; i < framesNum - 1; i++) {\n frameSize += reader.nextIntV()\n frameSizes.push(frameSize)\n }\n }\n\n for (i = 0; i < framesNum - 1; i++) {\n frames.push(reader.nextBuffer(frameSizes[i]))\n }\n\n // last frame (remaining buffer)\n frames.push(reader.nextBuffer())\n\n return frames\n}\n","var vint = require('./vint')\n\nfunction BufferReader (buffer) {\n this.buffer = buffer\n this.offset = 0\n}\n\n// a super limited subset of the node buffer API\nBufferReader.prototype.nextInt16BE = function () {\n var value = this.buffer.readInt16BE(this.offset)\n this.offset += 2\n return value\n}\n\nBufferReader.prototype.nextUInt8 = function () {\n var value = this.buffer.readUInt8(this.offset)\n this.offset += 1\n return value\n}\n\n// EBML variable sized integers\nBufferReader.prototype.nextUIntV = function () {\n var v = vint(this.buffer, this.offset)\n this.offset += v.length\n return v.value\n}\n\nBufferReader.prototype.nextIntV = function () {\n var v = vint(this.buffer, this.offset, true)\n this.offset += v.length\n return v.value\n}\n\n// buffer slice\nBufferReader.prototype.nextBuffer = function (length) {\n var buffer = length\n ? this.buffer.slice(this.offset, this.offset + length)\n : this.buffer.slice(this.offset)\n this.offset += length || this.length\n return buffer\n}\n\n// remaining bytes to read\nObject.defineProperty(BufferReader.prototype, 'length', {\n get: function () { return this.buffer.length - this.offset }\n})\n\nmodule.exports = BufferReader\n","// https://github.com/themasch/node-ebml/blob/master/lib/ebml/tools.js\nmodule.exports = function (buffer, start, signed) {\n start = start || 0\n for (var length = 1; length <= 8; length++) {\n if (buffer[start] >= Math.pow(2, 8 - length)) {\n break\n }\n }\n if (length > 8) {\n throw new Error('Unrepresentable length: ' + length + ' ' +\n buffer.toString('hex', start, start + length))\n }\n if (start + length > buffer.length) {\n return null\n }\n var i\n var value = buffer[start] & (1 << (8 - length)) - 1\n for (i = 1; i < length; i++) {\n if (i === 7) {\n if (value >= Math.pow(2, 53 - 8) && buffer[start + 7] > 0) {\n return {\n length: length,\n value: -1\n }\n }\n }\n value *= Math.pow(2, 8)\n value += buffer[start + i]\n }\n if (signed) {\n value -= Math.pow(2, length * 7 - 1) - 1\n }\n return {\n length: length,\n value: value\n }\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","// int64-buffer.js\n\n/*jshint -W018 */ // Confusing use of '!'.\n/*jshint -W030 */ // Expected an assignment or function call and instead saw an expression.\n/*jshint -W093 */ // Did you mean to return a conditional instead of an assignment?\n\nvar Uint64BE, Int64BE, Uint64LE, Int64LE;\n\n!function(exports) {\n // constants\n\n var UNDEFINED = \"undefined\";\n var BUFFER = (UNDEFINED !== typeof Buffer) && Buffer;\n var UINT8ARRAY = (UNDEFINED !== typeof Uint8Array) && Uint8Array;\n var ARRAYBUFFER = (UNDEFINED !== typeof ArrayBuffer) && ArrayBuffer;\n var ZERO = [0, 0, 0, 0, 0, 0, 0, 0];\n var isArray = Array.isArray || _isArray;\n var BIT32 = 4294967296;\n var BIT24 = 16777216;\n\n // storage class\n\n var storage; // Array;\n\n // generate classes\n\n Uint64BE = factory(\"Uint64BE\", true, true);\n Int64BE = factory(\"Int64BE\", true, false);\n Uint64LE = factory(\"Uint64LE\", false, true);\n Int64LE = factory(\"Int64LE\", false, false);\n\n // class factory\n\n function factory(name, bigendian, unsigned) {\n var posH = bigendian ? 0 : 4;\n var posL = bigendian ? 4 : 0;\n var pos0 = bigendian ? 0 : 3;\n var pos1 = bigendian ? 1 : 2;\n var pos2 = bigendian ? 2 : 1;\n var pos3 = bigendian ? 3 : 0;\n var fromPositive = bigendian ? fromPositiveBE : fromPositiveLE;\n var fromNegative = bigendian ? fromNegativeBE : fromNegativeLE;\n var proto = Int64.prototype;\n var isName = \"is\" + name;\n var _isInt64 = \"_\" + isName;\n\n // properties\n proto.buffer = void 0;\n proto.offset = 0;\n proto[_isInt64] = true;\n\n // methods\n proto.toNumber = toNumber;\n proto.toString = toString;\n proto.toJSON = toNumber;\n proto.toArray = toArray;\n\n // add .toBuffer() method only when Buffer available\n if (BUFFER) proto.toBuffer = toBuffer;\n\n // add .toArrayBuffer() method only when Uint8Array available\n if (UINT8ARRAY) proto.toArrayBuffer = toArrayBuffer;\n\n // isUint64BE, isInt64BE\n Int64[isName] = isInt64;\n\n // CommonJS\n exports[name] = Int64;\n\n return Int64;\n\n // constructor\n function Int64(buffer, offset, value, raddix) {\n if (!(this instanceof Int64)) return new Int64(buffer, offset, value, raddix);\n return init(this, buffer, offset, value, raddix);\n }\n\n // isUint64BE, isInt64BE\n function isInt64(b) {\n return !!(b && b[_isInt64]);\n }\n\n // initializer\n function init(that, buffer, offset, value, raddix) {\n if (UINT8ARRAY && ARRAYBUFFER) {\n if (buffer instanceof ARRAYBUFFER) buffer = new UINT8ARRAY(buffer);\n if (value instanceof ARRAYBUFFER) value = new UINT8ARRAY(value);\n }\n\n // Int64BE() style\n if (!buffer && !offset && !value && !storage) {\n // shortcut to initialize with zero\n that.buffer = newArray(ZERO, 0);\n return;\n }\n\n // Int64BE(value, raddix) style\n if (!isValidBuffer(buffer, offset)) {\n var _storage = storage || Array;\n raddix = offset;\n value = buffer;\n offset = 0;\n buffer = (storage === BUFFER) ? BUFFER.alloc(8) : new _storage(8);\n }\n\n that.buffer = buffer;\n that.offset = offset |= 0;\n\n // Int64BE(buffer, offset) style\n if (UNDEFINED === typeof value) return;\n\n // Int64BE(buffer, offset, value, raddix) style\n if (\"string\" === typeof value) {\n fromString(buffer, offset, value, raddix || 10);\n } else if (isValidBuffer(value, raddix)) {\n fromArray(buffer, offset, value, raddix);\n } else if (\"number\" === typeof raddix) {\n writeInt32(buffer, offset + posH, value); // high\n writeInt32(buffer, offset + posL, raddix); // low\n } else if (value > 0) {\n fromPositive(buffer, offset, value); // positive\n } else if (value < 0) {\n fromNegative(buffer, offset, value); // negative\n } else {\n fromArray(buffer, offset, ZERO, 0); // zero, NaN and others\n }\n }\n\n function fromString(buffer, offset, str, raddix) {\n var pos = 0;\n var len = str.length;\n var high = 0;\n var low = 0;\n if (str[0] === \"-\") pos++;\n var sign = pos;\n while (pos < len) {\n var chr = parseInt(str[pos++], raddix);\n if (!(chr >= 0)) break; // NaN\n low = low * raddix + chr;\n high = high * raddix + Math.floor(low / BIT32);\n low %= BIT32;\n }\n if (sign) {\n high = ~high;\n if (low) {\n low = BIT32 - low;\n } else {\n high++;\n }\n }\n writeInt32(buffer, offset + posH, high);\n writeInt32(buffer, offset + posL, low);\n }\n\n function toNumber() {\n var buffer = this.buffer;\n var offset = this.offset;\n var high = readInt32(buffer, offset + posH);\n var low = readInt32(buffer, offset + posL);\n if (!unsigned) high |= 0; // a trick to get signed\n return high ? (high * BIT32 + low) : low;\n }\n\n function toString(radix) {\n var buffer = this.buffer;\n var offset = this.offset;\n var high = readInt32(buffer, offset + posH);\n var low = readInt32(buffer, offset + posL);\n var str = \"\";\n var sign = !unsigned && (high & 0x80000000);\n if (sign) {\n high = ~high;\n low = BIT32 - low;\n }\n radix = radix || 10;\n while (1) {\n var mod = (high % radix) * BIT32 + low;\n high = Math.floor(high / radix);\n low = Math.floor(mod / radix);\n str = (mod % radix).toString(radix) + str;\n if (!high && !low) break;\n }\n if (sign) {\n str = \"-\" + str;\n }\n return str;\n }\n\n function writeInt32(buffer, offset, value) {\n buffer[offset + pos3] = value & 255;\n value = value >> 8;\n buffer[offset + pos2] = value & 255;\n value = value >> 8;\n buffer[offset + pos1] = value & 255;\n value = value >> 8;\n buffer[offset + pos0] = value & 255;\n }\n\n function readInt32(buffer, offset) {\n return (buffer[offset + pos0] * BIT24) +\n (buffer[offset + pos1] << 16) +\n (buffer[offset + pos2] << 8) +\n buffer[offset + pos3];\n }\n }\n\n function toArray(raw) {\n var buffer = this.buffer;\n var offset = this.offset;\n storage = null; // Array\n\n if (raw !== false && isArray(buffer)) {\n return (buffer.length === 8) ? buffer : buffer.slice(offset, offset + 8);\n }\n\n return newArray(buffer, offset);\n }\n\n function toBuffer(raw) {\n var buffer = this.buffer;\n var offset = this.offset;\n storage = BUFFER;\n\n if (raw !== false && BUFFER.isBuffer(buffer)) {\n return (buffer.length === 8) ? buffer : buffer.slice(offset, offset + 8);\n }\n\n // Buffer.from(arraybuffer) available since Node v4.5.0\n // https://nodejs.org/en/blog/release/v4.5.0/\n return BUFFER.from(toArrayBuffer.call(this, raw));\n }\n\n function toArrayBuffer(raw) {\n var buffer = this.buffer;\n var offset = this.offset;\n var arrbuf = buffer.buffer;\n storage = UINT8ARRAY;\n\n // arrbuf.slice() ignores buffer.offset until Node v8.0.0\n if (raw !== false && !buffer.offset && (arrbuf instanceof ARRAYBUFFER)) {\n return (arrbuf.byteLength === 8) ? arrbuf : arrbuf.slice(offset, offset + 8);\n }\n\n var dest = new UINT8ARRAY(8);\n fromArray(dest, 0, buffer, offset);\n return dest.buffer;\n }\n\n function isValidBuffer(buffer, offset) {\n var len = buffer && buffer.length;\n offset |= 0;\n return len && (offset + 8 <= len) && (\"string\" !== typeof buffer[offset]);\n }\n\n function fromArray(destbuf, destoff, srcbuf, srcoff) {\n destoff |= 0;\n srcoff |= 0;\n for (var i = 0; i < 8; i++) {\n destbuf[destoff++] = srcbuf[srcoff++] & 255;\n }\n }\n\n function newArray(buffer, offset) {\n return Array.prototype.slice.call(buffer, offset, offset + 8);\n }\n\n function fromPositiveBE(buffer, offset, value) {\n var pos = offset + 8;\n while (pos > offset) {\n buffer[--pos] = value & 255;\n value /= 256;\n }\n }\n\n function fromNegativeBE(buffer, offset, value) {\n var pos = offset + 8;\n value++;\n while (pos > offset) {\n buffer[--pos] = ((-value) & 255) ^ 255;\n value /= 256;\n }\n }\n\n function fromPositiveLE(buffer, offset, value) {\n var end = offset + 8;\n while (offset < end) {\n buffer[offset++] = value & 255;\n value /= 256;\n }\n }\n\n function fromNegativeLE(buffer, offset, value) {\n var end = offset + 8;\n value++;\n while (offset < end) {\n buffer[offset++] = ((-value) & 255) ^ 255;\n value /= 256;\n }\n }\n\n // https://github.com/retrofox/is-array\n function _isArray(val) {\n return !!val && \"[object Array]\" == Object.prototype.toString.call(val);\n }\n\n}(typeof exports === 'object' && typeof exports.nodeName !== 'string' ? exports : (this || {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar int64_buffer_1 = require(\"int64-buffer\");\nvar tools_1 = require(\"./tools\");\nvar tools = require(\"./tools\");\nvar ebmlID_1 = require(\"./ebmlID\");\nvar State;\n(function (State) {\n State[State[\"STATE_TAG\"] = 1] = \"STATE_TAG\";\n State[State[\"STATE_SIZE\"] = 2] = \"STATE_SIZE\";\n State[State[\"STATE_CONTENT\"] = 3] = \"STATE_CONTENT\";\n})(State || (State = {}));\nvar EBMLDecoder = /** @class */ (function () {\n function EBMLDecoder() {\n this._buffer = new tools_1.Buffer(0);\n this._tag_stack = [];\n this._state = State.STATE_TAG;\n this._cursor = 0;\n this._total = 0;\n this._schema = ebmlID_1.byEbmlID;\n this._result = [];\n }\n EBMLDecoder.prototype.decode = function (chunk) {\n this.readChunk(chunk);\n var diff = this._result;\n this._result = [];\n return diff;\n };\n EBMLDecoder.prototype.readChunk = function (chunk) {\n // 読みかけの(読めなかった) this._buffer と 新しい chunk を合わせて読み直す\n this._buffer = tools.concat([this._buffer, new tools_1.Buffer(chunk)]);\n while (this._cursor < this._buffer.length) {\n // console.log(this._cursor, this._total, this._tag_stack);\n if (this._state === State.STATE_TAG && !this.readTag()) {\n break;\n }\n if (this._state === State.STATE_SIZE && !this.readSize()) {\n break;\n }\n if (this._state === State.STATE_CONTENT && !this.readContent()) {\n break;\n }\n }\n };\n EBMLDecoder.prototype.getSchemaInfo = function (tagNum) {\n return this._schema[tagNum] || {\n name: \"unknown\",\n level: -1,\n type: \"unknown\",\n description: \"unknown\"\n };\n };\n /**\n * vint された parsing tag\n * @return - return false when waiting for more data\n */\n EBMLDecoder.prototype.readTag = function () {\n // tag.length が buffer の外にある\n if (this._cursor >= this._buffer.length) {\n return false;\n }\n // read ebml id vint without first byte\n var tag = (0, tools_1.readVint)(this._buffer, this._cursor);\n // tag が読めなかった\n if (tag == null) {\n return false;\n }\n // >>>>>>>>>\n // tag 識別子\n //const tagStr = this._buffer.toString(\"hex\", this._cursor, this._cursor + tag.length);\n //const tagNum = parseInt(tagStr, 16);\n // 上と等価\n var buf = this._buffer.slice(this._cursor, this._cursor + tag.length);\n var tagNum = buf.reduce(function (o, v, i, arr) { return o + v * Math.pow(16, 2 * (arr.length - 1 - i)); }, 0);\n var schema = this.getSchemaInfo(tagNum);\n var tagObj = {\n EBML_ID: tagNum.toString(16),\n schema: schema,\n type: schema.type,\n name: schema.name,\n level: schema.level,\n tagStart: this._total,\n tagEnd: this._total + tag.length,\n sizeStart: this._total + tag.length,\n sizeEnd: null,\n dataStart: null,\n dataEnd: null,\n dataSize: null,\n data: null\n };\n // | tag: vint | size: vint | data: Buffer(size) |\n this._tag_stack.push(tagObj);\n // <<<<<<<<\n // ポインタを進める\n this._cursor += tag.length;\n this._total += tag.length;\n // 読み込み状態変更\n this._state = State.STATE_SIZE;\n return true;\n };\n /**\n * vint された現在のタグの内容の大きさを読み込む\n * @return - return false when waiting for more data\n */\n EBMLDecoder.prototype.readSize = function () {\n // tag.length が buffer の外にある\n if (this._cursor >= this._buffer.length) {\n return false;\n }\n // read ebml datasize vint without first byte\n var size = (0, tools_1.readVint)(this._buffer, this._cursor);\n // まだ読めない\n if (size == null) {\n return false;\n }\n // >>>>>>>>>\n // current tag の data size 決定\n var tagObj = this._tag_stack[this._tag_stack.length - 1];\n tagObj.sizeEnd = tagObj.sizeStart + size.length;\n tagObj.dataStart = tagObj.sizeEnd;\n tagObj.dataSize = size.value;\n if (size.value === -1) {\n // unknown size\n tagObj.dataEnd = -1;\n if (tagObj.type === \"m\") {\n tagObj.unknownSize = true;\n }\n }\n else {\n tagObj.dataEnd = tagObj.sizeEnd + size.value;\n }\n // <<<<<<<<\n // ポインタを進める\n this._cursor += size.length;\n this._total += size.length;\n this._state = State.STATE_CONTENT;\n return true;\n };\n /**\n * データ読み込み\n */\n EBMLDecoder.prototype.readContent = function () {\n var tagObj = this._tag_stack[this._tag_stack.length - 1];\n // master element は子要素を持つので生データはない\n if (tagObj.type === 'm') {\n // console.log('content should be tags');\n tagObj.isEnd = false;\n this._result.push(tagObj);\n this._state = State.STATE_TAG;\n // この Mastert Element は空要素か\n if (tagObj.dataSize === 0) {\n // 即座に終了タグを追加\n var elm = Object.assign({}, tagObj, { isEnd: true });\n this._result.push(elm);\n this._tag_stack.pop(); // スタックからこのタグを捨てる\n }\n return true;\n }\n // waiting for more data\n if (this._buffer.length < this._cursor + tagObj.dataSize) {\n return false;\n }\n // タグの中身の生データ\n var data = this._buffer.slice(this._cursor, this._cursor + tagObj.dataSize);\n // 読み終わったバッファを捨てて読み込んでいる部分のバッファのみ残す\n this._buffer = this._buffer.slice(this._cursor + tagObj.dataSize);\n tagObj.data = data;\n // >>>>>>>>>\n switch (tagObj.type) {\n //case \"m\": break;\n // Master-Element - contains other EBML sub-elements of the next lower level\n case \"u\":\n tagObj.value = data.readUIntBE(0, data.length);\n break;\n // Unsigned Integer - Big-endian, any size from 1 to 8 octets\n case \"i\":\n tagObj.value = data.readIntBE(0, data.length);\n break;\n // Signed Integer - Big-endian, any size from 1 to 8 octets\n case \"f\":\n tagObj.value = tagObj.dataSize === 4 ? data.readFloatBE(0) :\n tagObj.dataSize === 8 ? data.readDoubleBE(0) :\n (console.warn(\"cannot read \".concat(tagObj.dataSize, \" octets float. failback to 0\")), 0);\n break;\n // Float - Big-endian, defined for 4 and 8 octets (32, 64 bits)\n case \"s\":\n tagObj.value = data.toString(\"ascii\");\n break; // ascii\n // Printable ASCII (0x20 to 0x7E), zero-padded when needed\n case \"8\":\n tagObj.value = data.toString(\"utf8\");\n break;\n // Unicode string, zero padded when needed (RFC 2279)\n case \"b\":\n tagObj.value = data;\n break;\n // Binary - not interpreted by the parser\n case \"d\":\n tagObj.value = (0, tools_1.convertEBMLDateToJSDate)(new int64_buffer_1.Int64BE(data).toNumber());\n break;\n // nano second; Date.UTC(2001,1,1,0,0,0,0) === 980985600000\n // Date - signed 8 octets integer in nanoseconds with 0 indicating \n // the precise beginning of the millennium (at 2001-01-01T00:00:00,000000000 UTC)\n }\n if (tagObj.value === null) {\n throw new Error(\"unknown tag type:\" + tagObj.type);\n }\n this._result.push(tagObj);\n // <<<<<<<<\n // ポインタを進める\n this._total += tagObj.dataSize;\n // タグ待ちモードに変更\n this._state = State.STATE_TAG;\n this._cursor = 0;\n this._tag_stack.pop(); // remove the object from the stack\n while (this._tag_stack.length > 0) {\n var topEle = this._tag_stack[this._tag_stack.length - 1];\n // 親が不定長サイズなので閉じタグは期待できない\n if (topEle.dataEnd < 0) {\n this._tag_stack.pop(); // 親タグを捨てる\n return true;\n }\n // 閉じタグの来るべき場所まで来たかどうか\n if (this._total < topEle.dataEnd) {\n break;\n }\n // 閉じタグを挿入すべきタイミングが来た\n if (topEle.type !== \"m\") {\n throw new Error(\"parent element is not master element\");\n }\n var elm = Object.assign({}, topEle, { isEnd: true });\n this._result.push(elm);\n this._tag_stack.pop();\n }\n return true;\n };\n return EBMLDecoder;\n}());\nexports.default = EBMLDecoder;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tools = require(\"./tools\");\nvar tools_1 = require(\"./tools\");\nvar ebmlID_1 = require(\"./ebmlID\");\nvar EBMLEncoder = /** @class */ (function () {\n function EBMLEncoder() {\n this._schema = ebmlID_1.byEbmlID;\n this._buffers = [];\n this._stack = [];\n }\n EBMLEncoder.prototype.encode = function (elms) {\n var _this = this;\n return tools.concat(elms.reduce(function (lst, elm) {\n return lst.concat(_this.encodeChunk(elm));\n }, [])).buffer;\n };\n EBMLEncoder.prototype.encodeChunk = function (elm) {\n if (elm.type === \"m\") {\n if (!elm.isEnd) {\n this.startTag(elm);\n }\n else {\n this.endTag(elm);\n }\n }\n else {\n // ensure that we are working with an internal `Buffer` instance\n elm.data = tools_1.Buffer.from(elm.data);\n this.writeTag(elm);\n }\n return this.flush();\n };\n EBMLEncoder.prototype.flush = function () {\n var ret = this._buffers;\n this._buffers = [];\n return ret;\n };\n EBMLEncoder.prototype.getSchemaInfo = function (tagName) {\n var tagNums = Object.keys(this._schema).map(Number);\n for (var i = 0; i < tagNums.length; i++) {\n var tagNum = tagNums[i];\n if (this._schema[tagNum].name === tagName) {\n return new tools_1.Buffer(tagNum.toString(16), 'hex');\n }\n }\n return null;\n };\n EBMLEncoder.prototype.writeTag = function (elm) {\n var tagName = elm.name;\n var tagId = this.getSchemaInfo(tagName);\n var tagData = elm.data;\n if (tagId == null) {\n throw new Error('No schema entry found for ' + tagName);\n }\n var data = tools.encodeTag(tagId, tagData);\n /**\n * 親要素が閉じタグあり(isEnd)なら閉じタグが来るまで待つ(children queに入る)\n */\n if (this._stack.length > 0) {\n var last = this._stack[this._stack.length - 1];\n last.children.push({\n tagId: tagId,\n elm: elm,\n children: [],\n data: data\n });\n return;\n }\n this._buffers = this._buffers.concat(data);\n return;\n };\n EBMLEncoder.prototype.startTag = function (elm) {\n var tagName = elm.name;\n var tagId = this.getSchemaInfo(tagName);\n if (tagId == null) {\n throw new Error('No schema entry found for ' + tagName);\n }\n /**\n * 閉じタグ不定長の場合はスタックに積まずに即時バッファに書き込む\n */\n if (elm.unknownSize) {\n var data = tools.encodeTag(tagId, new tools_1.Buffer(0), elm.unknownSize);\n this._buffers = this._buffers.concat(data);\n return;\n }\n var tag = {\n tagId: tagId,\n elm: elm,\n children: [],\n data: null\n };\n if (this._stack.length > 0) {\n this._stack[this._stack.length - 1].children.push(tag);\n }\n this._stack.push(tag);\n };\n EBMLEncoder.prototype.endTag = function (elm) {\n var tagName = elm.name;\n var tag = this._stack.pop();\n if (tag == null) {\n throw new Error(\"EBML structure is broken\");\n }\n if (tag.elm.name !== elm.name) {\n throw new Error(\"EBML structure is broken\");\n }\n var childTagDataBuffers = tag.children.reduce(function (lst, child) {\n if (child.data === null) {\n throw new Error(\"EBML structure is broken\");\n }\n return lst.concat(child.data);\n }, []);\n var childTagDataBuffer = tools.concat(childTagDataBuffers);\n if (tag.elm.type === \"m\") {\n tag.data = tools.encodeTag(tag.tagId, childTagDataBuffer, tag.elm.unknownSize);\n }\n else {\n tag.data = tools.encodeTag(tag.tagId, childTagDataBuffer);\n }\n if (this._stack.length < 1) {\n this._buffers = this._buffers.concat(tag.data);\n }\n };\n return EBMLEncoder;\n}());\nexports.default = EBMLEncoder;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar events_1 = require(\"events\");\nvar tools = require(\"./tools\");\n/**\n * This is an informal code for reference.\n * EBMLReader is a class for getting information to enable seeking Webm recorded by MediaRecorder.\n * So please do not use for regular WebM files.\n */\nvar EBMLReader = /** @class */ (function (_super) {\n __extends(EBMLReader, _super);\n function EBMLReader() {\n var _this = _super.call(this) || this;\n _this.logGroup = \"\";\n _this.hasLoggingStarted = false;\n _this.metadataloaded = false;\n _this.chunks = [];\n _this.stack = [];\n _this.segmentOffset = 0;\n _this.last2SimpleBlockVideoTrackTimecode = [0, 0];\n _this.last2SimpleBlockAudioTrackTimecode = [0, 0];\n _this.lastClusterTimecode = 0;\n _this.lastClusterPosition = 0;\n _this.timecodeScale = 1000000; // webm default TimecodeScale is 1ms\n _this.metadataSize = 0;\n _this.metadatas = [];\n _this.cues = [];\n _this.firstVideoBlockRead = false;\n _this.firstAudioBlockRead = false;\n _this.currentTrack = { TrackNumber: -1, TrackType: -1, DefaultDuration: null, CodecDelay: null };\n _this.trackTypes = [];\n _this.trackDefaultDuration = [];\n _this.trackCodecDelay = [];\n _this.trackInfo = { type: \"nothing\" };\n _this.ended = false;\n _this.logging = false;\n _this.use_duration_every_simpleblock = false;\n _this.use_webp = false;\n _this.use_segment_info = true;\n _this.drop_default_duration = true;\n return _this;\n }\n /**\n * emit final state.\n */\n EBMLReader.prototype.stop = function () {\n this.ended = true;\n this.emit_segment_info();\n // clean up any unclosed Master Elements at the end of the stream.\n while (this.stack.length) {\n this.stack.pop();\n if (this.logging) {\n console.groupEnd();\n }\n }\n // close main group if set, logging is enabled, and has actually logged anything.\n if (this.logging && this.hasLoggingStarted && this.logGroup) {\n console.groupEnd();\n }\n };\n /**\n * emit chunk info\n */\n EBMLReader.prototype.emit_segment_info = function () {\n var data = this.chunks;\n this.chunks = [];\n if (!this.metadataloaded) {\n this.metadataloaded = true;\n this.metadatas = data;\n var videoTrackNum = this.trackTypes.indexOf(1); // find first video track\n var audioTrackNum = this.trackTypes.indexOf(2); // find first audio track\n this.trackInfo = videoTrackNum >= 0 && audioTrackNum >= 0 ? { type: \"both\", trackNumber: videoTrackNum }\n : videoTrackNum >= 0 ? { type: \"video\", trackNumber: videoTrackNum }\n : audioTrackNum >= 0 ? { type: \"audio\", trackNumber: audioTrackNum }\n : { type: \"nothing\" };\n if (!this.use_segment_info) {\n return;\n }\n this.emit(\"metadata\", { data: data, metadataSize: this.metadataSize });\n }\n else {\n if (!this.use_segment_info) {\n return;\n }\n var timecode = this.lastClusterTimecode;\n var duration = this.duration;\n var timecodeScale = this.timecodeScale;\n this.emit(\"cluster\", { timecode: timecode, data: data });\n this.emit(\"duration\", { timecodeScale: timecodeScale, duration: duration });\n }\n };\n EBMLReader.prototype.read = function (elm) {\n var _this = this;\n var drop = false;\n if (this.ended) {\n // reader is finished\n return;\n }\n if (elm.type === \"m\") {\n // 閉じタグの自動挿入\n if (elm.isEnd) {\n this.stack.pop();\n }\n else {\n var parent_1 = this.stack[this.stack.length - 1];\n if (parent_1 != null && parent_1.level >= elm.level) {\n // 閉じタグなしでレベルが下がったら閉じタグを挿入\n this.stack.pop();\n // From http://w3c.github.io/media-source/webm-byte-stream-format.html#webm-media-segments\n // This fixes logging for webm streams with Cluster of unknown length and no Cluster closing elements.\n if (this.logging) {\n console.groupEnd();\n }\n parent_1.dataEnd = elm.dataEnd;\n parent_1.dataSize = elm.dataEnd - parent_1.dataStart;\n parent_1.unknownSize = false;\n var o = Object.assign({}, parent_1, { name: parent_1.name, type: parent_1.type, isEnd: true });\n this.chunks.push(o);\n }\n this.stack.push(elm);\n }\n }\n if (elm.type === \"m\" && elm.name == \"Segment\") {\n if (this.segmentOffset != 0) {\n console.warn(\"Multiple segments detected!\");\n }\n this.segmentOffset = elm.dataStart;\n this.emit(\"segment_offset\", this.segmentOffset);\n }\n else if (elm.type === \"b\" && elm.name === \"SimpleBlock\") {\n var _a = tools.ebmlBlock(elm.data), timecode = _a.timecode, trackNumber = _a.trackNumber, frames_1 = _a.frames;\n if (this.trackTypes[trackNumber] === 1) { // trackType === 1 => video track\n if (!this.firstVideoBlockRead) {\n this.firstVideoBlockRead = true;\n if (this.trackInfo.type === \"both\" || this.trackInfo.type === \"video\") {\n var CueTime = this.lastClusterTimecode + timecode;\n this.cues.push({ CueTrack: trackNumber, CueClusterPosition: this.lastClusterPosition, CueTime: CueTime });\n this.emit(\"cue_info\", { CueTrack: trackNumber, CueClusterPosition: this.lastClusterPosition, CueTime: this.lastClusterTimecode });\n this.emit(\"cue\", { CueTrack: trackNumber, CueClusterPosition: this.lastClusterPosition, CueTime: CueTime });\n }\n }\n this.last2SimpleBlockVideoTrackTimecode = [this.last2SimpleBlockVideoTrackTimecode[1], timecode];\n }\n else if (this.trackTypes[trackNumber] === 2) { // trackType === 2 => audio track\n if (!this.firstAudioBlockRead) {\n this.firstAudioBlockRead = true;\n if (this.trackInfo.type === \"audio\") {\n var CueTime = this.lastClusterTimecode + timecode;\n this.cues.push({ CueTrack: trackNumber, CueClusterPosition: this.lastClusterPosition, CueTime: CueTime });\n this.emit(\"cue_info\", { CueTrack: trackNumber, CueClusterPosition: this.lastClusterPosition, CueTime: this.lastClusterTimecode });\n this.emit(\"cue\", { CueTrack: trackNumber, CueClusterPosition: this.lastClusterPosition, CueTime: CueTime });\n }\n }\n this.last2SimpleBlockAudioTrackTimecode = [this.last2SimpleBlockAudioTrackTimecode[1], timecode];\n }\n if (this.use_duration_every_simpleblock) {\n this.emit(\"duration\", { timecodeScale: this.timecodeScale, duration: this.duration });\n }\n if (this.use_webp) {\n frames_1.forEach(function (frame) {\n var startcode = frame.slice(3, 6).toString(\"hex\");\n if (startcode !== \"9d012a\") {\n return;\n }\n ; // VP8 の場合\n var webpBuf = tools.VP8BitStreamToRiffWebPBuffer(frame);\n var webp = new Blob([webpBuf], { type: \"image/webp\" });\n var currentTime = _this.duration;\n _this.emit(\"webp\", { currentTime: currentTime, webp: webp });\n });\n }\n }\n else if (elm.type === \"m\" && elm.name === \"Cluster\" && elm.isEnd === false) {\n this.firstVideoBlockRead = false;\n this.firstAudioBlockRead = false;\n this.emit_segment_info();\n this.emit(\"cluster_ptr\", elm.tagStart);\n this.lastClusterPosition = elm.tagStart;\n }\n else if (elm.type === \"u\" && elm.name === \"Timecode\") {\n this.lastClusterTimecode = elm.value;\n }\n else if (elm.type === \"u\" && elm.name === \"TimecodeScale\") {\n this.timecodeScale = elm.value;\n }\n else if (elm.type === \"m\" && elm.name === \"TrackEntry\") {\n if (elm.isEnd) {\n this.trackTypes[this.currentTrack.TrackNumber] = this.currentTrack.TrackType;\n this.trackDefaultDuration[this.currentTrack.TrackNumber] = this.currentTrack.DefaultDuration;\n this.trackCodecDelay[this.currentTrack.TrackNumber] = this.currentTrack.CodecDelay;\n }\n else {\n this.currentTrack = { TrackNumber: -1, TrackType: -1, DefaultDuration: null, CodecDelay: null };\n }\n }\n else if (elm.type === \"u\" && elm.name === \"TrackType\") {\n this.currentTrack.TrackType = elm.value;\n }\n else if (elm.type === \"u\" && elm.name === \"TrackNumber\") {\n this.currentTrack.TrackNumber = elm.value;\n }\n else if (elm.type === \"u\" && elm.name === \"CodecDelay\") {\n this.currentTrack.CodecDelay = elm.value;\n }\n else if (elm.type === \"u\" && elm.name === \"DefaultDuration\") {\n // media source api は DefaultDuration を計算するとバグる。\n // https://bugs.chromium.org/p/chromium/issues/detail?id=606000#c22\n // chrome 58 ではこれを回避するために DefaultDuration 要素を抜き取った。\n // chrome 58 以前でもこのタグを抜き取ることで回避できる\n if (this.drop_default_duration) {\n console.warn(\"DefaultDuration detected!, remove it\");\n drop = true;\n }\n else {\n this.currentTrack.DefaultDuration = elm.value;\n }\n }\n else if (elm.name === \"unknown\") {\n console.warn(elm);\n }\n if (!this.metadataloaded && elm.dataEnd > 0) {\n this.metadataSize = elm.dataEnd;\n }\n if (!drop) {\n this.chunks.push(elm);\n }\n if (this.logging) {\n this.put(elm);\n }\n };\n Object.defineProperty(EBMLReader.prototype, \"duration\", {\n /**\n * DefaultDuration が定義されている場合は最後のフレームのdurationも考慮する\n * 単位 timecodeScale\n *\n * !!! if you need duration with seconds !!!\n * ```js\n * const nanosec = reader.duration * reader.timecodeScale;\n * const sec = nanosec / 1000 / 1000 / 1000;\n * ```\n */\n get: function () {\n if (this.trackInfo.type === \"nothing\") {\n console.warn(\"no video, no audio track\");\n return 0;\n }\n // defaultDuration は 生の nano sec\n var defaultDuration = 0;\n // nanoseconds\n var codecDelay = 0;\n var lastTimecode = 0;\n var _defaultDuration = this.trackDefaultDuration[this.trackInfo.trackNumber];\n if (typeof _defaultDuration === \"number\") {\n defaultDuration = _defaultDuration;\n }\n else {\n // https://bugs.chromium.org/p/chromium/issues/detail?id=606000#c22\n // default duration がないときに使う delta\n if (this.trackInfo.type === \"both\") {\n if (this.last2SimpleBlockAudioTrackTimecode[1] > this.last2SimpleBlockVideoTrackTimecode[1]) {\n // audio diff\n defaultDuration = (this.last2SimpleBlockAudioTrackTimecode[1] - this.last2SimpleBlockAudioTrackTimecode[0]) * this.timecodeScale;\n // audio delay\n var delay = this.trackCodecDelay[this.trackTypes.indexOf(2)]; // 2 => audio\n if (typeof delay === \"number\") {\n codecDelay = delay;\n }\n // audio timecode\n lastTimecode = this.last2SimpleBlockAudioTrackTimecode[1];\n }\n else {\n // video diff\n defaultDuration = (this.last2SimpleBlockVideoTrackTimecode[1] - this.last2SimpleBlockVideoTrackTimecode[0]) * this.timecodeScale;\n // video delay\n var delay = this.trackCodecDelay[this.trackTypes.indexOf(1)]; // 1 => video\n if (typeof delay === \"number\") {\n codecDelay = delay;\n }\n // video timecode\n lastTimecode = this.last2SimpleBlockVideoTrackTimecode[1];\n }\n }\n else if (this.trackInfo.type === \"video\") {\n defaultDuration = (this.last2SimpleBlockVideoTrackTimecode[1] - this.last2SimpleBlockVideoTrackTimecode[0]) * this.timecodeScale;\n var delay = this.trackCodecDelay[this.trackInfo.trackNumber]; // 2 => audio\n if (typeof delay === \"number\") {\n codecDelay = delay;\n }\n lastTimecode = this.last2SimpleBlockVideoTrackTimecode[1];\n }\n else if (this.trackInfo.type === \"audio\") {\n defaultDuration = (this.last2SimpleBlockAudioTrackTimecode[1] - this.last2SimpleBlockAudioTrackTimecode[0]) * this.timecodeScale;\n var delay = this.trackCodecDelay[this.trackInfo.trackNumber]; // 1 => video\n if (typeof delay === \"number\") {\n codecDelay = delay;\n }\n lastTimecode = this.last2SimpleBlockAudioTrackTimecode[1];\n } // else { not reached }\n }\n // convert to timecodescale\n var duration_nanosec = ((this.lastClusterTimecode + lastTimecode) * this.timecodeScale) + defaultDuration - codecDelay;\n var duration = duration_nanosec / this.timecodeScale;\n return Math.floor(duration);\n },\n enumerable: false,\n configurable: true\n });\n EBMLReader.prototype.addListener = function (event, listener) {\n return _super.prototype.addListener.call(this, event, listener);\n };\n EBMLReader.prototype.put = function (elm) {\n if (!this.hasLoggingStarted) {\n this.hasLoggingStarted = true;\n if (this.logging && this.logGroup) {\n console.groupCollapsed(this.logGroup);\n }\n }\n if (elm.type === \"m\") {\n if (elm.isEnd) {\n console.groupEnd();\n }\n else {\n console.group(elm.name + \":\" + elm.tagStart);\n }\n }\n else if (elm.type === \"b\") {\n // for debug\n //if(elm.name === \"SimpleBlock\"){\n //const o = EBML.tools.ebmlBlock(elm.value);\n //console.log(elm.name, elm.type, o.trackNumber, o.timecode);\n //}else{\n console.log(elm.name, elm.type);\n //}\n }\n else {\n console.log(elm.name, elm.tagStart, elm.type, elm.value);\n }\n };\n return EBMLReader;\n}(events_1.EventEmitter));\nexports.default = EBMLReader;\n;\n;\n;\n;\n","\"use strict\";\n// source: https://www.matroska.org/technical/elements.html\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.byEbmlID = void 0;\nexports.byEbmlID = {\n 0x80: {\n name: \"ChapterDisplay\",\n level: 4,\n type: \"m\",\n multiple: true,\n minver: 1,\n webm: true,\n description: \"Contains all possible strings to use for the chapter display.\"\n },\n 0x83: {\n name: \"TrackType\",\n level: 3,\n type: \"u\",\n mandatory: true,\n minver: 1,\n range: \"1-254\",\n description: \"A set of track types coded on 8 bits (1: video, 2: audio, 3: complex, 0x10: logo, 0x11: subtitle, 0x12: buttons, 0x20: control).\"\n },\n 0x85: {\n name: \"ChapString\",\n cppname: \"ChapterString\",\n level: 5,\n type: \"8\",\n mandatory: true,\n minver: 1,\n webm: true,\n description: \"Contains the string to use as the chapter atom.\"\n },\n 0x86: {\n name: \"CodecID\",\n level: 3,\n type: \"s\",\n mandatory: true,\n minver: 1,\n description: \"An ID corresponding to the codec, see the codec page for more info.\"\n },\n 0x88: {\n name: \"FlagDefault\",\n cppname: \"TrackFlagDefault\",\n level: 3,\n type: \"u\",\n mandatory: true,\n minver: 1,\n \"default\": 1,\n range: \"0-1\",\n description: \"Set if that track (audio, video or subs) SHOULD be active if no language found matches the user preference. (1 bit)\"\n },\n 0x89: {\n name: \"ChapterTrackNumber\",\n level: 5,\n type: \"u\",\n mandatory: true,\n multiple: true,\n minver: 1,\n webm: false,\n range: \"not 0\",\n description: \"UID of the Track to apply this chapter too. In the absense of a control track, choosing this chapter will select the listed Tracks and deselect unlisted tracks. Absense of this element indicates that the Chapter should be applied to any currently used Tracks.\"\n },\n 0x91: {\n name: \"ChapterTimeStart\",\n level: 4,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: true,\n description: \"Timestamp of the start of Chapter (not scaled).\"\n },\n 0x92: {\n name: \"ChapterTimeEnd\",\n level: 4,\n type: \"u\",\n minver: 1,\n webm: false,\n description: \"Timestamp of the end of Chapter (timestamp excluded, not scaled).\"\n },\n 0x96: {\n name: \"CueRefTime\",\n level: 5,\n type: \"u\",\n mandatory: true,\n minver: 2,\n webm: false,\n description: \"Timestamp of the referenced Block.\"\n },\n 0x97: {\n name: \"CueRefCluster\",\n level: 5,\n type: \"u\",\n mandatory: true,\n webm: false,\n description: \"The Position of the Cluster containing the referenced Block.\"\n },\n 0x98: {\n name: \"ChapterFlagHidden\",\n level: 4,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n \"default\": 0,\n range: \"0-1\",\n description: \"If a chapter is hidden (1), it should not be available to the user interface (but still to Control Tracks; see flag notes). (1 bit)\"\n },\n 0x4254: {\n name: \"ContentCompAlgo\",\n level: 6,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n \"default\": 0,\n // \"br\": [ \"\", \"\", \"\", \"\" ],\n // \"del\": [ \"1 - bzlib,\", \"2 - lzo1x\" ],\n description: \"The compression algorithm used. Algorithms that have been specified so far are: 0 - zlib, 3 - Header Stripping\"\n },\n 0x4255: {\n name: \"ContentCompSettings\",\n level: 6,\n type: \"b\",\n minver: 1,\n webm: false,\n description: \"Settings that might be needed by the decompressor. For Header Stripping (ContentCompAlgo=3), the bytes that were removed from the beggining of each frames of the track.\"\n },\n 0x4282: {\n name: \"DocType\",\n level: 1,\n type: \"s\",\n mandatory: true,\n \"default\": \"matroska\",\n minver: 1,\n description: \"A string that describes the type of document that follows this EBML header. 'matroska' in our case or 'webm' for webm files.\"\n },\n 0x4285: {\n name: \"DocTypeReadVersion\",\n level: 1,\n type: \"u\",\n mandatory: true,\n \"default\": 1,\n minver: 1,\n description: \"The minimum DocType version an interpreter has to support to read this file.\"\n },\n 0x4286: {\n name: \"EBMLVersion\",\n level: 1,\n type: \"u\",\n mandatory: true,\n \"default\": 1,\n minver: 1,\n description: \"The version of EBML parser used to create the file.\"\n },\n 0x4287: {\n name: \"DocTypeVersion\",\n level: 1,\n type: \"u\",\n mandatory: true,\n \"default\": 1,\n minver: 1,\n description: \"The version of DocType interpreter used to create the file.\"\n },\n 0x4444: {\n name: \"SegmentFamily\",\n level: 2,\n type: \"b\",\n multiple: true,\n minver: 1,\n webm: false,\n bytesize: 16,\n description: \"A randomly generated unique ID that all segments related to each other must use (128 bits).\"\n },\n 0x4461: {\n name: \"DateUTC\",\n level: 2,\n type: \"d\",\n minver: 1,\n description: \"Date of the origin of timestamp (value 0), i.e. production date.\"\n },\n 0x4484: {\n name: \"TagDefault\",\n level: 4,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n \"default\": 1,\n range: \"0-1\",\n description: \"Indication to know if this is the default/original language to use for the given tag. (1 bit)\"\n },\n 0x4485: {\n name: \"TagBinary\",\n level: 4,\n type: \"b\",\n minver: 1,\n webm: false,\n description: \"The values of the Tag if it is binary. Note that this cannot be used in the same SimpleTag as TagString.\"\n },\n 0x4487: {\n name: \"TagString\",\n level: 4,\n type: \"8\",\n minver: 1,\n webm: false,\n description: \"The value of the Element.\"\n },\n 0x4489: {\n name: \"Duration\",\n level: 2,\n type: \"f\",\n minver: 1,\n range: \"> 0\",\n description: \"Duration of the segment (based on TimecodeScale).\"\n },\n 0x4598: {\n name: \"ChapterFlagEnabled\",\n level: 4,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n \"default\": 1,\n range: \"0-1\",\n description: \"Specify wether the chapter is enabled. It can be enabled/disabled by a Control Track. When disabled, the movie should skip all the content between the TimeStart and TimeEnd of this chapter (see flag notes). (1 bit)\"\n },\n 0x4660: {\n name: \"FileMimeType\",\n level: 3,\n type: \"s\",\n mandatory: true,\n minver: 1,\n webm: false,\n description: \"MIME type of the file.\"\n },\n 0x4661: {\n name: \"FileUsedStartTime\",\n level: 3,\n type: \"u\",\n divx: true,\n description: \"DivX font extension\"\n },\n 0x4662: {\n name: \"FileUsedEndTime\",\n level: 3,\n type: \"u\",\n divx: true,\n description: \"DivX font extension\"\n },\n 0x4675: {\n name: \"FileReferral\",\n level: 3,\n type: \"b\",\n webm: false,\n description: \"A binary value that a track/codec can refer to when the attachment is needed.\"\n },\n 0x5031: {\n name: \"ContentEncodingOrder\",\n level: 5,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n \"default\": 0,\n description: \"Tells when this modification was used during encoding/muxing starting with 0 and counting upwards. The decoder/demuxer has to start with the highest order number it finds and work its way down. This value has to be unique over all ContentEncodingOrder elements in the segment.\"\n },\n 0x5032: {\n name: \"ContentEncodingScope\",\n level: 5,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n \"default\": 1,\n range: \"not 0\",\n // \"br\": [ \"\", \"\", \"\" ],\n description: \"A bit field that describes which elements have been modified in this way. Values (big endian) can be OR'ed. Possible values: 1 - all frame contents, 2 - the track's private data, 4 - the next ContentEncoding (next ContentEncodingOrder. Either the data inside ContentCompression and/or ContentEncryption)\"\n },\n 0x5033: {\n name: \"ContentEncodingType\",\n level: 5,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n \"default\": 0,\n // \"br\": [ \"\", \"\" ],\n description: \"A value describing what kind of transformation has been done. Possible values: 0 - compression, 1 - encryption\"\n },\n 0x5034: {\n name: \"ContentCompression\",\n level: 5,\n type: \"m\",\n minver: 1,\n webm: false,\n description: \"Settings describing the compression used. Must be present if the value of ContentEncodingType is 0 and absent otherwise. Each block must be decompressable even if no previous block is available in order not to prevent seeking.\"\n },\n 0x5035: {\n name: \"ContentEncryption\",\n level: 5,\n type: \"m\",\n minver: 1,\n webm: false,\n description: \"Settings describing the encryption used. Must be present if the value of ContentEncodingType is 1 and absent otherwise.\"\n },\n 0x5378: {\n name: \"CueBlockNumber\",\n level: 4,\n type: \"u\",\n minver: 1,\n \"default\": 1,\n range: \"not 0\",\n description: \"Number of the Block in the specified Cluster.\"\n },\n 0x5654: {\n name: \"ChapterStringUID\",\n level: 4,\n type: \"8\",\n mandatory: false,\n minver: 3,\n webm: true,\n description: \"A unique string ID to identify the Chapter. Use for WebVTT cue identifier storage.\"\n },\n 0x5741: {\n name: \"WritingApp\",\n level: 2,\n type: \"8\",\n mandatory: true,\n minver: 1,\n description: \"Writing application (\\\"mkvmerge-0.3.3\\\").\"\n },\n 0x5854: {\n name: \"SilentTracks\",\n cppname: \"ClusterSilentTracks\",\n level: 2,\n type: \"m\",\n minver: 1,\n webm: false,\n description: \"The list of tracks that are not used in that part of the stream. It is useful when using overlay tracks on seeking. Then you should decide what track to use.\"\n },\n 0x6240: {\n name: \"ContentEncoding\",\n level: 4,\n type: \"m\",\n mandatory: true,\n multiple: true,\n minver: 1,\n webm: false,\n description: \"Settings for one content encoding like compression or encryption.\"\n },\n 0x6264: {\n name: \"BitDepth\",\n cppname: \"AudioBitDepth\",\n level: 4,\n type: \"u\",\n minver: 1,\n range: \"not 0\",\n description: \"Bits per sample, mostly used for PCM.\"\n },\n 0x6532: {\n name: \"SignedElement\",\n level: 3,\n type: \"b\",\n multiple: true,\n webm: false,\n description: \"An element ID whose data will be used to compute the signature.\"\n },\n 0x6624: {\n name: \"TrackTranslate\",\n level: 3,\n type: \"m\",\n multiple: true,\n minver: 1,\n webm: false,\n description: \"The track identification for the given Chapter Codec.\"\n },\n 0x6911: {\n name: \"ChapProcessCommand\",\n cppname: \"ChapterProcessCommand\",\n level: 5,\n type: \"m\",\n multiple: true,\n minver: 1,\n webm: false,\n description: \"Contains all the commands associated to the Atom.\"\n },\n 0x6922: {\n name: \"ChapProcessTime\",\n cppname: \"ChapterProcessTime\",\n level: 6,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n description: \"Defines when the process command should be handled (0: during the whole chapter, 1: before starting playback, 2: after playback of the chapter).\"\n },\n 0x6924: {\n name: \"ChapterTranslate\",\n level: 2,\n type: \"m\",\n multiple: true,\n minver: 1,\n webm: false,\n description: \"A tuple of corresponding ID used by chapter codecs to represent this segment.\"\n },\n 0x6933: {\n name: \"ChapProcessData\",\n cppname: \"ChapterProcessData\",\n level: 6,\n type: \"b\",\n mandatory: true,\n minver: 1,\n webm: false,\n description: \"Contains the command information. The data should be interpreted depending on the ChapProcessCodecID value. For ChapProcessCodecID = 1, the data correspond to the binary DVD cell pre/post commands.\"\n },\n 0x6944: {\n name: \"ChapProcess\",\n cppname: \"ChapterProcess\",\n level: 4,\n type: \"m\",\n multiple: true,\n minver: 1,\n webm: false,\n description: \"Contains all the commands associated to the Atom.\"\n },\n 0x6955: {\n name: \"ChapProcessCodecID\",\n cppname: \"ChapterProcessCodecID\",\n level: 5,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n \"default\": 0,\n description: \"Contains the type of the codec used for the processing. A value of 0 means native Matroska processing (to be defined), a value of 1 means the DVD command set is used. More codec IDs can be added later.\"\n },\n 0x7373: {\n name: \"Tag\",\n level: 2,\n type: \"m\",\n mandatory: true,\n multiple: true,\n minver: 1,\n webm: false,\n description: \"Element containing elements specific to Tracks/Chapters.\"\n },\n 0x7384: {\n name: \"SegmentFilename\",\n level: 2,\n type: \"8\",\n minver: 1,\n webm: false,\n description: \"A filename corresponding to this segment.\"\n },\n 0x7446: {\n name: \"AttachmentLink\",\n cppname: \"TrackAttachmentLink\",\n level: 3,\n type: \"u\",\n minver: 1,\n webm: false,\n range: \"not 0\",\n description: \"The UID of an attachment that is used by this codec.\"\n },\n 0x258688: {\n name: \"CodecName\",\n level: 3,\n type: \"8\",\n minver: 1,\n description: \"A human-readable string specifying the codec.\"\n },\n 0x18538067: {\n name: \"Segment\",\n level: \"0\",\n type: \"m\",\n mandatory: true,\n multiple: true,\n minver: 1,\n description: \"This element contains all other top-level (level 1) elements. Typically a Matroska file is composed of 1 segment.\"\n },\n 0x447a: {\n name: \"TagLanguage\",\n level: 4,\n type: \"s\",\n mandatory: true,\n minver: 1,\n webm: false,\n \"default\": \"und\",\n description: \"Specifies the language of the tag specified, in the Matroska languages form.\"\n },\n 0x45a3: {\n name: \"TagName\",\n level: 4,\n type: \"8\",\n mandatory: true,\n minver: 1,\n webm: false,\n description: \"The name of the Tag that is going to be stored.\"\n },\n 0x67c8: {\n name: \"SimpleTag\",\n cppname: \"TagSimple\",\n level: 3,\n \"recursive\": \"1\",\n type: \"m\",\n mandatory: true,\n multiple: true,\n minver: 1,\n webm: false,\n description: \"Contains general information about the target.\"\n },\n 0x63c6: {\n name: \"TagAttachmentUID\",\n level: 4,\n type: \"u\",\n multiple: true,\n minver: 1,\n webm: false,\n \"default\": 0,\n description: \"A unique ID to identify the Attachment(s) the tags belong to. If the value is 0 at this level, the tags apply to all the attachments in the Segment.\"\n },\n 0x63c4: {\n name: \"TagChapterUID\",\n level: 4,\n type: \"u\",\n multiple: true,\n minver: 1,\n webm: false,\n \"default\": 0,\n description: \"A unique ID to identify the Chapter(s) the tags belong to. If the value is 0 at this level, the tags apply to all chapters in the Segment.\"\n },\n 0x63c9: {\n name: \"TagEditionUID\",\n level: 4,\n type: \"u\",\n multiple: true,\n minver: 1,\n webm: false,\n \"default\": 0,\n description: \"A unique ID to identify the EditionEntry(s) the tags belong to. If the value is 0 at this level, the tags apply to all editions in the Segment.\"\n },\n 0x63c5: {\n name: \"TagTrackUID\",\n level: 4,\n type: \"u\",\n multiple: true,\n minver: 1,\n webm: false,\n \"default\": 0,\n description: \"A unique ID to identify the Track(s) the tags belong to. If the value is 0 at this level, the tags apply to all tracks in the Segment.\"\n },\n 0x63ca: {\n name: \"TargetType\",\n cppname: \"TagTargetType\",\n level: 4,\n type: \"s\",\n minver: 1,\n webm: false,\n \"strong\": \"informational\",\n description: \"An string that can be used to display the logical level of the target like \\\"ALBUM\\\", \\\"TRACK\\\", \\\"MOVIE\\\", \\\"CHAPTER\\\", etc (see TargetType).\"\n },\n 0x68ca: {\n name: \"TargetTypeValue\",\n cppname: \"TagTargetTypeValue\",\n level: 4,\n type: \"u\",\n minver: 1,\n webm: false,\n \"default\": 50,\n description: \"A number to indicate the logical level of the target (see TargetType).\"\n },\n 0x63c0: {\n name: \"Targets\",\n cppname: \"TagTargets\",\n level: 3,\n type: \"m\",\n mandatory: true,\n minver: 1,\n webm: false,\n description: \"Contain all UIDs where the specified meta data apply. It is empty to describe everything in the segment.\"\n },\n 0x1254c367: {\n name: \"Tags\",\n level: 1,\n type: \"m\",\n multiple: true,\n minver: 1,\n webm: false,\n description: \"Element containing elements specific to Tracks/Chapters. A list of valid tags can be found here.\"\n },\n 0x450d: {\n name: \"ChapProcessPrivate\",\n cppname: \"ChapterProcessPrivate\",\n level: 5,\n type: \"b\",\n minver: 1,\n webm: false,\n description: \"Some optional data attached to the ChapProcessCodecID information. For ChapProcessCodecID = 1, it is the \\\"DVD level\\\" equivalent.\"\n },\n 0x437e: {\n name: \"ChapCountry\",\n cppname: \"ChapterCountry\",\n level: 5,\n type: \"s\",\n multiple: true,\n minver: 1,\n webm: false,\n description: \"The countries corresponding to the string, same 2 octets as in Internet domains.\"\n },\n 0x437c: {\n name: \"ChapLanguage\",\n cppname: \"ChapterLanguage\",\n level: 5,\n type: \"s\",\n mandatory: true,\n multiple: true,\n minver: 1,\n webm: true,\n \"default\": \"eng\",\n description: \"The languages corresponding to the string, in the bibliographic ISO-639-2 form.\"\n },\n 0x8f: {\n name: \"ChapterTrack\",\n level: 4,\n type: \"m\",\n minver: 1,\n webm: false,\n description: \"List of tracks on which the chapter applies. If this element is not present, all tracks apply\"\n },\n 0x63c3: {\n name: \"ChapterPhysicalEquiv\",\n level: 4,\n type: \"u\",\n minver: 1,\n webm: false,\n description: \"Specify the physical equivalent of this ChapterAtom like \\\"DVD\\\" (60) or \\\"SIDE\\\" (50), see complete list of values.\"\n },\n 0x6ebc: {\n name: \"ChapterSegmentEditionUID\",\n level: 4,\n type: \"u\",\n minver: 1,\n webm: false,\n range: \"not 0\",\n description: \"The EditionUID to play from the segment linked in ChapterSegmentUID.\"\n },\n 0x6e67: {\n name: \"ChapterSegmentUID\",\n level: 4,\n type: \"b\",\n minver: 1,\n webm: false,\n range: \">0\",\n bytesize: 16,\n description: \"A segment to play in place of this chapter. Edition ChapterSegmentEditionUID should be used for this segment, otherwise no edition is used.\"\n },\n 0x73c4: {\n name: \"ChapterUID\",\n level: 4,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: true,\n range: \"not 0\",\n description: \"A unique ID to identify the Chapter.\"\n },\n 0xb6: {\n name: \"ChapterAtom\",\n level: 3,\n \"recursive\": \"1\",\n type: \"m\",\n mandatory: true,\n multiple: true,\n minver: 1,\n webm: true,\n description: \"Contains the atom information to use as the chapter atom (apply to all tracks).\"\n },\n 0x45dd: {\n name: \"EditionFlagOrdered\",\n level: 3,\n type: \"u\",\n minver: 1,\n webm: false,\n \"default\": 0,\n range: \"0-1\",\n description: \"Specify if the chapters can be defined multiple times and the order to play them is enforced. (1 bit)\"\n },\n 0x45db: {\n name: \"EditionFlagDefault\",\n level: 3,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n \"default\": 0,\n range: \"0-1\",\n description: \"If a flag is set (1) the edition should be used as the default one. (1 bit)\"\n },\n 0x45bd: {\n name: \"EditionFlagHidden\",\n level: 3,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n \"default\": 0,\n range: \"0-1\",\n description: \"If an edition is hidden (1), it should not be available to the user interface (but still to Control Tracks; see flag notes). (1 bit)\"\n },\n 0x45bc: {\n name: \"EditionUID\",\n level: 3,\n type: \"u\",\n minver: 1,\n webm: false,\n range: \"not 0\",\n description: \"A unique ID to identify the edition. It's useful for tagging an edition.\"\n },\n 0x45b9: {\n name: \"EditionEntry\",\n level: 2,\n type: \"m\",\n mandatory: true,\n multiple: true,\n minver: 1,\n webm: true,\n description: \"Contains all information about a segment edition.\"\n },\n 0x1043a770: {\n name: \"Chapters\",\n level: 1,\n type: \"m\",\n minver: 1,\n webm: true,\n description: \"A system to define basic menus and partition data. For more detailed information, look at the Chapters Explanation.\"\n },\n 0x46ae: {\n name: \"FileUID\",\n level: 3,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n range: \"not 0\",\n description: \"Unique ID representing the file, as random as possible.\"\n },\n 0x465c: {\n name: \"FileData\",\n level: 3,\n type: \"b\",\n mandatory: true,\n minver: 1,\n webm: false,\n description: \"The data of the file.\"\n },\n 0x466e: {\n name: \"FileName\",\n level: 3,\n type: \"8\",\n mandatory: true,\n minver: 1,\n webm: false,\n description: \"Filename of the attached file.\"\n },\n 0x467e: {\n name: \"FileDescription\",\n level: 3,\n type: \"8\",\n minver: 1,\n webm: false,\n description: \"A human-friendly name for the attached file.\"\n },\n 0x61a7: {\n name: \"AttachedFile\",\n level: 2,\n type: \"m\",\n mandatory: true,\n multiple: true,\n minver: 1,\n webm: false,\n description: \"An attached file.\"\n },\n 0x1941a469: {\n name: \"Attachments\",\n level: 1,\n type: \"m\",\n minver: 1,\n webm: false,\n description: \"Contain attached files.\"\n },\n 0xeb: {\n name: \"CueRefCodecState\",\n level: 5,\n type: \"u\",\n webm: false,\n \"default\": 0,\n description: \"The position of the Codec State corresponding to this referenced element. 0 means that the data is taken from the initial Track Entry.\"\n },\n 0x535f: {\n name: \"CueRefNumber\",\n level: 5,\n type: \"u\",\n webm: false,\n \"default\": 1,\n range: \"not 0\",\n description: \"Number of the referenced Block of Track X in the specified Cluster.\"\n },\n 0xdb: {\n name: \"CueReference\",\n level: 4,\n type: \"m\",\n multiple: true,\n minver: 2,\n webm: false,\n description: \"The Clusters containing the required referenced Blocks.\"\n },\n 0xea: {\n name: \"CueCodecState\",\n level: 4,\n type: \"u\",\n minver: 2,\n webm: false,\n \"default\": 0,\n description: \"The position of the Codec State corresponding to this Cue element. 0 means that the data is taken from the initial Track Entry.\"\n },\n 0xb2: {\n name: \"CueDuration\",\n level: 4,\n type: \"u\",\n mandatory: false,\n minver: 4,\n webm: false,\n description: \"The duration of the block according to the segment time base. If missing the track's DefaultDuration does not apply and no duration information is available in terms of the cues.\"\n },\n 0xf0: {\n name: \"CueRelativePosition\",\n level: 4,\n type: \"u\",\n mandatory: false,\n minver: 4,\n webm: false,\n description: \"The relative position of the referenced block inside the cluster with 0 being the first possible position for an element inside that cluster.\",\n position: \"clusterRelative\"\n },\n 0xf1: {\n name: \"CueClusterPosition\",\n level: 4,\n type: \"u\",\n mandatory: true,\n minver: 1,\n description: \"The position of the Cluster containing the required Block.\",\n position: \"segment\",\n },\n 0xf7: {\n name: \"CueTrack\",\n level: 4,\n type: \"u\",\n mandatory: true,\n minver: 1,\n range: \"not 0\",\n description: \"The track for which a position is given.\"\n },\n 0xb7: {\n name: \"CueTrackPositions\",\n level: 3,\n type: \"m\",\n mandatory: true,\n multiple: true,\n minver: 1,\n description: \"Contain positions for different tracks corresponding to the timestamp.\"\n },\n 0xb3: {\n name: \"CueTime\",\n level: 3,\n type: \"u\",\n mandatory: true,\n minver: 1,\n description: \"Absolute timestamp according to the segment time base.\"\n },\n 0xbb: {\n name: \"CuePoint\",\n level: 2,\n type: \"m\",\n mandatory: true,\n multiple: true,\n minver: 1,\n description: \"Contains all information relative to a seek point in the segment.\"\n },\n 0x1c53bb6b: {\n name: \"Cues\",\n level: 1,\n type: \"m\",\n minver: 1,\n description: \"A top-level element to speed seeking access. All entries are local to the segment. Should be mandatory for non \\\"live\\\" streams.\"\n },\n 0x47e6: {\n name: \"ContentSigHashAlgo\",\n level: 6,\n type: \"u\",\n minver: 1,\n webm: false,\n \"default\": 0,\n // \"br\": [ \"\", \"\" ],\n description: \"The hash algorithm used for the signature. A value of '0' means that the contents have not been signed but only encrypted. Predefined values: 1 - SHA1-160 2 - MD5\"\n },\n 0x47e5: {\n name: \"ContentSigAlgo\",\n level: 6,\n type: \"u\",\n minver: 1,\n webm: false,\n \"default\": 0,\n // \"br\": \"\",\n description: \"The algorithm used for the signature. A value of '0' means that the contents have not been signed but only encrypted. Predefined values: 1 - RSA\"\n },\n 0x47e4: {\n name: \"ContentSigKeyID\",\n level: 6,\n type: \"b\",\n minver: 1,\n webm: false,\n description: \"This is the ID of the private key the data was signed with.\"\n },\n 0x47e3: {\n name: \"ContentSignature\",\n level: 6,\n type: \"b\",\n minver: 1,\n webm: false,\n description: \"A cryptographic signature of the contents.\"\n },\n 0x47e2: {\n name: \"ContentEncKeyID\",\n level: 6,\n type: \"b\",\n minver: 1,\n webm: false,\n description: \"For public key algorithms this is the ID of the public key the the data was encrypted with.\"\n },\n 0x47e1: {\n name: \"ContentEncAlgo\",\n level: 6,\n type: \"u\",\n minver: 1,\n webm: false,\n \"default\": 0,\n // \"br\": \"\",\n description: \"The encryption algorithm used. The value '0' means that the contents have not been encrypted but only signed. Predefined values: 1 - DES, 2 - 3DES, 3 - Twofish, 4 - Blowfish, 5 - AES\"\n },\n 0x6d80: {\n name: \"ContentEncodings\",\n level: 3,\n type: \"m\",\n minver: 1,\n webm: false,\n description: \"Settings for several content encoding mechanisms like compression or encryption.\"\n },\n 0xc4: {\n name: \"TrickMasterTrackSegmentUID\",\n level: 3,\n type: \"b\",\n divx: true,\n bytesize: 16,\n description: \"DivX trick track extenstions\"\n },\n 0xc7: {\n name: \"TrickMasterTrackUID\",\n level: 3,\n type: \"u\",\n divx: true,\n description: \"DivX trick track extenstions\"\n },\n 0xc6: {\n name: \"TrickTrackFlag\",\n level: 3,\n type: \"u\",\n divx: true,\n \"default\": 0,\n description: \"DivX trick track extenstions\"\n },\n 0xc1: {\n name: \"TrickTrackSegmentUID\",\n level: 3,\n type: \"b\",\n divx: true,\n bytesize: 16,\n description: \"DivX trick track extenstions\"\n },\n 0xc0: {\n name: \"TrickTrackUID\",\n level: 3,\n type: \"u\",\n divx: true,\n description: \"DivX trick track extenstions\"\n },\n 0xed: {\n name: \"TrackJoinUID\",\n level: 5,\n type: \"u\",\n mandatory: true,\n multiple: true,\n minver: 3,\n webm: false,\n range: \"not 0\",\n description: \"The trackUID number of a track whose blocks are used to create this virtual track.\"\n },\n 0xe9: {\n name: \"TrackJoinBlocks\",\n level: 4,\n type: \"m\",\n minver: 3,\n webm: false,\n description: \"Contains the list of all tracks whose Blocks need to be combined to create this virtual track\"\n },\n 0xe6: {\n name: \"TrackPlaneType\",\n level: 6,\n type: \"u\",\n mandatory: true,\n minver: 3,\n webm: false,\n description: \"The kind of plane this track corresponds to (0: left eye, 1: right eye, 2: background).\"\n },\n 0xe5: {\n name: \"TrackPlaneUID\",\n level: 6,\n type: \"u\",\n mandatory: true,\n minver: 3,\n webm: false,\n range: \"not 0\",\n description: \"The trackUID number of the track representing the plane.\"\n },\n 0xe4: {\n name: \"TrackPlane\",\n level: 5,\n type: \"m\",\n mandatory: true,\n multiple: true,\n minver: 3,\n webm: false,\n description: \"Contains a video plane track that need to be combined to create this 3D track\"\n },\n 0xe3: {\n name: \"TrackCombinePlanes\",\n level: 4,\n type: \"m\",\n minver: 3,\n webm: false,\n description: \"Contains the list of all video plane tracks that need to be combined to create this 3D track\"\n },\n 0xe2: {\n name: \"TrackOperation\",\n level: 3,\n type: \"m\",\n minver: 3,\n webm: false,\n description: \"Operation that needs to be applied on tracks to create this virtual track. For more details look at the Specification Notes on the subject.\"\n },\n 0x7d7b: {\n name: \"ChannelPositions\",\n cppname: \"AudioPosition\",\n level: 4,\n type: \"b\",\n webm: false,\n description: \"Table of horizontal angles for each successive channel, see appendix.\"\n },\n 0x9f: {\n name: \"Channels\",\n cppname: \"AudioChannels\",\n level: 4,\n type: \"u\",\n mandatory: true,\n minver: 1,\n \"default\": 1,\n range: \"not 0\",\n description: \"Numbers of channels in the track.\"\n },\n 0x78b5: {\n name: \"OutputSamplingFrequency\",\n cppname: \"AudioOutputSamplingFreq\",\n level: 4,\n type: \"f\",\n minver: 1,\n \"default\": \"Sampling Frequency\",\n range: \"> 0\",\n description: \"Real output sampling frequency in Hz (used for SBR techniques).\"\n },\n 0xb5: {\n name: \"SamplingFrequency\",\n cppname: \"AudioSamplingFreq\",\n level: 4,\n type: \"f\",\n mandatory: true,\n minver: 1,\n \"default\": 8000.0,\n range: \"> 0\",\n description: \"Sampling frequency in Hz.\"\n },\n 0xe1: {\n name: \"Audio\",\n cppname: \"TrackAudio\",\n level: 3,\n type: \"m\",\n minver: 1,\n description: \"Audio settings.\"\n },\n 0x2383e3: {\n name: \"FrameRate\",\n cppname: \"VideoFrameRate\",\n level: 4,\n type: \"f\",\n range: \"> 0\",\n \"strong\": \"Informational\",\n description: \"Number of frames per second. only.\"\n },\n 0x2fb523: {\n name: \"GammaValue\",\n cppname: \"VideoGamma\",\n level: 4,\n type: \"f\",\n webm: false,\n range: \"> 0\",\n description: \"Gamma Value.\"\n },\n 0x2eb524: {\n name: \"ColourSpace\",\n cppname: \"VideoColourSpace\",\n level: 4,\n type: \"b\",\n minver: 1,\n webm: false,\n bytesize: 4,\n description: \"Same value as in AVI (32 bits).\"\n },\n 0x54b3: {\n name: \"AspectRatioType\",\n cppname: \"VideoAspectRatio\",\n level: 4,\n type: \"u\",\n minver: 1,\n \"default\": 0,\n description: \"Specify the possible modifications to the aspect ratio (0: free resizing, 1: keep aspect ratio, 2: fixed).\"\n },\n 0x54b2: {\n name: \"DisplayUnit\",\n cppname: \"VideoDisplayUnit\",\n level: 4,\n type: \"u\",\n minver: 1,\n \"default\": 0,\n description: \"How DisplayWidth & DisplayHeight should be interpreted (0: pixels, 1: centimeters, 2: inches, 3: Display Aspect Ratio).\"\n },\n 0x54ba: {\n name: \"DisplayHeight\",\n cppname: \"VideoDisplayHeight\",\n level: 4,\n type: \"u\",\n minver: 1,\n \"default\": \"PixelHeight\",\n range: \"not 0\",\n description: \"Height of the video frames to display. The default value is only valid when DisplayUnit is 0.\"\n },\n 0x54b0: {\n name: \"DisplayWidth\",\n cppname: \"VideoDisplayWidth\",\n level: 4,\n type: \"u\",\n minver: 1,\n \"default\": \"PixelWidth\",\n range: \"not 0\",\n description: \"Width of the video frames to display. The default value is only valid when DisplayUnit is 0.\"\n },\n 0x54dd: {\n name: \"PixelCropRight\",\n cppname: \"VideoPixelCropRight\",\n level: 4,\n type: \"u\",\n minver: 1,\n \"default\": 0,\n description: \"The number of video pixels to remove on the right of the image.\"\n },\n 0x54cc: {\n name: \"PixelCropLeft\",\n cppname: \"VideoPixelCropLeft\",\n level: 4,\n type: \"u\",\n minver: 1,\n \"default\": 0,\n description: \"The number of video pixels to remove on the left of the image.\"\n },\n 0x54bb: {\n name: \"PixelCropTop\",\n cppname: \"VideoPixelCropTop\",\n level: 4,\n type: \"u\",\n minver: 1,\n \"default\": 0,\n description: \"The number of video pixels to remove at the top of the image.\"\n },\n 0x54aa: {\n name: \"PixelCropBottom\",\n cppname: \"VideoPixelCropBottom\",\n level: 4,\n type: \"u\",\n minver: 1,\n \"default\": 0,\n description: \"The number of video pixels to remove at the bottom of the image (for HDTV content).\"\n },\n 0xba: {\n name: \"PixelHeight\",\n cppname: \"VideoPixelHeight\",\n level: 4,\n type: \"u\",\n mandatory: true,\n minver: 1,\n range: \"not 0\",\n description: \"Height of the encoded video frames in pixels.\"\n },\n 0xb0: {\n name: \"PixelWidth\",\n cppname: \"VideoPixelWidth\",\n level: 4,\n type: \"u\",\n mandatory: true,\n minver: 1,\n range: \"not 0\",\n description: \"Width of the encoded video frames in pixels.\"\n },\n 0x53b9: {\n name: \"OldStereoMode\",\n level: 4,\n type: \"u\",\n \"maxver\": \"0\",\n webm: false,\n divx: false,\n description: \"DEPRECATED, DO NOT USE. Bogus StereoMode value used in old versions of libmatroska. (0: mono, 1: right eye, 2: left eye, 3: both eyes).\"\n },\n 0x53c0: {\n name: \"AlphaMode\",\n cppname: \"VideoAlphaMode\",\n level: 4,\n type: \"u\",\n minver: 3,\n webm: true,\n \"default\": 0,\n description: \"Alpha Video Mode. Presence of this element indicates that the BlockAdditional element could contain Alpha data.\"\n },\n 0x53b8: {\n name: \"StereoMode\",\n cppname: \"VideoStereoMode\",\n level: 4,\n type: \"u\",\n minver: 3,\n webm: true,\n \"default\": 0,\n description: \"Stereo-3D video mode (0: mono, 1: side by side (left eye is first), 2: top-bottom (right eye is first), 3: top-bottom (left eye is first), 4: checkboard (right is first), 5: checkboard (left is first), 6: row interleaved (right is first), 7: row interleaved (left is first), 8: column interleaved (right is first), 9: column interleaved (left is first), 10: anaglyph (cyan/red), 11: side by side (right eye is first), 12: anaglyph (green/magenta), 13 both eyes laced in one Block (left eye is first), 14 both eyes laced in one Block (right eye is first)) . There are some more details on 3D support in the Specification Notes.\"\n },\n 0x9a: {\n name: \"FlagInterlaced\",\n cppname: \"VideoFlagInterlaced\",\n level: 4,\n type: \"u\",\n mandatory: true,\n minver: 2,\n webm: true,\n \"default\": 0,\n range: \"0-1\",\n description: \"Set if the video is interlaced. (1 bit)\"\n },\n 0xe0: {\n name: \"Video\",\n cppname: \"TrackVideo\",\n level: 3,\n type: \"m\",\n minver: 1,\n description: \"Video settings.\"\n },\n 0x66a5: {\n name: \"TrackTranslateTrackID\",\n level: 4,\n type: \"b\",\n mandatory: true,\n minver: 1,\n webm: false,\n description: \"The binary value used to represent this track in the chapter codec data. The format depends on the ChapProcessCodecID used.\"\n },\n 0x66bf: {\n name: \"TrackTranslateCodec\",\n level: 4,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n description: \"The chapter codec using this ID (0: Matroska Script, 1: DVD-menu).\"\n },\n 0x66fc: {\n name: \"TrackTranslateEditionUID\",\n level: 4,\n type: \"u\",\n multiple: true,\n minver: 1,\n webm: false,\n description: \"Specify an edition UID on which this translation applies. When not specified, it means for all editions found in the segment.\"\n },\n 0x56bb: {\n name: \"SeekPreRoll\",\n level: 3,\n type: \"u\",\n mandatory: true,\n multiple: false,\n \"default\": 0,\n minver: 4,\n webm: true,\n description: \"After a discontinuity, SeekPreRoll is the duration in nanoseconds of the data the decoder must decode before the decoded data is valid.\"\n },\n 0x56aa: {\n name: \"CodecDelay\",\n level: 3,\n type: \"u\",\n multiple: false,\n \"default\": 0,\n minver: 4,\n webm: true,\n description: \"CodecDelay is The codec-built-in delay in nanoseconds. This value must be subtracted from each block timestamp in order to get the actual timestamp. The value should be small so the muxing of tracks with the same actual timestamp are in the same Cluster.\"\n },\n 0x6fab: {\n name: \"TrackOverlay\",\n level: 3,\n type: \"u\",\n multiple: true,\n minver: 1,\n webm: false,\n description: \"Specify that this track is an overlay track for the Track specified (in the u-integer). That means when this track has a gap (see SilentTracks) the overlay track should be used instead. The order of multiple TrackOverlay matters, the first one is the one that should be used. If not found it should be the second, etc.\"\n },\n 0xaa: {\n name: \"CodecDecodeAll\",\n level: 3,\n type: \"u\",\n mandatory: true,\n minver: 2,\n webm: false,\n \"default\": 1,\n range: \"0-1\",\n description: \"The codec can decode potentially damaged data (1 bit).\"\n },\n 0x26b240: {\n name: \"CodecDownloadURL\",\n level: 3,\n type: \"s\",\n multiple: true,\n webm: false,\n description: \"A URL to download about the codec used.\"\n },\n 0x3b4040: {\n name: \"CodecInfoURL\",\n level: 3,\n type: \"s\",\n multiple: true,\n webm: false,\n description: \"A URL to find information about the codec used.\"\n },\n 0x3a9697: {\n name: \"CodecSettings\",\n level: 3,\n type: \"8\",\n webm: false,\n description: \"A string describing the encoding setting used.\"\n },\n 0x63a2: {\n name: \"CodecPrivate\",\n level: 3,\n type: \"b\",\n minver: 1,\n description: \"Private data only known to the codec.\"\n },\n 0x22b59c: {\n name: \"Language\",\n cppname: \"TrackLanguage\",\n level: 3,\n type: \"s\",\n minver: 1,\n \"default\": \"eng\",\n description: \"Specifies the language of the track in the Matroska languages form.\"\n },\n 0x536e: {\n name: \"Name\",\n cppname: \"TrackName\",\n level: 3,\n type: \"8\",\n minver: 1,\n description: \"A human-readable track name.\"\n },\n 0x55ee: {\n name: \"MaxBlockAdditionID\",\n level: 3,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n \"default\": 0,\n description: \"The maximum value of BlockAdditions for this track.\"\n },\n 0x537f: {\n name: \"TrackOffset\",\n level: 3,\n type: \"i\",\n webm: false,\n \"default\": 0,\n description: \"A value to add to the Block's Timestamp. This can be used to adjust the playback offset of a track.\"\n },\n 0x23314f: {\n name: \"TrackTimecodeScale\",\n level: 3,\n type: \"f\",\n mandatory: true,\n minver: 1,\n \"maxver\": \"3\",\n webm: false,\n \"default\": 1.0,\n range: \"> 0\",\n description: \"DEPRECATED, DO NOT USE. The scale to apply on this track to work at normal speed in relation with other tracks (mostly used to adjust video speed when the audio length differs).\"\n },\n 0x234e7a: {\n name: \"DefaultDecodedFieldDuration\",\n cppname: \"TrackDefaultDecodedFieldDuration\",\n level: 3,\n type: \"u\",\n minver: 4,\n range: \"not 0\",\n description: \"The period in nanoseconds (not scaled by TimcodeScale)\\nbetween two successive fields at the output of the decoding process (see the notes)\"\n },\n 0x23e383: {\n name: \"DefaultDuration\",\n cppname: \"TrackDefaultDuration\",\n level: 3,\n type: \"u\",\n minver: 1,\n range: \"not 0\",\n description: \"Number of nanoseconds (not scaled via TimecodeScale) per frame ('frame' in the Matroska sense -- one element put into a (Simple)Block).\"\n },\n 0x6df8: {\n name: \"MaxCache\",\n cppname: \"TrackMaxCache\",\n level: 3,\n type: \"u\",\n minver: 1,\n webm: false,\n description: \"The maximum cache size required to store referenced frames in and the current frame. 0 means no cache is needed.\"\n },\n 0x6de7: {\n name: \"MinCache\",\n cppname: \"TrackMinCache\",\n level: 3,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n \"default\": 0,\n description: \"The minimum number of frames a player should be able to cache during playback. If set to 0, the reference pseudo-cache system is not used.\"\n },\n 0x9c: {\n name: \"FlagLacing\",\n cppname: \"TrackFlagLacing\",\n level: 3,\n type: \"u\",\n mandatory: true,\n minver: 1,\n \"default\": 1,\n range: \"0-1\",\n description: \"Set if the track may contain blocks using lacing. (1 bit)\"\n },\n 0x55aa: {\n name: \"FlagForced\",\n cppname: \"TrackFlagForced\",\n level: 3,\n type: \"u\",\n mandatory: true,\n minver: 1,\n \"default\": 0,\n range: \"0-1\",\n description: \"Set if that track MUST be active during playback. There can be many forced track for a kind (audio, video or subs), the player should select the one which language matches the user preference or the default + forced track. Overlay MAY happen between a forced and non-forced track of the same kind. (1 bit)\"\n },\n 0xb9: {\n name: \"FlagEnabled\",\n cppname: \"TrackFlagEnabled\",\n level: 3,\n type: \"u\",\n mandatory: true,\n minver: 2,\n webm: true,\n \"default\": 1,\n range: \"0-1\",\n description: \"Set if the track is usable. (1 bit)\"\n },\n 0x73c5: {\n name: \"TrackUID\",\n level: 3,\n type: \"u\",\n mandatory: true,\n minver: 1,\n range: \"not 0\",\n description: \"A unique ID to identify the Track. This should be kept the same when making a direct stream copy of the Track to another file.\"\n },\n 0xd7: {\n name: \"TrackNumber\",\n level: 3,\n type: \"u\",\n mandatory: true,\n minver: 1,\n range: \"not 0\",\n description: \"The track number as used in the Block Header (using more than 127 tracks is not encouraged, though the design allows an unlimited number).\"\n },\n 0xae: {\n name: \"TrackEntry\",\n level: 2,\n type: \"m\",\n mandatory: true,\n multiple: true,\n minver: 1,\n description: \"Describes a track with all elements.\"\n },\n 0x1654ae6b: {\n name: \"Tracks\",\n level: 1,\n type: \"m\",\n multiple: true,\n minver: 1,\n description: \"A top-level block of information with many tracks described.\"\n },\n 0xaf: {\n name: \"EncryptedBlock\",\n level: 2,\n type: \"b\",\n multiple: true,\n webm: false,\n description: \"Similar to EncryptedBlock Structure)\"\n },\n 0xca: {\n name: \"ReferenceTimeCode\",\n level: 4,\n type: \"u\",\n multiple: false,\n mandatory: true,\n minver: 0,\n webm: false,\n divx: true,\n description: \"DivX trick track extenstions\"\n },\n 0xc9: {\n name: \"ReferenceOffset\",\n level: 4,\n type: \"u\",\n multiple: false,\n mandatory: true,\n minver: 0,\n webm: false,\n divx: true,\n description: \"DivX trick track extenstions\"\n },\n 0xc8: {\n name: \"ReferenceFrame\",\n level: 3,\n type: \"m\",\n multiple: false,\n minver: 0,\n webm: false,\n divx: true,\n description: \"DivX trick track extenstions\"\n },\n 0xcf: {\n name: \"SliceDuration\",\n level: 5,\n type: \"u\",\n \"default\": 0,\n description: \"The (scaled) duration to apply to the element.\"\n },\n 0xce: {\n name: \"Delay\",\n cppname: \"SliceDelay\",\n level: 5,\n type: \"u\",\n \"default\": 0,\n description: \"The (scaled) delay to apply to the element.\"\n },\n 0xcb: {\n name: \"BlockAdditionID\",\n cppname: \"SliceBlockAddID\",\n level: 5,\n type: \"u\",\n \"default\": 0,\n description: \"The ID of the BlockAdditional element (0 is the main Block).\"\n },\n 0xcd: {\n name: \"FrameNumber\",\n cppname: \"SliceFrameNumber\",\n level: 5,\n type: \"u\",\n \"default\": 0,\n description: \"The number of the frame to generate from this lace with this delay (allow you to generate many frames from the same Block/Frame).\"\n },\n 0xcc: {\n name: \"LaceNumber\",\n cppname: \"SliceLaceNumber\",\n level: 5,\n type: \"u\",\n minver: 1,\n \"default\": 0,\n divx: false,\n description: \"The reverse number of the frame in the lace (0 is the last frame, 1 is the next to last, etc). While there are a few files in the wild with this element, it is no longer in use and has been deprecated. Being able to interpret this element is not required for playback.\"\n },\n 0xe8: {\n name: \"TimeSlice\",\n level: 4,\n type: \"m\",\n multiple: true,\n minver: 1,\n divx: false,\n description: \"Contains extra time information about the data contained in the Block. While there are a few files in the wild with this element, it is no longer in use and has been deprecated. Being able to interpret this element is not required for playback.\"\n },\n 0x8e: {\n name: \"Slices\",\n level: 3,\n type: \"m\",\n minver: 1,\n divx: false,\n description: \"Contains slices description.\"\n },\n 0x75a2: {\n name: \"DiscardPadding\",\n level: 3,\n type: \"i\",\n minver: 4,\n webm: true,\n description: \"Duration in nanoseconds of the silent data added to the Block (padding at the end of the Block for positive value, at the beginning of the Block for negative value). The duration of DiscardPadding is not calculated in the duration of the TrackEntry and should be discarded during playback.\"\n },\n 0xa4: {\n name: \"CodecState\",\n level: 3,\n type: \"b\",\n minver: 2,\n webm: false,\n description: \"The new codec state to use. Data interpretation is private to the codec. This information should always be referenced by a seek entry.\"\n },\n 0xfd: {\n name: \"ReferenceVirtual\",\n level: 3,\n type: \"i\",\n webm: false,\n description: \"Relative position of the data that should be in position of the virtual block.\"\n },\n 0xfb: {\n name: \"ReferenceBlock\",\n level: 3,\n type: \"i\",\n multiple: true,\n minver: 1,\n description: \"Timestamp of another frame used as a reference (ie: B or P frame). The timestamp is relative to the block it's attached to.\"\n },\n 0xfa: {\n name: \"ReferencePriority\",\n cppname: \"FlagReferenced\",\n level: 3,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n \"default\": 0,\n description: \"This frame is referenced and has the specified cache priority. In cache only a frame of the same or higher priority can replace this frame. A value of 0 means the frame is not referenced.\"\n },\n 0x9b: {\n name: \"BlockDuration\",\n level: 3,\n type: \"u\",\n minver: 1,\n \"default\": \"TrackDuration\",\n description: \"The duration of the Block (based on TimecodeScale). This element is mandatory when DefaultDuration is set for the track (but can be omitted as other default values). When not written and with no DefaultDuration, the value is assumed to be the difference between the timestamp of this Block and the timestamp of the next Block in \\\"display\\\" order (not coding order). This element can be useful at the end of a Track (as there is not other Block available), or when there is a break in a track like for subtitle tracks. When set to 0 that means the frame is not a keyframe.\"\n },\n 0xa5: {\n name: \"BlockAdditional\",\n level: 5,\n type: \"b\",\n mandatory: true,\n minver: 1,\n webm: false,\n description: \"Interpreted by the codec as it wishes (using the BlockAddID).\"\n },\n 0xee: {\n name: \"BlockAddID\",\n level: 5,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n \"default\": 1,\n range: \"not 0\",\n description: \"An ID to identify the BlockAdditional level.\"\n },\n 0xa6: {\n name: \"BlockMore\",\n level: 4,\n type: \"m\",\n mandatory: true,\n multiple: true,\n minver: 1,\n webm: false,\n description: \"Contain the BlockAdditional and some parameters.\"\n },\n 0x75a1: {\n name: \"BlockAdditions\",\n level: 3,\n type: \"m\",\n minver: 1,\n webm: false,\n description: \"Contain additional blocks to complete the main one. An EBML parser that has no knowledge of the Block structure could still see and use/skip these data.\"\n },\n 0xa2: {\n name: \"BlockVirtual\",\n level: 3,\n type: \"b\",\n webm: false,\n description: \"A Block with no data. It must be stored in the stream at the place the real Block should be in display order. (see Block Virtual)\"\n },\n 0xa1: {\n name: \"Block\",\n level: 3,\n type: \"b\",\n mandatory: true,\n minver: 1,\n description: \"Block containing the actual data to be rendered and a timestamp relative to the Cluster Timecode. (see Block Structure)\"\n },\n 0xa0: {\n name: \"BlockGroup\",\n level: 2,\n type: \"m\",\n multiple: true,\n minver: 1,\n description: \"Basic container of information containing a single Block or BlockVirtual, and information specific to that Block/VirtualBlock.\"\n },\n 0xa3: {\n name: \"SimpleBlock\",\n level: 2,\n type: \"b\",\n multiple: true,\n minver: 2,\n webm: true,\n divx: true,\n description: \"Similar to SimpleBlock Structure\"\n },\n 0xab: {\n name: \"PrevSize\",\n cppname: \"ClusterPrevSize\",\n level: 2,\n type: \"u\",\n minver: 1,\n description: \"Size of the previous Cluster, in octets. Can be useful for backward playing.\",\n position: \"prevCluster\"\n },\n 0xa7: {\n name: \"Position\",\n cppname: \"ClusterPosition\",\n level: 2,\n type: \"u\",\n minver: 1,\n webm: false,\n description: \"The Position of the Cluster in the segment (0 in live broadcast streams). It might help to resynchronise offset on damaged streams.\",\n position: \"segment\"\n },\n 0x58d7: {\n name: \"SilentTrackNumber\",\n cppname: \"ClusterSilentTrackNumber\",\n level: 3,\n type: \"u\",\n multiple: true,\n minver: 1,\n webm: false,\n description: \"One of the track number that are not used from now on in the stream. It could change later if not specified as silent in a further Cluster.\"\n },\n 0xe7: {\n name: \"Timecode\",\n cppname: \"ClusterTimecode\",\n level: 2,\n type: \"u\",\n mandatory: true,\n minver: 1,\n description: \"Absolute timestamp of the cluster (based on TimecodeScale).\"\n },\n 0x1f43b675: {\n name: \"Cluster\",\n level: 1,\n type: \"m\",\n multiple: true,\n minver: 1,\n description: \"The lower level element containing the (monolithic) Block structure.\"\n },\n 0x4d80: {\n name: \"MuxingApp\",\n level: 2,\n type: \"8\",\n mandatory: true,\n minver: 1,\n description: \"Muxing application or library (\\\"libmatroska-0.4.3\\\").\"\n },\n 0x7ba9: {\n name: \"Title\",\n level: 2,\n type: \"8\",\n minver: 1,\n webm: false,\n description: \"General name of the segment.\"\n },\n 0x2ad7b2: {\n name: \"TimecodeScaleDenominator\",\n level: 2,\n type: \"u\",\n mandatory: true,\n minver: 4,\n \"default\": \"1000000000\",\n description: \"Timestamp scale numerator, see TimecodeScale.\"\n },\n 0x2ad7b1: {\n name: \"TimecodeScale\",\n level: 2,\n type: \"u\",\n mandatory: true,\n minver: 1,\n \"default\": \"1000000\",\n description: \"Timestamp scale in nanoseconds (1.000.000 means all timestamps in the segment are expressed in milliseconds).\"\n },\n 0x69a5: {\n name: \"ChapterTranslateID\",\n level: 3,\n type: \"b\",\n mandatory: true,\n minver: 1,\n webm: false,\n description: \"The binary value used to represent this segment in the chapter codec data. The format depends on the ChapProcessCodecID used.\"\n },\n 0x69bf: {\n name: \"ChapterTranslateCodec\",\n level: 3,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n description: \"The chapter codec using this ID (0: Matroska Script, 1: DVD-menu).\"\n },\n 0x69fc: {\n name: \"ChapterTranslateEditionUID\",\n level: 3,\n type: \"u\",\n multiple: true,\n minver: 1,\n webm: false,\n description: \"Specify an edition UID on which this correspondance applies. When not specified, it means for all editions found in the segment.\"\n },\n 0x3e83bb: {\n name: \"NextFilename\",\n level: 2,\n type: \"8\",\n minver: 1,\n webm: false,\n description: \"An escaped filename corresponding to the next segment.\"\n },\n 0x3eb923: {\n name: \"NextUID\",\n level: 2,\n type: \"b\",\n minver: 1,\n webm: false,\n bytesize: 16,\n description: \"A unique ID to identify the next chained segment (128 bits).\"\n },\n 0x3c83ab: {\n name: \"PrevFilename\",\n level: 2,\n type: \"8\",\n minver: 1,\n webm: false,\n description: \"An escaped filename corresponding to the previous segment.\"\n },\n 0x3cb923: {\n name: \"PrevUID\",\n level: 2,\n type: \"b\",\n minver: 1,\n webm: false,\n bytesize: 16,\n description: \"A unique ID to identify the previous chained segment (128 bits).\"\n },\n 0x73a4: {\n name: \"SegmentUID\",\n level: 2,\n type: \"b\",\n minver: 1,\n webm: false,\n range: \"not 0\",\n bytesize: 16,\n description: \"A randomly generated unique ID to identify the current segment between many others (128 bits).\"\n },\n 0x1549a966: {\n name: \"Info\",\n level: 1,\n type: \"m\",\n mandatory: true,\n multiple: true,\n minver: 1,\n description: \"Contains miscellaneous general information and statistics on the file.\"\n },\n 0x53ac: {\n name: \"SeekPosition\",\n level: 3,\n type: \"u\",\n mandatory: true,\n minver: 1,\n description: \"The position of the element in the segment in octets (0 = first level 1 element).\",\n position: \"segment\"\n },\n 0x53ab: {\n name: \"SeekID\",\n level: 3,\n type: \"b\",\n mandatory: true,\n minver: 1,\n description: \"The binary ID corresponding to the element name.\",\n type2: \"ebmlID\"\n },\n 0x4dbb: {\n name: \"Seek\",\n cppname: \"SeekPoint\",\n level: 2,\n type: \"m\",\n mandatory: true,\n multiple: true,\n minver: 1,\n description: \"Contains a single seek entry to an EBML element.\"\n },\n 0x114d9b74: {\n name: \"SeekHead\",\n cppname: \"SeekHeader\",\n level: 1,\n type: \"m\",\n multiple: true,\n minver: 1,\n description: \"Contains the position of other level 1 elements.\"\n },\n 0x7e7b: {\n name: \"SignatureElementList\",\n level: 2,\n type: \"m\",\n multiple: true,\n webm: false,\n i: \"Cluster|Block|BlockAdditional\",\n description: \"A list consists of a number of consecutive elements that represent one case where data is used in signature. Ex: means that the BlockAdditional of all Blocks in all Clusters is used for encryption.\"\n },\n 0x7e5b: {\n name: \"SignatureElements\",\n level: 1,\n type: \"m\",\n webm: false,\n description: \"Contains elements that will be used to compute the signature.\"\n },\n 0x7eb5: {\n name: \"Signature\",\n level: 1,\n type: \"b\",\n webm: false,\n description: \"The signature of the data (until a new.\"\n },\n 0x7ea5: {\n name: \"SignaturePublicKey\",\n level: 1,\n type: \"b\",\n webm: false,\n description: \"The public key to use with the algorithm (in the case of a PKI-based signature).\"\n },\n 0x7e9a: {\n name: \"SignatureHash\",\n level: 1,\n type: \"u\",\n webm: false,\n description: \"Hash algorithm used (1=SHA1-160, 2=MD5).\"\n },\n 0x7e8a: {\n name: \"SignatureAlgo\",\n level: 1,\n type: \"u\",\n webm: false,\n description: \"Signature algorithm used (1=RSA, 2=elliptic).\"\n },\n 0x1b538667: {\n name: \"SignatureSlot\",\n level: -1,\n type: \"m\",\n multiple: true,\n webm: false,\n description: \"Contain signature of some (coming) elements in the stream.\"\n },\n 0xbf: {\n name: \"CRC-32\",\n level: -1,\n type: \"b\",\n minver: 1,\n webm: false,\n description: \"The CRC is computed on all the data of the Master element it's in. The CRC element should be the first in it's parent master for easier reading. All level 1 elements should include a CRC-32. The CRC in use is the IEEE CRC32 Little Endian\",\n crc: true\n },\n 0xec: {\n name: \"Void\",\n level: -1,\n type: \"b\",\n minver: 1,\n description: \"Used to void damaged data, to avoid unexpected behaviors when using damaged data. The content is discarded. Also used to reserve space in a sub-element for later use.\"\n },\n 0x42f3: {\n name: \"EBMLMaxSizeLength\",\n level: 1,\n type: \"u\",\n mandatory: true,\n \"default\": 8,\n minver: 1,\n description: \"The maximum length of the sizes you'll find in this file (8 or less in Matroska). This does not override the element size indicated at the beginning of an element. Elements that have an indicated size which is larger than what is allowed by EBMLMaxSizeLength shall be considered invalid.\"\n },\n 0x42f2: {\n name: \"EBMLMaxIDLength\",\n level: 1,\n type: \"u\",\n mandatory: true,\n \"default\": 4,\n minver: 1,\n description: \"The maximum length of the IDs you'll find in this file (4 or less in Matroska).\"\n },\n 0x42f7: {\n name: \"EBMLReadVersion\",\n level: 1,\n type: \"u\",\n mandatory: true,\n \"default\": 1,\n minver: 1,\n description: \"The minimum EBML version a parser has to support to read this file.\"\n },\n 0x1a45dfa3: {\n name: \"EBML\",\n level: \"0\",\n type: \"m\",\n mandatory: true,\n multiple: true,\n minver: 1,\n description: \"Set the EBML characteristics of the data to follow. Each EBML document has to start with this.\"\n },\n 0x55b0: {\n name: \"Colour\",\n level: \"4\",\n type: \"m\",\n mandatory: true,\n multiple: true,\n description: \"Settings describing the colour format.\"\n },\n 0x55b1: {\n name: \"MatrixCoefficients\",\n level: \"5\",\n type: \"u\",\n mandatory: true,\n multiple: true,\n description: \"The Matrix Coefficients of the video used to derive luma and chroma values from red, green, and blue color primaries. For clarity, the value and meanings for MatrixCoefficients are adopted from Table 4 of ISO/IEC 23001-8:2016 or ITU-T H.273.\"\n },\n 0x55b9: {\n name: \"Range\",\n level: \"5\",\n type: \"u\",\n mandatory: true,\n multiple: true,\n description: \"Clipping of the color ranges.\"\n },\n 0x55ba: {\n name: \"TransferCharacteristics\",\n level: \"5\",\n type: \"u\",\n mandatory: true,\n multiple: true,\n description: \"The transfer characteristics of the video.\"\n },\n 0x55bb: {\n name: \"Primaries\",\n level: \"5\",\n type: \"u\",\n mandatory: true,\n multiple: true,\n description: \"The colour primaries of the video. For clarity, the value and meanings for Primaries are adopted from Table 2 of ISO/IEC 23091-4 or ITU-T H.273.\"\n },\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.tools = exports.Reader = exports.Encoder = exports.Decoder = void 0;\n__exportStar(require(\"./EBML\"), exports);\nvar EBMLDecoder_1 = require(\"./EBMLDecoder\");\nexports.Decoder = EBMLDecoder_1.default;\nvar EBMLEncoder_1 = require(\"./EBMLEncoder\");\nexports.Encoder = EBMLEncoder_1.default;\nvar EBMLReader_1 = require(\"./EBMLReader\");\nexports.Reader = EBMLReader_1.default;\nvar tools = require(\"./tools\");\nexports.tools = tools;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tools_1 = require(\"./tools\");\nvar Tools = /** @class */ (function () {\n function Tools() {\n }\n /**\n * read variable length integer per\n * https://www.matroska.org/technical/specs/index.html#EBML_ex\n * @static\n * @param {Buffer} buffer containing input\n * @param {Number} [start=0] position in buffer\n * @returns {{length: Number, value: number}} value / length object\n */\n Tools.readVint = function (buffer, start) {\n if (start === void 0) { start = 0; }\n var length = 8 - Math.floor(Math.log2(buffer[start]));\n if (length > 8) {\n var number = Tools.readHexString(buffer, start, start + length);\n throw new Error(\"Unrepresentable length: \".concat(length, \" \").concat(number));\n }\n if (start + length > buffer.length) {\n return null;\n }\n var value = buffer[start] & ((1 << (8 - length)) - 1);\n for (var i = 1; i < length; i += 1) {\n if (i === 7) {\n if (value >= Math.pow(2, 8) && buffer[start + 7] > 0) {\n return { length: length, value: -1 };\n }\n }\n value *= Math.pow(2, 8);\n value += buffer[start + i];\n }\n return { length: length, value: value };\n };\n /**\n * write variable length integer\n * @static\n * @param {Number} value to store into buffer\n * @returns {Buffer} containing the value\n */\n Tools.writeVint = function (value) {\n if (value < 0 || value > Math.pow(2, 53)) {\n throw new Error(\"Unrepresentable value: \".concat(value));\n }\n var length = 1;\n for (length = 1; length <= 8; length += 1) {\n if (value < Math.pow(2, (7 * length)) - 1) {\n break;\n }\n }\n var buffer = tools_1.Buffer.alloc(length);\n var val = value;\n for (var i = 1; i <= length; i += 1) {\n var b = val & 0xff;\n buffer[length - i] = b;\n val -= b;\n val /= Math.pow(2, 8);\n }\n buffer[0] |= 1 << (8 - length);\n return buffer;\n };\n /**\n * *\n * concatenate two arrays of bytes\n * @static\n * @param {Buffer} a1 First array\n * @param {Buffer} a2 Second array\n * @returns {Buffer} concatenated arrays\n */\n Tools.concatenate = function (a1, a2) {\n // both null or undefined\n if (!a1 && !a2) {\n return tools_1.Buffer.from([]);\n }\n if (!a1 || a1.byteLength === 0) {\n return a2;\n }\n if (!a2 || a2.byteLength === 0) {\n return a1;\n }\n return tools_1.Buffer.from(__spreadArray(__spreadArray([], a1, true), a2, true));\n };\n /**\n * get a hex text string from Buff[start,end)\n * @param {Buffer} buff from which to read the string\n * @param {Number} [start=0] starting point (default 0)\n * @param {Number} [end=buff.byteLength] ending point (default the whole buffer)\n * @returns {string} the hex string\n */\n Tools.readHexString = function (buff, start, end) {\n if (start === void 0) { start = 0; }\n if (end === void 0) { end = buff.byteLength; }\n return Array.from(buff.slice(start, end))\n .map(function (q) { return Number(q).toString(16); })\n .reduce(function (acc, current) { return \"\".concat(acc).concat(current.padStart(2, '0')); }, '');\n };\n /**\n * tries to read out a UTF-8 encoded string\n * @param {Buffer} buff the buffer to attempt to read from\n * @return {string|null} the decoded text, or null if unable to\n */\n Tools.readUtf8 = function (buff) {\n try {\n return tools_1.Buffer.from(buff).toString('utf8');\n }\n catch (exception) {\n return null;\n }\n };\n /**\n * get an unsigned number from a buffer\n * @param {Buffer} buff from which to read variable-length unsigned number\n * @returns {number|string} result (in hex for lengths > 6)\n */\n Tools.readUnsigned = function (buff) {\n var b = new DataView(buff.buffer, buff.byteOffset, buff.byteLength);\n switch (buff.byteLength) {\n case 1:\n return b.getUint8(0);\n case 2:\n return b.getUint16(0);\n case 4:\n return b.getUint32(0);\n default:\n break;\n }\n if (buff.byteLength <= 6) {\n return buff.reduce(function (acc, current) { return acc * 256 + current; }, 0);\n }\n return Tools.readHexString(buff, 0, buff.byteLength);\n };\n /**\n * get an signed number from a buffer\n * @static\n * @param {Buffer} buff from which to read variable-length signed number\n * @returns {number} result\n */\n Tools.readSigned = function (buff) {\n var b = new DataView(buff.buffer, buff.byteOffset, buff.byteLength);\n switch (buff.byteLength) {\n case 1:\n return b.getInt8(0);\n case 2:\n return b.getInt16(0);\n case 4:\n return b.getInt32(0);\n default:\n return NaN;\n }\n };\n /**\n * get an floating-point number from a buffer\n * @static\n * @param {Buffer} buff from which to read variable-length floating-point number\n * @returns {number} result\n */\n Tools.readFloat = function (buff) {\n var b = new DataView(buff.buffer, buff.byteOffset, buff.byteLength);\n switch (buff.byteLength) {\n case 4:\n return b.getFloat32(0);\n case 8:\n return b.getFloat64(0);\n default:\n return NaN;\n }\n };\n /**\n * get a date from a buffer\n * @static\n * @param {Buffer} buff from which to read the date\n * @return {Date} result\n */\n Tools.readDate = function (buff) {\n var b = new DataView(buff.buffer, buff.byteOffset, buff.byteLength);\n switch (buff.byteLength) {\n case 1:\n return new Date(b.getUint8(0));\n case 2:\n return new Date(b.getUint16(0));\n case 4:\n return new Date(b.getUint32(0));\n case 8:\n return new Date(Number.parseInt(Tools.readHexString(buff), 16));\n default:\n return new Date(0);\n }\n };\n /**\n * Reads the data from a tag\n * @static\n * @param {TagData} tagObj The tag object to be read\n * @param {Buffer} data Data to be transformed\n * @return {Tag} result\n */\n Tools.readDataFromTag = function (tagObj, data) {\n var type = tagObj.type, name = tagObj.name;\n var track = tagObj.track;\n var discardable = tagObj.discardable || false;\n var keyframe = tagObj.keyframe || false;\n var payload = null;\n var value;\n switch (type) {\n case 'u':\n value = Tools.readUnsigned(data);\n break;\n case 'f':\n value = Tools.readFloat(data);\n break;\n case 'i':\n value = Tools.readSigned(data);\n break;\n case 's':\n value = String.fromCharCode.apply(String, data);\n break;\n case '8':\n value = Tools.readUtf8(data);\n break;\n case 'd':\n value = Tools.readDate(data);\n break;\n default:\n break;\n }\n if (name === 'SimpleBlock' || name === 'Block') {\n var p = 0;\n var _a = Tools.readVint(data, p), length_1 = _a.length, trak = _a.value;\n p += length_1;\n track = trak;\n value = Tools.readSigned(data.subarray(p, p + 2));\n p += 2;\n if (name === 'SimpleBlock') {\n keyframe = Boolean(data[length_1 + 2] & 0x80);\n discardable = Boolean(data[length_1 + 2] & 0x01);\n }\n p += 1;\n payload = data.subarray(p);\n }\n return __assign(__assign({}, tagObj), { data: data, discardable: discardable, keyframe: keyframe, payload: payload, track: track, value: value });\n };\n return Tools;\n}());\nexports.default = Tools;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertEBMLDateToJSDate = exports.createFloatBuffer = exports.createIntBuffer = exports.createUIntBuffer = exports.encodeValueToBuffer = exports.concat = exports.putRefinedMetaData = exports.extractElement = exports.removeElement = exports.makeMetadataSeekable = exports.createRIFFChunk = exports.VP8BitStreamToRiffWebPBuffer = exports.WebPBlockFilter = exports.encodeTag = exports.readBlock = exports.ebmlBlock = exports.writeVint = exports.readVint = exports.Buffer = void 0;\n/// \nvar int64_buffer_1 = require(\"int64-buffer\");\nvar EBMLEncoder_1 = require(\"./EBMLEncoder\");\nvar _Buffer = require(\"buffer\");\nvar tools_ebml_1 = require(\"./tools-ebml\");\nvar _block = require(\"ebml-block\");\nexports.Buffer = _Buffer.Buffer;\nexports.readVint = tools_ebml_1.default.readVint;\nexports.writeVint = tools_ebml_1.default.writeVint;\nexports.ebmlBlock = _block;\nfunction readBlock(buf) {\n return (0, exports.ebmlBlock)(new exports.Buffer(buf));\n}\nexports.readBlock = readBlock;\n/**\n * @param end - if end === false then length is unknown\n */\nfunction encodeTag(tagId, tagData, unknownSize) {\n if (unknownSize === void 0) { unknownSize = false; }\n return concat([\n tagId,\n unknownSize ?\n new exports.Buffer('01ffffffffffffff', 'hex') :\n (0, exports.writeVint)(tagData.length),\n tagData\n ]);\n}\nexports.encodeTag = encodeTag;\n/**\n * WebP ファイルにできる SimpleBlock の パスフィルタ\n */\nfunction WebPBlockFilter(elms) {\n return elms.reduce(function (lst, elm) {\n if (elm.type !== \"b\") {\n return lst;\n }\n if (elm.name !== \"SimpleBlock\") {\n return lst;\n }\n var o = (0, exports.ebmlBlock)(elm.data);\n var hasWebP = o.frames.some(function (frame) {\n // https://tools.ietf.org/html/rfc6386#section-19.1\n var startcode = frame.slice(3, 6).toString(\"hex\");\n return startcode === \"9d012a\";\n });\n if (!hasWebP) {\n return lst;\n }\n return lst.concat(elm);\n }, []);\n}\nexports.WebPBlockFilter = WebPBlockFilter;\n/**\n * @param frame - VP8 BitStream のうち startcode をもつ frame\n * @return - WebP ファイルの ArrayBuffer\n */\nfunction VP8BitStreamToRiffWebPBuffer(frame) {\n var VP8Chunk = createRIFFChunk(\"VP8 \", frame);\n var WebPChunk = concat([\n new exports.Buffer(\"WEBP\", \"ascii\"),\n VP8Chunk\n ]);\n return createRIFFChunk(\"RIFF\", WebPChunk);\n}\nexports.VP8BitStreamToRiffWebPBuffer = VP8BitStreamToRiffWebPBuffer;\n/**\n * RIFF データチャンクを作る\n */\nfunction createRIFFChunk(FourCC, chunk) {\n var chunkSize = new exports.Buffer(4);\n chunkSize.writeUInt32LE(chunk.byteLength, 0);\n return concat([\n new exports.Buffer(FourCC.substr(0, 4), \"ascii\"),\n chunkSize,\n chunk,\n new exports.Buffer(chunk.byteLength % 2 === 0 ? 0 : 1) // padding\n ]);\n}\nexports.createRIFFChunk = createRIFFChunk;\n/* Original Metadata\n\n m 0\tEBML\n u 1\t EBMLVersion 1\n u 1\t EBMLReadVersion 1\n u 1\t EBMLMaxIDLength 4\n u 1\t EBMLMaxSizeLength 8\n s 1\t DocType webm\n u 1\t DocTypeVersion 4\n u 1\t DocTypeReadVersion 2\n m 0\tSegment\n m 1\t Info segmentContentStartPos, all CueClusterPositions provided in info.cues will be relative to here and will need adjusted\n u 2\t TimecodeScale 1000000\n 8 2\t MuxingApp Chrome\n 8 2\t WritingApp Chrome\n m 1\t Tracks tracksStartPos\n m 2\t TrackEntry\n u 3\t TrackNumber 1\n u 3\t TrackUID 31790271978391090\n u 3\t TrackType 2\n s 3\t CodecID A_OPUS\n b 3\t CodecPrivate \n m 3\t Audio\n f 4\t SamplingFrequency 48000\n u 4\t Channels 1\n m 2\t TrackEntry\n u 3\t TrackNumber 2\n u 3\t TrackUID 24051277436254136\n u 3\t TrackType 1\n s 3\t CodecID V_VP8\n m 3\t Video\n u 4\t PixelWidth 1024\n u 4\t PixelHeight 576\n m 1\t Cluster clusterStartPos\n u 2\t Timecode 0\n b 2\t SimpleBlock track:2 timecode:0\tkeyframe:true\tinvisible:false\tdiscardable:false\tlacing:1\n*/\n/* Desired Metadata\n\n m\t0 EBML\n u\t1 EBMLVersion 1\n u\t1 EBMLReadVersion 1\n u\t1 EBMLMaxIDLength 4\n u\t1 EBMLMaxSizeLength 8\n s\t1 DocType webm\n u\t1 DocTypeVersion 4\n u\t1 DocTypeReadVersion 2\n m\t0 Segment\n m\t1 SeekHead -> This is SeekPosition 0, so all SeekPositions can be calculated as (bytePos - segmentContentStartPos), which is 44 in this case\n m\t2 Seek\n b\t3 SeekID -> Buffer([0x15, 0x49, 0xA9, 0x66]) Info\n u\t3 SeekPosition -> infoStartPos =\n m\t2 Seek\n b\t3 SeekID -> Buffer([0x16, 0x54, 0xAE, 0x6B]) Tracks\n u\t3 SeekPosition { tracksStartPos }\n m\t2 Seek\n b\t3 SeekID -> Buffer([0x1C, 0x53, 0xBB, 0x6B]) Cues\n u\t3 SeekPosition { cuesStartPos }\n m\t1 Info\n f\t2 Duration 32480 -> overwrite, or insert if it doesn't exist\n u\t2 TimecodeScale 1000000\n 8\t2 MuxingApp Chrome\n 8\t2 WritingApp Chrome\n m\t1 Tracks\n m\t2 TrackEntry\n u\t3 TrackNumber 1\n u\t3 TrackUID 31790271978391090\n u\t3 TrackType 2\n s\t3 CodecID A_OPUS\n b\t3 CodecPrivate \n m\t3 Audio\n f\t4 SamplingFrequency 48000\n u\t4 Channels 1\n m\t2 TrackEntry\n u\t3 TrackNumber 2\n u\t3 TrackUID 24051277436254136\n u\t3 TrackType 1\n s\t3 CodecID V_VP8\n m\t3 Video\n u\t4 PixelWidth 1024\n u\t4 PixelHeight 576\n m 1 Cues -> cuesStartPos\n m 2 CuePoint\n u 3 CueTime 0\n m 3 CueTrackPositions\n u 4 CueTrack 1\n u 4 CueClusterPosition 3911\n m 2 CuePoint\n u 3 CueTime 600\n m 3 CueTrackPositions\n u 4 CueTrack 1\n u 4 CueClusterPosition 3911\n m 1 Cluster\n u 2 Timecode 0\n b 2 SimpleBlock track:2 timecode:0\tkeyframe:true\tinvisible:false\tdiscardable:false\tlacing:1\n*/\n/**\n * convert the metadata from a streaming webm bytestream to a seekable file by inserting Duration, Seekhead and Cues\n * @param originalMetadata - orginal metadata (everything before the clusters start) from media recorder\n * @param duration - Duration (TimecodeScale)\n * @param cues - cue points for clusters\n */\nfunction makeMetadataSeekable(originalMetadata, duration, cuesInfo) {\n // extract the header, we can reuse this as-is\n var header = extractElement(\"EBML\", originalMetadata);\n var headerSize = encodedSizeOfEbml(header);\n //console.error(\"Header size: \" + headerSize);\n //printElementIds(header);\n // After the header comes the Segment open tag, which in this implementation is always 12 bytes (4 byte id, 8 byte 'unknown length')\n // After that the segment content starts. All SeekPositions and CueClusterPosition must be relative to segmentContentStartPos\n var segmentContentStartPos = headerSize + 12;\n //console.error(\"segmentContentStartPos: \" + segmentContentStartPos); \n // find the original metadata size, and adjust it for header size and Segment start element so we can keep all positions relative to segmentContentStartPos\n var originalMetadataSize = originalMetadata[originalMetadata.length - 1].dataEnd - segmentContentStartPos;\n //console.error(\"Original Metadata size: \" + originalMetadataSize);\n //printElementIds(originalMetadata);\n // extract the segment info, remove the potentially existing Duration element, and add our own one.\n var info = extractElement(\"Info\", originalMetadata);\n removeElement(\"Duration\", info);\n info.splice(1, 0, { name: \"Duration\", type: \"f\", data: createFloatBuffer(duration, 8) });\n var infoSize = encodedSizeOfEbml(info);\n //console.error(\"Info size: \" + infoSize);\n //printElementIds(info); \n // extract the track info, we can re-use this as is\n var tracks = extractElement(\"Tracks\", originalMetadata);\n var tracksSize = encodedSizeOfEbml(tracks);\n //console.error(\"Tracks size: \" + tracksSize);\n //printElementIds(tracks); \n var seekHeadSize = 47; // Initial best guess, but could be slightly larger if the Cues element is huge.\n var seekHead = [];\n var cuesSize = 5 + cuesInfo.length * 15; // very rough initial approximation, depends a lot on file size and number of CuePoints \n var cues = [];\n var lastSizeDifference = -1; // \n // The size of SeekHead and Cues elements depends on how many bytes the offsets values can be encoded in.\n // The actual offsets in CueClusterPosition depend on the final size of the SeekHead and Cues elements\n // We need to iteratively converge to a stable solution.\n var maxIterations = 10;\n var _loop_1 = function (i) {\n // SeekHead starts at 0\n var infoStart = seekHeadSize; // Info comes directly after SeekHead\n var tracksStart = infoStart + infoSize; // Tracks comes directly after Info\n var cuesStart = tracksStart + tracksSize; // Cues starts directly after \n var newMetadataSize = cuesStart + cuesSize; // total size of metadata \n // This is the offset all CueClusterPositions should be adjusted by due to the metadata size changing.\n var sizeDifference = newMetadataSize - originalMetadataSize;\n // console.error(`infoStart: ${infoStart}, infoSize: ${infoSize}`);\n // console.error(`tracksStart: ${tracksStart}, tracksSize: ${tracksSize}`);\n // console.error(`cuesStart: ${cuesStart}, cuesSize: ${cuesSize}`);\n // console.error(`originalMetadataSize: ${originalMetadataSize}, newMetadataSize: ${newMetadataSize}, sizeDifference: ${sizeDifference}`); \n // create the SeekHead element\n seekHead = [];\n seekHead.push({ name: \"SeekHead\", type: \"m\", isEnd: false });\n seekHead.push({ name: \"Seek\", type: \"m\", isEnd: false });\n seekHead.push({ name: \"SeekID\", type: \"b\", data: new exports.Buffer([0x15, 0x49, 0xA9, 0x66]) }); // Info\n seekHead.push({ name: \"SeekPosition\", type: \"u\", data: createUIntBuffer(infoStart) });\n seekHead.push({ name: \"Seek\", type: \"m\", isEnd: true });\n seekHead.push({ name: \"Seek\", type: \"m\", isEnd: false });\n seekHead.push({ name: \"SeekID\", type: \"b\", data: new exports.Buffer([0x16, 0x54, 0xAE, 0x6B]) }); // Tracks\n seekHead.push({ name: \"SeekPosition\", type: \"u\", data: createUIntBuffer(tracksStart) });\n seekHead.push({ name: \"Seek\", type: \"m\", isEnd: true });\n seekHead.push({ name: \"Seek\", type: \"m\", isEnd: false });\n seekHead.push({ name: \"SeekID\", type: \"b\", data: new exports.Buffer([0x1C, 0x53, 0xBB, 0x6B]) }); // Cues\n seekHead.push({ name: \"SeekPosition\", type: \"u\", data: createUIntBuffer(cuesStart) });\n seekHead.push({ name: \"Seek\", type: \"m\", isEnd: true });\n seekHead.push({ name: \"SeekHead\", type: \"m\", isEnd: true });\n seekHeadSize = encodedSizeOfEbml(seekHead);\n //console.error(\"SeekHead size: \" + seekHeadSize);\n //printElementIds(seekHead); \n // create the Cues element\n cues = [];\n cues.push({ name: \"Cues\", type: \"m\", isEnd: false });\n cuesInfo.forEach(function (_a) {\n var CueTrack = _a.CueTrack, CueClusterPosition = _a.CueClusterPosition, CueTime = _a.CueTime;\n cues.push({ name: \"CuePoint\", type: \"m\", isEnd: false });\n cues.push({ name: \"CueTime\", type: \"u\", data: createUIntBuffer(CueTime) });\n cues.push({ name: \"CueTrackPositions\", type: \"m\", isEnd: false });\n cues.push({ name: \"CueTrack\", type: \"u\", data: createUIntBuffer(CueTrack) });\n //console.error(`CueClusterPosition: ${CueClusterPosition}, Corrected to: ${CueClusterPosition - segmentContentStartPos} , offset by ${sizeDifference} to become ${(CueClusterPosition - segmentContentStartPos) + sizeDifference - segmentContentStartPos}`);\n // EBMLReader returns CueClusterPosition with absolute byte offsets. The Cues section expects them as offsets from the first level 1 element of the Segment, so we need to adjust it.\n CueClusterPosition -= segmentContentStartPos;\n // We also need to adjust to take into account the change in metadata size from when EBMLReader read the original metadata.\n CueClusterPosition += sizeDifference;\n cues.push({ name: \"CueClusterPosition\", type: \"u\", data: createUIntBuffer(CueClusterPosition) });\n cues.push({ name: \"CueTrackPositions\", type: \"m\", isEnd: true });\n cues.push({ name: \"CuePoint\", type: \"m\", isEnd: true });\n });\n cues.push({ name: \"Cues\", type: \"m\", isEnd: true });\n cuesSize = encodedSizeOfEbml(cues);\n //console.error(\"Cues size: \" + cuesSize); \n //console.error(\"Cue count: \" + cuesInfo.length);\n //printElementIds(cues); \n // If the new MetadataSize is not the same as the previous iteration, we need to run once more.\n if (lastSizeDifference !== sizeDifference) {\n lastSizeDifference = sizeDifference;\n if (i === maxIterations - 1) {\n throw new Error(\"Failed to converge to a stable metadata size\");\n }\n }\n else {\n return \"break\";\n }\n };\n for (var i = 0; i < maxIterations; i++) {\n var state_1 = _loop_1(i);\n if (state_1 === \"break\")\n break;\n }\n var finalMetadata = [].concat.apply([], [\n header,\n { name: \"Segment\", type: \"m\", isEnd: false, unknownSize: true },\n seekHead,\n info,\n tracks,\n cues\n ]);\n var result = new EBMLEncoder_1.default().encode(finalMetadata);\n //printElementIds(finalMetadata);\n //console.error(`Final metadata buffer size: ${result.byteLength}`);\n //console.error(`Final metadata buffer size without header and segment: ${result.byteLength-segmentContentStartPos}`);\n return result;\n}\nexports.makeMetadataSeekable = makeMetadataSeekable;\n/**\n * print all element id names in a list\n\n * @param metadata - array of EBML elements to print\n *\nexport function printElementIds(metadata: EBML.EBMLElementBuffer[]) {\n\n let result: EBML.EBMLElementBuffer[] = [];\n let start: number = -1;\n\n for (let i = 0; i < metadata.length; i++) {\n console.error(\"\\t id: \" + metadata[i].name);\n }\n}\n*/\n/**\n * remove all occurances of an EBML element from an array of elements\n * If it's a MasterElement you will also remove the content. (everything between start and end)\n * @param idName - name of the EBML Element to remove.\n * @param metadata - array of EBML elements to search\n */\nfunction removeElement(idName, metadata) {\n var result = [];\n var start = -1;\n for (var i = 0; i < metadata.length; i++) {\n var element = metadata[i];\n if (element.name === idName) {\n // if it's a Master element, extract the start and end element, and everything in between\n if (element.type === \"m\") {\n if (!element.isEnd) {\n start = i;\n }\n else {\n // we've reached the end, extract the whole thing\n if (start == -1)\n throw new Error(\"Detected \".concat(idName, \" closing element before finding the start\"));\n metadata.splice(start, i - start + 1);\n return;\n }\n }\n else {\n // not a Master element, so we've found what we're looking for.\n metadata.splice(i, 1);\n return;\n }\n }\n }\n}\nexports.removeElement = removeElement;\n/**\n * extract the first occurance of an EBML tag from a flattened array of EBML data.\n * If it's a MasterElement you will also get the content. (everything between start and end)\n * @param idName - name of the EBML Element to extract.\n * @param metadata - array of EBML elements to search\n */\nfunction extractElement(idName, metadata) {\n var result = [];\n var start = -1;\n for (var i = 0; i < metadata.length; i++) {\n var element = metadata[i];\n if (element.name === idName) {\n // if it's a Master element, extract the start and end element, and everything in between\n if (element.type === \"m\") {\n if (!element.isEnd) {\n start = i;\n }\n else {\n // we've reached the end, extract the whole thing\n if (start == -1)\n throw new Error(\"Detected \".concat(idName, \" closing element before finding the start\"));\n result = metadata.slice(start, i + 1);\n break;\n }\n }\n else {\n // not a Master element, so we've found what we're looking for.\n result.push(metadata[i]);\n break;\n }\n }\n }\n return result;\n}\nexports.extractElement = extractElement;\n/**\n * @deprecated\n * metadata に対して duration と seekhead を追加した metadata を返す\n * @param metadata - 変更前の webm における ファイル先頭から 最初の Cluster 要素までの 要素\n * @param duration - Duration (TimecodeScale)\n * @param cues - cue points for clusters\n * @deprecated @param clusterPtrs - 変更前の webm における SeekHead に追加する Cluster 要素 への start pointer\n * @deprecated @param cueInfos - please use cues.\n */\nfunction putRefinedMetaData(metadata, info) {\n if (Array.isArray(info.cueInfos) && !Array.isArray(info.cues)) {\n console.warn(\"putRefinedMetaData: info.cueInfos property is deprecated. please use info.cues\");\n info.cues = info.cueInfos;\n }\n var ebml = [];\n var payload = [];\n for (var i_1 = 0; i_1 < metadata.length; i_1++) {\n var elm = metadata[i_1];\n if (elm.type === \"m\" && elm.name === \"Segment\") {\n ebml = metadata.slice(0, i_1);\n payload = metadata.slice(i_1);\n if (elm.unknownSize) {\n payload.shift(); // remove segment tag\n break;\n }\n throw new Error(\"this metadata is not streaming webm file\");\n }\n }\n // *0 *4 *5 *36 *40 *48=segmentOffset *185=originalPayloadOffsetEnd\n // | | | | | | |\n // [EBML][size]....[Segment][size][Info][size][Duration][size]...[Cluster]\n // | | |^inf | |\n // | +segmentSiz(12)+ |\n // +-ebmlSize(36)--+ | +-payloadSize(137)-------------+offsetEndDiff+\n // | | +-newPayloadSize(??)-------------------------+\n // | | | |\n // [Segment][size][Info][size][Duration][size]....[size][value][Cluster]\n // ^ |\n // | *??=newPayloadOffsetEnd\n // inf\n if (!(payload[payload.length - 1].dataEnd > 0)) {\n throw new Error(\"metadata dataEnd has wrong number\");\n }\n var originalPayloadOffsetEnd = payload[payload.length - 1].dataEnd; // = first cluster ptr\n var ebmlSize = ebml[ebml.length - 1].dataEnd; // = first segment ptr\n var refinedEBMLSize = new EBMLEncoder_1.default().encode(ebml).byteLength;\n var offsetDiff = refinedEBMLSize - ebmlSize;\n var payloadSize = originalPayloadOffsetEnd - payload[0].tagStart;\n var segmentSize = payload[0].tagStart - ebmlSize;\n var segmentOffset = payload[0].tagStart;\n var segmentTagBuf = new exports.Buffer([0x18, 0x53, 0x80, 0x67]); // Segment\n var segmentSizeBuf = new exports.Buffer('01ffffffffffffff', 'hex'); // Segmentの最後の位置は無数の Cluster 依存なので。 writeVint(newPayloadSize).byteLength ではなく、 infinity.\n var _segmentSize = segmentTagBuf.byteLength + segmentSizeBuf.byteLength; // == segmentSize\n var newPayloadSize = payloadSize;\n // We need the size to be stable between two refinements in order for our offsets to be correct\n // Bound the number of possible refinements so we can't go infinate if something goes wrong\n var i;\n for (i = 1; i < 20; i++) {\n var newPayloadOffsetEnd = ebmlSize + _segmentSize + newPayloadSize;\n var offsetEndDiff = newPayloadOffsetEnd - originalPayloadOffsetEnd;\n var sizeDiff = offsetDiff + offsetEndDiff;\n var refined = refineMetadata(payload, sizeDiff, info);\n var newNewRefinedSize = new EBMLEncoder_1.default().encode(refined).byteLength; // 一旦 seekhead を作って自身のサイズを調べる\n if (newNewRefinedSize === newPayloadSize) {\n // Size is stable\n return new EBMLEncoder_1.default().encode([].concat(ebml, [{ type: \"m\", name: \"Segment\", isEnd: false, unknownSize: true }], refined));\n }\n newPayloadSize = newNewRefinedSize;\n }\n throw new Error(\"unable to refine metadata, stable size could not be found in \" + i + \" iterations!\");\n}\nexports.putRefinedMetaData = putRefinedMetaData;\n// Given a list of EBMLElementBuffers, returns their encoded size in bytes\nfunction encodedSizeOfEbml(refinedMetaData) {\n var encorder = new EBMLEncoder_1.default();\n return refinedMetaData.reduce(function (lst, elm) { return lst.concat(encorder.encode([elm])); }, []).reduce(function (o, buf) { return o + buf.byteLength; }, 0);\n}\nfunction refineMetadata(mesetadata, sizeDiff, info) {\n var duration = info.duration, clusterPtrs = info.clusterPtrs, cues = info.cues;\n var _metadata = mesetadata.slice(0);\n if (typeof duration === \"number\") {\n // duration を追加する\n var overwrited_1 = false;\n _metadata.forEach(function (elm) {\n if (elm.type === \"f\" && elm.name === \"Duration\") {\n overwrited_1 = true;\n elm.data = createFloatBuffer(duration, 8);\n }\n });\n if (!overwrited_1) {\n insertTag(_metadata, \"Info\", [{ name: \"Duration\", type: \"f\", data: createFloatBuffer(duration, 8) }]);\n }\n }\n if (Array.isArray(cues)) {\n insertTag(_metadata, \"Cues\", create_cue(cues, sizeDiff));\n }\n var seekhead_children = [];\n if (Array.isArray(clusterPtrs)) {\n console.warn(\"append cluster pointers to seekhead is deprecated. please use cues\");\n seekhead_children = create_seek_from_clusters(clusterPtrs, sizeDiff);\n }\n // remove seek info\n /*\n _metadata = _metadata.filter((elm)=> !(\n elm.name === \"Seek\" ||\n elm.name === \"SeekID\" ||\n elm.name === \"SeekPosition\") );\n */\n // working on progress\n //seekhead_children = seekhead_children.concat(create_seekhead(_metadata));\n insertTag(_metadata, \"SeekHead\", seekhead_children, true);\n return _metadata;\n}\nfunction create_seekhead(metadata, sizeDiff) {\n var seeks = [];\n [\"Info\", \"Tracks\", \"Cues\"].forEach(function (tagName) {\n var tagStarts = metadata.filter(function (elm) { return elm.type === \"m\" && elm.name === tagName && elm.isEnd === false; }).map(function (elm) { return elm[\"tagStart\"]; });\n var tagStart = tagStarts[0];\n if (typeof tagStart !== \"number\") {\n return;\n }\n seeks.push({ name: \"Seek\", type: \"m\", isEnd: false });\n switch (tagName) {\n case \"Info\":\n seeks.push({ name: \"SeekID\", type: \"b\", data: new exports.Buffer([0x15, 0x49, 0xA9, 0x66]) });\n break;\n case \"Tracks\":\n seeks.push({ name: \"SeekID\", type: \"b\", data: new exports.Buffer([0x16, 0x54, 0xAE, 0x6B]) });\n break;\n case \"Cues\":\n seeks.push({ name: \"SeekID\", type: \"b\", data: new exports.Buffer([0x1C, 0x53, 0xBB, 0x6B]) });\n break;\n }\n seeks.push({ name: \"SeekPosition\", type: \"u\", data: createUIntBuffer(tagStart + sizeDiff) });\n seeks.push({ name: \"Seek\", type: \"m\", isEnd: true });\n });\n return seeks;\n}\nfunction create_seek_from_clusters(clusterPtrs, sizeDiff) {\n var seeks = [];\n clusterPtrs.forEach(function (start) {\n seeks.push({ name: \"Seek\", type: \"m\", isEnd: false });\n // [0x1F, 0x43, 0xB6, 0x75] で Cluster 意\n seeks.push({ name: \"SeekID\", type: \"b\", data: new exports.Buffer([0x1F, 0x43, 0xB6, 0x75]) });\n seeks.push({ name: \"SeekPosition\", type: \"u\", data: createUIntBuffer(start + sizeDiff) });\n seeks.push({ name: \"Seek\", type: \"m\", isEnd: true });\n });\n return seeks;\n}\nfunction create_cue(cueInfos, sizeDiff) {\n var cues = [];\n cueInfos.forEach(function (_a) {\n var CueTrack = _a.CueTrack, CueClusterPosition = _a.CueClusterPosition, CueTime = _a.CueTime;\n cues.push({ name: \"CuePoint\", type: \"m\", isEnd: false });\n cues.push({ name: \"CueTime\", type: \"u\", data: createUIntBuffer(CueTime) });\n cues.push({ name: \"CueTrackPositions\", type: \"m\", isEnd: false });\n cues.push({ name: \"CueTrack\", type: \"u\", data: createUIntBuffer(CueTrack) }); // video track\n cues.push({ name: \"CueClusterPosition\", type: \"u\", data: createUIntBuffer(CueClusterPosition + sizeDiff) });\n cues.push({ name: \"CueTrackPositions\", type: \"m\", isEnd: true });\n cues.push({ name: \"CuePoint\", type: \"m\", isEnd: true });\n });\n return cues;\n}\nfunction insertTag(_metadata, tagName, children, insertHead) {\n if (insertHead === void 0) { insertHead = false; }\n // find the tagname from _metadata\n var idx = -1;\n for (var i = 0; i < _metadata.length; i++) {\n var elm = _metadata[i];\n if (elm.type === \"m\" && elm.name === tagName && elm.isEnd === false) {\n idx = i;\n break;\n }\n }\n if (idx >= 0) {\n // insert [] to \n Array.prototype.splice.apply(_metadata, [idx + 1, 0].concat(children));\n }\n else if (insertHead) {\n [].concat([{ name: tagName, type: \"m\", isEnd: false }], children, [{ name: tagName, type: \"m\", isEnd: true }]).reverse().forEach(function (elm) { _metadata.unshift(elm); });\n }\n else {\n // metadata 末尾に を追加\n // insert \n _metadata.push({ name: tagName, type: \"m\", isEnd: false });\n children.forEach(function (elm) { _metadata.push(elm); });\n _metadata.push({ name: tagName, type: \"m\", isEnd: true });\n }\n}\nfunction concat(list) {\n return exports.Buffer.concat(list);\n}\nexports.concat = concat;\nfunction encodeValueToBuffer(elm) {\n var data = new exports.Buffer(0);\n if (elm.type === \"m\") {\n return elm;\n }\n switch (elm.type) {\n case \"u\":\n data = createUIntBuffer(elm.value);\n break;\n case \"i\":\n data = createIntBuffer(elm.value);\n break;\n case \"f\":\n data = createFloatBuffer(elm.value);\n break;\n case \"s\":\n data = new exports.Buffer(elm.value, 'ascii');\n break;\n case \"8\":\n data = new exports.Buffer(elm.value, 'utf8');\n break;\n case \"b\":\n data = elm.value;\n break;\n case \"d\":\n data = new int64_buffer_1.Int64BE(elm.value.getTime().toString()).toBuffer();\n break;\n }\n return Object.assign({}, elm, { data: data });\n}\nexports.encodeValueToBuffer = encodeValueToBuffer;\nfunction createUIntBuffer(value) {\n // Big-endian, any size from 1 to 8\n // but js number is float64, so max 6 bit octets\n var bytes = 1;\n for (; value >= Math.pow(2, 8 * bytes); bytes++) { }\n if (bytes >= 7) {\n console.warn(\"7bit or more bigger uint not supported.\");\n return new int64_buffer_1.Uint64BE(value).toBuffer();\n }\n var data = new exports.Buffer(bytes);\n data.writeUIntBE(value, 0, bytes);\n return data;\n}\nexports.createUIntBuffer = createUIntBuffer;\nfunction createIntBuffer(value) {\n // Big-endian, any size from 1 to 8 octets\n // but js number is float64, so max 6 bit\n var bytes = 1;\n for (; value >= Math.pow(2, 8 * bytes); bytes++) { }\n if (bytes >= 7) {\n console.warn(\"7bit or more bigger uint not supported.\");\n return new int64_buffer_1.Int64BE(value).toBuffer();\n }\n var data = new exports.Buffer(bytes);\n data.writeIntBE(value, 0, bytes);\n return data;\n}\nexports.createIntBuffer = createIntBuffer;\nfunction createFloatBuffer(value, bytes) {\n if (bytes === void 0) { bytes = 8; }\n // Big-endian, defined for 4 and 8 octets (32, 64 bits)\n // js number is float64 so 8 bytes.\n if (bytes === 8) {\n // 64bit\n var data = new exports.Buffer(8);\n data.writeDoubleBE(value, 0);\n return data;\n }\n else if (bytes === 4) {\n // 32bit\n var data = new exports.Buffer(4);\n data.writeFloatBE(value, 0);\n return data;\n }\n else {\n throw new Error(\"float type bits must 4bytes or 8bytes\");\n }\n}\nexports.createFloatBuffer = createFloatBuffer;\nfunction convertEBMLDateToJSDate(int64str) {\n if (int64str instanceof Date) {\n return int64str;\n }\n return new Date(new Date(\"2001-01-01T00:00:00.000Z\").getTime() + (Number(int64str) / 1000 / 1000));\n}\nexports.convertEBMLDateToJSDate = convertEBMLDateToJSDate;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ebml_1 = require(\"./ebml\");\n/**\n * based on ts-ebml and support large file,optimize memory usage during repair\n *\n * @param blob the blob you need to fix\n * @returns the blob that has been fixed\n *\n */\nfunction fixWebmDuration(blob) {\n return __awaiter(this, void 0, void 0, function () {\n var decoder, reader, readstream, readerBlob, _a, done, value, elms, refinedMetadataBuf, refinedMetadataBlob, firstPartBlobWithoutMetadata, finalBlob;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!blob) {\n throw Error('call to fixWebmDuration requires a blob');\n }\n decoder = new ebml_1.Decoder();\n reader = new ebml_1.Reader();\n readstream = blob.stream();\n readerBlob = readstream.getReader();\n _b.label = 1;\n case 1:\n if (!true) return [3 /*break*/, 3];\n return [4 /*yield*/, readerBlob.read()];\n case 2:\n _a = _b.sent(), done = _a.done, value = _a.value;\n if (done) {\n reader.stop();\n return [3 /*break*/, 3];\n }\n elms = decoder.decode(value);\n // As browser upgrade webm meta attributes are gradually added, \n // so filter unknown type to bypass this issue.\n elms = elms === null || elms === void 0 ? void 0 : elms.filter(function (elm) { return elm.type !== 'unknown'; });\n elms.forEach(function (elm) {\n reader.read(elm);\n });\n value = null;\n return [3 /*break*/, 1];\n case 3:\n refinedMetadataBuf = ebml_1.tools.makeMetadataSeekable(reader.metadatas, reader.duration, reader.cues);\n refinedMetadataBlob = new Blob([refinedMetadataBuf], { type: blob.type });\n firstPartBlobWithoutMetadata = blob.slice(reader.metadataSize);\n finalBlob = new Blob([refinedMetadataBlob, firstPartBlobWithoutMetadata], { type: blob.type });\n return [2 /*return*/, finalBlob];\n }\n });\n });\n}\nexports.default = fixWebmDuration;\n"],"names":["exports","byteLength","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","tmp","i","arr","Arr","_byteLength","curByte","len","revLookup","charCodeAt","fromByteArray","uint8","length","extraBytes","parts","maxChunkLength","len2","push","encodeChunk","lookup","join","Uint8Array","Array","code","Error","indexOf","start","end","num","output","base64","ieee754","customInspectSymbol","Symbol","Buffer","SlowBuffer","alloc","INSPECT_MAX_BYTES","K_MAX_LENGTH","createBuffer","RangeError","buf","Object","setPrototypeOf","prototype","arg","encodingOrOffset","TypeError","allocUnsafe","from","value","string","encoding","isEncoding","actual","write","slice","fromString","ArrayBuffer","isView","arrayView","isInstance","copy","fromArrayBuffer","buffer","byteOffset","fromArrayLike","fromArrayView","SharedArrayBuffer","valueOf","b","obj","isBuffer","checked","undefined","numberIsNaN","type","isArray","data","fromObject","toPrimitive","assertSize","size","array","toString","mustMatch","arguments","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","this","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","n","m","bidirectionalIndexOf","val","dir","arrayIndexOf","call","lastIndexOf","indexSize","arrLength","valLength","String","read","readUInt16BE","foundIndex","found","j","hexWrite","offset","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","str","byteArray","asciiToBytes","base64Write","ucs2Write","units","c","hi","lo","utf16leToBytes","Math","min","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","apply","decodeCodePointsArray","kMaxLength","TYPED_ARRAY_SUPPORT","proto","foo","e","typedArraySupport","console","error","defineProperty","enumerable","get","poolSize","fill","allocUnsafeSlow","_isBuffer","compare","a","x","y","concat","list","pos","set","swap16","swap32","swap64","toLocaleString","equals","inspect","max","replace","trim","target","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","_arr","ret","out","hexSliceLookupTable","bytes","checkOffset","ext","checkInt","wrtBigUInt64LE","checkIntBI","BigInt","wrtBigUInt64BE","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","newBuf","subarray","readUintLE","readUIntLE","mul","readUintBE","readUIntBE","readUint8","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readUInt32BE","readBigUInt64LE","defineBigIntMethod","validateNumber","first","last","boundsError","readBigUInt64BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readBigInt64LE","readBigInt64BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","writeUintBE","writeUIntBE","writeUint8","writeUInt8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeUInt32BE","writeBigUInt64LE","writeBigUInt64BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeBigInt64LE","writeBigInt64BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","errors","E","sym","getMessage","Base","constructor","super","writable","configurable","name","stack","message","addNumericalSeparator","range","ERR_OUT_OF_RANGE","checkBounds","ERR_INVALID_ARG_TYPE","floor","ERR_BUFFER_OUT_OF_BOUNDS","input","msg","received","isInteger","abs","INVALID_BASE64_RE","Infinity","leadSurrogate","split","base64clean","src","dst","alphabet","table","i16","fn","BufferBigIntNotDefined","BufferReader","module","block","reader","trackNumber","nextUIntV","timecode","nextInt16BE","flags","nextUInt8","invisible","keyframe","discardable","lacing","frames","nextBuffer","frameSize","framesNum","frameSizes","nextIntV","readLacedData","vint","v","signed","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","args","Function","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","isNaN","EventEmitter","init","once","emitter","Promise","resolve","reject","errorListener","err","removeListener","resolver","eventTargetAgnosticAddListener","handler","on","addErrorHandlerIfEventEmitter","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","that","_addListener","prepend","events","existing","warning","create","newListener","emit","unshift","warned","w","count","warn","onceWrapper","fired","wrapFn","_onceWrap","state","wrapped","bind","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","addEventListener","wrapListener","removeEventListener","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","context","listeners","addListener","prependListener","prependOnceListener","position","originalListener","shift","index","pop","spliceOne","off","removeAllListeners","key","keys","rawListeners","eventNames","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","d","s","NaN","rt","log","LN2","storage","UNDEFINED","BUFFER","UINT8ARRAY","ARRAYBUFFER","ZERO","BIT32","factory","bigendian","unsigned","posH","posL","pos0","pos1","pos2","pos3","fromPositive","fromPositiveBE","fromPositiveLE","fromNegative","fromNegativeBE","fromNegativeLE","Int64","isName","_isInt64","toNumber","radix","high","readInt32","low","sign","mod","toArray","toBuffer","toArrayBuffer","raddix","newArray","isValidBuffer","_storage","chr","writeInt32","fromArray","raw","arrbuf","dest","destbuf","destoff","srcbuf","srcoff","nodeName","State","int64_buffer_1","tools_1","tools","ebmlID_1","EBMLDecoder","_buffer","_tag_stack","_state","STATE_TAG","_cursor","_total","_schema","byEbmlID","_result","decode","chunk","readChunk","diff","readTag","STATE_SIZE","readSize","STATE_CONTENT","readContent","getSchemaInfo","tagNum","level","description","tag","readVint","reduce","o","schema","tagObj","EBML_ID","tagStart","tagEnd","sizeStart","sizeEnd","dataStart","dataEnd","dataSize","unknownSize","isEnd","elm","assign","convertEBMLDateToJSDate","Int64BE","topEle","EBMLEncoder","_buffers","_stack","encode","elms","_this","lst","endTag","startTag","writeTag","flush","tagName","tagNums","map","tagId","tagData","encodeTag","children","childTagDataBuffers","child","childTagDataBuffer","extendStatics","__extends","__proto__","p","hasOwnProperty","__","events_1","EBMLReader","_super","logGroup","hasLoggingStarted","metadataloaded","chunks","segmentOffset","last2SimpleBlockVideoTrackTimecode","last2SimpleBlockAudioTrackTimecode","lastClusterTimecode","lastClusterPosition","timecodeScale","metadataSize","metadatas","cues","firstVideoBlockRead","firstAudioBlockRead","currentTrack","TrackNumber","TrackType","DefaultDuration","CodecDelay","trackTypes","trackDefaultDuration","trackCodecDelay","trackInfo","ended","logging","use_duration_every_simpleblock","use_webp","use_segment_info","drop_default_duration","stop","emit_segment_info","groupEnd","duration","videoTrackNum","audioTrackNum","drop","parent_1","_a","ebmlBlock","frames_1","CueTime","CueTrack","CueClusterPosition","forEach","frame","webpBuf","VP8BitStreamToRiffWebPBuffer","webp","Blob","currentTime","put","defaultDuration","codecDelay","lastTimecode","_defaultDuration","delay","event","groupCollapsed","group","multiple","minver","webm","mandatory","cppname","bytesize","divx","type2","crc","__createBinding","k","k2","__exportStar","Reader","Encoder","Decoder","EBMLDecoder_1","default","EBMLEncoder_1","EBMLReader_1","__assign","t","__spreadArray","to","pack","ar","l","Tools","log2","number","readHexString","writeVint","concatenate","a1","a2","buff","q","acc","current","padStart","readUtf8","exception","readUnsigned","DataView","getUint8","getUint16","getUint32","readSigned","getInt8","getInt16","getInt32","readFloat","getFloat32","getFloat64","readDate","Date","readDataFromTag","track","payload","length_1","Boolean","createFloatBuffer","createIntBuffer","createUIntBuffer","encodeValueToBuffer","putRefinedMetaData","extractElement","removeElement","makeMetadataSeekable","createRIFFChunk","WebPBlockFilter","readBlock","_Buffer","tools_ebml_1","_block","FourCC","chunkSize","idName","metadata","element","splice","result","encodedSizeOfEbml","refinedMetaData","encorder","refineMetadata","mesetadata","sizeDiff","info","clusterPtrs","_metadata","overwrited_1","insertTag","cueInfos","create_cue","seekhead_children","seeks","create_seek_from_clusters","insertHead","idx","reverse","Uint64BE","some","VP8Chunk","originalMetadata","cuesInfo","header","segmentContentStartPos","originalMetadataSize","infoSize","tracks","tracksSize","seekHeadSize","seekHead","cuesSize","lastSizeDifference","_loop_1","infoStart","tracksStart","cuesStart","sizeDifference","maxIterations","finalMetadata","ebml","i_1","originalPayloadOffsetEnd","ebmlSize","offsetDiff","payloadSize","segmentTagBuf","segmentSizeBuf","_segmentSize","newPayloadSize","refined","newNewRefinedSize","getTime","int64str","__awaiter","thisArg","_arguments","P","generator","fulfilled","step","next","rejected","done","then","__generator","body","f","g","_","label","sent","trys","ops","verb","iterator","op","ebml_1","blob","decoder","readstream","readerBlob","refinedMetadataBuf","refinedMetadataBlob","firstPartBlobWithoutMetadata","_b","stream","getReader","filter"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"246.prod.js","mappings":"uHAEAA,EAAQC,WAuCR,SAAqBC,GACnB,IAAIC,EAAOC,EAAQF,GACfG,EAAWF,EAAK,GAChBG,EAAkBH,EAAK,GAC3B,OAAuC,GAA9BE,EAAWC,GAAuB,EAAKA,CAClD,EA3CAN,EAAQO,YAiDR,SAAsBL,GACpB,IAAIM,EAcAC,EAbAN,EAAOC,EAAQF,GACfG,EAAWF,EAAK,GAChBG,EAAkBH,EAAK,GAEvBO,EAAM,IAAIC,EAVhB,SAAsBT,EAAKG,EAAUC,GACnC,OAAuC,GAA9BD,EAAWC,GAAuB,EAAKA,CAClD,CAQoBM,CAAYV,EAAKG,EAAUC,IAEzCO,EAAU,EAGVC,EAAMR,EAAkB,EACxBD,EAAW,EACXA,EAGJ,IAAKI,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EACxBD,EACGO,EAAUb,EAAIc,WAAWP,KAAO,GAChCM,EAAUb,EAAIc,WAAWP,EAAI,KAAO,GACpCM,EAAUb,EAAIc,WAAWP,EAAI,KAAO,EACrCM,EAAUb,EAAIc,WAAWP,EAAI,IAC/BC,EAAIG,KAAcL,GAAO,GAAM,IAC/BE,EAAIG,KAAcL,GAAO,EAAK,IAC9BE,EAAIG,KAAmB,IAANL,EAGK,IAApBF,IACFE,EACGO,EAAUb,EAAIc,WAAWP,KAAO,EAChCM,EAAUb,EAAIc,WAAWP,EAAI,KAAO,EACvCC,EAAIG,KAAmB,IAANL,GAGK,IAApBF,IACFE,EACGO,EAAUb,EAAIc,WAAWP,KAAO,GAChCM,EAAUb,EAAIc,WAAWP,EAAI,KAAO,EACpCM,EAAUb,EAAIc,WAAWP,EAAI,KAAO,EACvCC,EAAIG,KAAcL,GAAO,EAAK,IAC9BE,EAAIG,KAAmB,IAANL,GAGnB,OAAOE,CACT,EA5FAV,EAAQiB,cAkHR,SAAwBC,GAQtB,IAPA,IAAIV,EACAM,EAAMI,EAAMC,OACZC,EAAaN,EAAM,EACnBO,EAAQ,GACRC,EAAiB,MAGZb,EAAI,EAAGc,EAAOT,EAAMM,EAAYX,EAAIc,EAAMd,GAAKa,EACtDD,EAAMG,KAAKC,EAAYP,EAAOT,EAAIA,EAAIa,EAAkBC,EAAOA,EAAQd,EAAIa,IAI1D,IAAfF,GACFZ,EAAMU,EAAMJ,EAAM,GAClBO,EAAMG,KACJE,EAAOlB,GAAO,GACdkB,EAAQlB,GAAO,EAAK,IACpB,OAEsB,IAAfY,IACTZ,GAAOU,EAAMJ,EAAM,IAAM,GAAKI,EAAMJ,EAAM,GAC1CO,EAAMG,KACJE,EAAOlB,GAAO,IACdkB,EAAQlB,GAAO,EAAK,IACpBkB,EAAQlB,GAAO,EAAK,IACpB,MAIJ,OAAOa,EAAMM,KAAK,GACpB,EA1IA,IALA,IAAID,EAAS,GACTX,EAAY,GACZJ,EAA4B,oBAAfiB,WAA6BA,WAAaC,MAEvDC,EAAO,mEACFrB,EAAI,EAAGK,EAAMgB,EAAKX,OAAQV,EAAIK,IAAOL,EAC5CiB,EAAOjB,GAAKqB,EAAKrB,GACjBM,EAAUe,EAAKd,WAAWP,IAAMA,EAQlC,SAASL,EAASF,GAChB,IAAIY,EAAMZ,EAAIiB,OAEd,GAAIL,EAAM,EAAI,EACZ,MAAM,IAAIiB,MAAM,kDAKlB,IAAI1B,EAAWH,EAAI8B,QAAQ,KAO3B,OANkB,IAAd3B,IAAiBA,EAAWS,GAMzB,CAACT,EAJcA,IAAaS,EAC/B,EACA,EAAKT,EAAW,EAGtB,CAmEA,SAASoB,EAAaP,EAAOe,EAAOC,GAGlC,IAFA,IAAI1B,EARoB2B,EASpBC,EAAS,GACJ3B,EAAIwB,EAAOxB,EAAIyB,EAAKzB,GAAK,EAChCD,GACIU,EAAMT,IAAM,GAAM,WAClBS,EAAMT,EAAI,IAAM,EAAK,QACP,IAAfS,EAAMT,EAAI,IACb2B,EAAOZ,KAdFE,GADiBS,EAeM3B,IAdT,GAAK,IACxBkB,EAAOS,GAAO,GAAK,IACnBT,EAAOS,GAAO,EAAI,IAClBT,EAAa,GAANS,IAaT,OAAOC,EAAOT,KAAK,GACrB,CAlGAZ,EAAU,IAAIC,WAAW,IAAM,GAC/BD,EAAU,IAAIC,WAAW,IAAM,E,8BCT/B,MAAMqB,EAAS,EAAQ,MACjBC,EAAU,EAAQ,KAClBC,EACe,mBAAXC,QAAkD,mBAAlBA,OAAY,IAChDA,OAAY,IAAE,8BACd,KAENxC,EAAQyC,OAASA,EACjBzC,EAAQ0C,WAyTR,SAAqBvB,IACdA,GAAUA,IACbA,EAAS,GAEX,OAAOsB,EAAOE,OAAOxB,EACvB,EA7TAnB,EAAQ4C,kBAAoB,GAE5B,MAAMC,EAAe,WAwDrB,SAASC,EAAc3B,GACrB,GAAIA,EAAS0B,EACX,MAAM,IAAIE,WAAW,cAAgB5B,EAAS,kCAGhD,MAAM6B,EAAM,IAAIpB,WAAWT,GAE3B,OADA8B,OAAOC,eAAeF,EAAKP,EAAOU,WAC3BH,CACT,CAYA,SAASP,EAAQW,EAAKC,EAAkBlC,GAEtC,GAAmB,iBAARiC,EAAkB,CAC3B,GAAgC,iBAArBC,EACT,MAAM,IAAIC,UACR,sEAGJ,OAAOC,EAAYH,EACrB,CACA,OAAOI,EAAKJ,EAAKC,EAAkBlC,EACrC,CAIA,SAASqC,EAAMC,EAAOJ,EAAkBlC,GACtC,GAAqB,iBAAVsC,EACT,OAqHJ,SAAqBC,EAAQC,GACH,iBAAbA,GAAsC,KAAbA,IAClCA,EAAW,QAGb,IAAKlB,EAAOmB,WAAWD,GACrB,MAAM,IAAIL,UAAU,qBAAuBK,GAG7C,MAAMxC,EAAwC,EAA/BlB,EAAWyD,EAAQC,GAClC,IAAIX,EAAMF,EAAa3B,GAEvB,MAAM0C,EAASb,EAAIc,MAAMJ,EAAQC,GAE7BE,IAAW1C,IAIb6B,EAAMA,EAAIe,MAAM,EAAGF,IAGrB,OAAOb,CACT,CA3IWgB,CAAWP,EAAOJ,GAG3B,GAAIY,YAAYC,OAAOT,GACrB,OAkJJ,SAAwBU,GACtB,GAAIC,EAAWD,EAAWvC,YAAa,CACrC,MAAMyC,EAAO,IAAIzC,WAAWuC,GAC5B,OAAOG,EAAgBD,EAAKE,OAAQF,EAAKG,WAAYH,EAAKpE,WAC5D,CACA,OAAOwE,EAAcN,EACvB,CAxJWO,CAAcjB,GAGvB,GAAa,MAATA,EACF,MAAM,IAAIH,UACR,yHACiDG,GAIrD,GAAIW,EAAWX,EAAOQ,cACjBR,GAASW,EAAWX,EAAMc,OAAQN,aACrC,OAAOK,EAAgBb,EAAOJ,EAAkBlC,GAGlD,GAAiC,oBAAtBwD,oBACNP,EAAWX,EAAOkB,oBAClBlB,GAASW,EAAWX,EAAMc,OAAQI,oBACrC,OAAOL,EAAgBb,EAAOJ,EAAkBlC,GAGlD,GAAqB,iBAAVsC,EACT,MAAM,IAAIH,UACR,yEAIJ,MAAMsB,EAAUnB,EAAMmB,SAAWnB,EAAMmB,UACvC,GAAe,MAAXA,GAAmBA,IAAYnB,EACjC,OAAOhB,EAAOe,KAAKoB,EAASvB,EAAkBlC,GAGhD,MAAM0D,EAkJR,SAAqBC,GACnB,GAAIrC,EAAOsC,SAASD,GAAM,CACxB,MAAMhE,EAA4B,EAAtBkE,EAAQF,EAAI3D,QAClB6B,EAAMF,EAAahC,GAEzB,OAAmB,IAAfkC,EAAI7B,QAIR2D,EAAIT,KAAKrB,EAAK,EAAG,EAAGlC,GAHXkC,CAKX,CAEA,QAAmBiC,IAAfH,EAAI3D,OACN,MAA0B,iBAAf2D,EAAI3D,QAAuB+D,EAAYJ,EAAI3D,QAC7C2B,EAAa,GAEf2B,EAAcK,GAGvB,GAAiB,WAAbA,EAAIK,MAAqBtD,MAAMuD,QAAQN,EAAIO,MAC7C,OAAOZ,EAAcK,EAAIO,KAE7B,CAzKYC,CAAW7B,GACrB,GAAIoB,EAAG,OAAOA,EAEd,GAAsB,oBAAXrC,QAAgD,MAAtBA,OAAO+C,aACH,mBAA9B9B,EAAMjB,OAAO+C,aACtB,OAAO9C,EAAOe,KAAKC,EAAMjB,OAAO+C,aAAa,UAAWlC,EAAkBlC,GAG5E,MAAM,IAAImC,UACR,yHACiDG,EAErD,CAmBA,SAAS+B,EAAYC,GACnB,GAAoB,iBAATA,EACT,MAAM,IAAInC,UAAU,0CACf,GAAImC,EAAO,EAChB,MAAM,IAAI1C,WAAW,cAAgB0C,EAAO,iCAEhD,CA0BA,SAASlC,EAAakC,GAEpB,OADAD,EAAWC,GACJ3C,EAAa2C,EAAO,EAAI,EAAoB,EAAhBT,EAAQS,GAC7C,CAuCA,SAAShB,EAAeiB,GACtB,MAAMvE,EAASuE,EAAMvE,OAAS,EAAI,EAA4B,EAAxB6D,EAAQU,EAAMvE,QAC9C6B,EAAMF,EAAa3B,GACzB,IAAK,IAAIV,EAAI,EAAGA,EAAIU,EAAQV,GAAK,EAC/BuC,EAAIvC,GAAgB,IAAXiF,EAAMjF,GAEjB,OAAOuC,CACT,CAUA,SAASsB,EAAiBoB,EAAOlB,EAAYrD,GAC3C,GAAIqD,EAAa,GAAKkB,EAAMzF,WAAauE,EACvC,MAAM,IAAIzB,WAAW,wCAGvB,GAAI2C,EAAMzF,WAAauE,GAAcrD,GAAU,GAC7C,MAAM,IAAI4B,WAAW,wCAGvB,IAAIC,EAYJ,OAVEA,OADiBiC,IAAfT,QAAuCS,IAAX9D,EACxB,IAAIS,WAAW8D,QACDT,IAAX9D,EACH,IAAIS,WAAW8D,EAAOlB,GAEtB,IAAI5C,WAAW8D,EAAOlB,EAAYrD,GAI1C8B,OAAOC,eAAeF,EAAKP,EAAOU,WAE3BH,CACT,CA2BA,SAASgC,EAAS7D,GAGhB,GAAIA,GAAU0B,EACZ,MAAM,IAAIE,WAAW,0DACaF,EAAa8C,SAAS,IAAM,UAEhE,OAAgB,EAATxE,CACT,CAsGA,SAASlB,EAAYyD,EAAQC,GAC3B,GAAIlB,EAAOsC,SAASrB,GAClB,OAAOA,EAAOvC,OAEhB,GAAI8C,YAAYC,OAAOR,IAAWU,EAAWV,EAAQO,aACnD,OAAOP,EAAOzD,WAEhB,GAAsB,iBAAXyD,EACT,MAAM,IAAIJ,UACR,kGAC0BI,GAI9B,MAAM5C,EAAM4C,EAAOvC,OACbyE,EAAaC,UAAU1E,OAAS,IAAsB,IAAjB0E,UAAU,GACrD,IAAKD,GAAqB,IAAR9E,EAAW,OAAO,EAGpC,IAAIgF,GAAc,EAClB,OACE,OAAQnC,GACN,IAAK,QACL,IAAK,SACL,IAAK,SACH,OAAO7C,EACT,IAAK,OACL,IAAK,QACH,OAAOiF,EAAYrC,GAAQvC,OAC7B,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAa,EAANL,EACT,IAAK,MACH,OAAOA,IAAQ,EACjB,IAAK,SACH,OAAOkF,EAActC,GAAQvC,OAC/B,QACE,GAAI2E,EACF,OAAOF,GAAa,EAAIG,EAAYrC,GAAQvC,OAE9CwC,GAAY,GAAKA,GAAUsC,cAC3BH,GAAc,EAGtB,CAGA,SAASI,EAAcvC,EAAU1B,EAAOC,GACtC,IAAI4D,GAAc,EAclB,SALcb,IAAVhD,GAAuBA,EAAQ,KACjCA,EAAQ,GAINA,EAAQkE,KAAKhF,OACf,MAAO,GAOT,SAJY8D,IAAR/C,GAAqBA,EAAMiE,KAAKhF,UAClCe,EAAMiE,KAAKhF,QAGTe,GAAO,EACT,MAAO,GAOT,IAHAA,KAAS,KACTD,KAAW,GAGT,MAAO,GAKT,IAFK0B,IAAUA,EAAW,UAGxB,OAAQA,GACN,IAAK,MACH,OAAOyC,EAASD,KAAMlE,EAAOC,GAE/B,IAAK,OACL,IAAK,QACH,OAAOmE,EAAUF,KAAMlE,EAAOC,GAEhC,IAAK,QACH,OAAOoE,EAAWH,KAAMlE,EAAOC,GAEjC,IAAK,SACL,IAAK,SACH,OAAOqE,EAAYJ,KAAMlE,EAAOC,GAElC,IAAK,SACH,OAAOsE,EAAYL,KAAMlE,EAAOC,GAElC,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAOuE,EAAaN,KAAMlE,EAAOC,GAEnC,QACE,GAAI4D,EAAa,MAAM,IAAIxC,UAAU,qBAAuBK,GAC5DA,GAAYA,EAAW,IAAIsC,cAC3BH,GAAc,EAGtB,CAUA,SAASY,EAAM7B,EAAG8B,EAAGC,GACnB,MAAMnG,EAAIoE,EAAE8B,GACZ9B,EAAE8B,GAAK9B,EAAE+B,GACT/B,EAAE+B,GAAKnG,CACT,CA2IA,SAASoG,EAAsBtC,EAAQuC,EAAKtC,EAAYb,EAAUoD,GAEhE,GAAsB,IAAlBxC,EAAOpD,OAAc,OAAQ,EAmBjC,GAhB0B,iBAAfqD,GACTb,EAAWa,EACXA,EAAa,GACJA,EAAa,WACtBA,EAAa,WACJA,GAAc,aACvBA,GAAc,YAGZU,EADJV,GAAcA,KAGZA,EAAauC,EAAM,EAAKxC,EAAOpD,OAAS,GAItCqD,EAAa,IAAGA,EAAaD,EAAOpD,OAASqD,GAC7CA,GAAcD,EAAOpD,OAAQ,CAC/B,GAAI4F,EAAK,OAAQ,EACZvC,EAAaD,EAAOpD,OAAS,CACpC,MAAO,GAAIqD,EAAa,EAAG,CACzB,IAAIuC,EACC,OAAQ,EADJvC,EAAa,CAExB,CAQA,GALmB,iBAARsC,IACTA,EAAMrE,EAAOe,KAAKsD,EAAKnD,IAIrBlB,EAAOsC,SAAS+B,GAElB,OAAmB,IAAfA,EAAI3F,QACE,EAEH6F,EAAazC,EAAQuC,EAAKtC,EAAYb,EAAUoD,GAClD,GAAmB,iBAARD,EAEhB,OADAA,GAAY,IACgC,mBAAjClF,WAAWuB,UAAUnB,QAC1B+E,EACKnF,WAAWuB,UAAUnB,QAAQiF,KAAK1C,EAAQuC,EAAKtC,GAE/C5C,WAAWuB,UAAU+D,YAAYD,KAAK1C,EAAQuC,EAAKtC,GAGvDwC,EAAazC,EAAQ,CAACuC,GAAMtC,EAAYb,EAAUoD,GAG3D,MAAM,IAAIzD,UAAU,uCACtB,CAEA,SAAS0D,EAActG,EAAKoG,EAAKtC,EAAYb,EAAUoD,GACrD,IA0BItG,EA1BA0G,EAAY,EACZC,EAAY1G,EAAIS,OAChBkG,EAAYP,EAAI3F,OAEpB,QAAiB8D,IAAbtB,IAEe,UADjBA,EAAW2D,OAAO3D,GAAUsC,gBACY,UAAbtC,GACV,YAAbA,GAAuC,aAAbA,GAAyB,CACrD,GAAIjD,EAAIS,OAAS,GAAK2F,EAAI3F,OAAS,EACjC,OAAQ,EAEVgG,EAAY,EACZC,GAAa,EACbC,GAAa,EACb7C,GAAc,CAChB,CAGF,SAAS+C,EAAMvE,EAAKvC,GAClB,OAAkB,IAAd0G,EACKnE,EAAIvC,GAEJuC,EAAIwE,aAAa/G,EAAI0G,EAEhC,CAGA,GAAIJ,EAAK,CACP,IAAIU,GAAc,EAClB,IAAKhH,EAAI+D,EAAY/D,EAAI2G,EAAW3G,IAClC,GAAI8G,EAAK7G,EAAKD,KAAO8G,EAAKT,GAAqB,IAAhBW,EAAoB,EAAIhH,EAAIgH,IAEzD,IADoB,IAAhBA,IAAmBA,EAAahH,GAChCA,EAAIgH,EAAa,IAAMJ,EAAW,OAAOI,EAAaN,OAEtC,IAAhBM,IAAmBhH,GAAKA,EAAIgH,GAChCA,GAAc,CAGpB,MAEE,IADIjD,EAAa6C,EAAYD,IAAW5C,EAAa4C,EAAYC,GAC5D5G,EAAI+D,EAAY/D,GAAK,EAAGA,IAAK,CAChC,IAAIiH,GAAQ,EACZ,IAAK,IAAIC,EAAI,EAAGA,EAAIN,EAAWM,IAC7B,GAAIJ,EAAK7G,EAAKD,EAAIkH,KAAOJ,EAAKT,EAAKa,GAAI,CACrCD,GAAQ,EACR,KACF,CAEF,GAAIA,EAAO,OAAOjH,CACpB,CAGF,OAAQ,CACV,CAcA,SAASmH,EAAU5E,EAAKU,EAAQmE,EAAQ1G,GACtC0G,EAASC,OAAOD,IAAW,EAC3B,MAAME,EAAY/E,EAAI7B,OAAS0G,EAC1B1G,GAGHA,EAAS2G,OAAO3G,IACH4G,IACX5G,EAAS4G,GAJX5G,EAAS4G,EAQX,MAAMC,EAAStE,EAAOvC,OAKtB,IAAIV,EACJ,IAJIU,EAAS6G,EAAS,IACpB7G,EAAS6G,EAAS,GAGfvH,EAAI,EAAGA,EAAIU,IAAUV,EAAG,CAC3B,MAAMwH,EAASC,SAASxE,EAAOyE,OAAW,EAAJ1H,EAAO,GAAI,IACjD,GAAIyE,EAAY+C,GAAS,OAAOxH,EAChCuC,EAAI6E,EAASpH,GAAKwH,CACpB,CACA,OAAOxH,CACT,CAEA,SAAS2H,EAAWpF,EAAKU,EAAQmE,EAAQ1G,GACvC,OAAOkH,EAAWtC,EAAYrC,EAAQV,EAAI7B,OAAS0G,GAAS7E,EAAK6E,EAAQ1G,EAC3E,CAEA,SAASmH,EAAYtF,EAAKU,EAAQmE,EAAQ1G,GACxC,OAAOkH,EAypCT,SAAuBE,GACrB,MAAMC,EAAY,GAClB,IAAK,IAAI/H,EAAI,EAAGA,EAAI8H,EAAIpH,SAAUV,EAEhC+H,EAAUhH,KAAyB,IAApB+G,EAAIvH,WAAWP,IAEhC,OAAO+H,CACT,CAhqCoBC,CAAa/E,GAASV,EAAK6E,EAAQ1G,EACvD,CAEA,SAASuH,EAAa1F,EAAKU,EAAQmE,EAAQ1G,GACzC,OAAOkH,EAAWrC,EAActC,GAASV,EAAK6E,EAAQ1G,EACxD,CAEA,SAASwH,EAAW3F,EAAKU,EAAQmE,EAAQ1G,GACvC,OAAOkH,EA0pCT,SAAyBE,EAAKK,GAC5B,IAAIC,EAAGC,EAAIC,EACX,MAAMP,EAAY,GAClB,IAAK,IAAI/H,EAAI,EAAGA,EAAI8H,EAAIpH,WACjByH,GAAS,GAAK,KADanI,EAGhCoI,EAAIN,EAAIvH,WAAWP,GACnBqI,EAAKD,GAAK,EACVE,EAAKF,EAAI,IACTL,EAAUhH,KAAKuH,GACfP,EAAUhH,KAAKsH,GAGjB,OAAON,CACT,CAxqCoBQ,CAAetF,EAAQV,EAAI7B,OAAS0G,GAAS7E,EAAK6E,EAAQ1G,EAC9E,CA8EA,SAASqF,EAAaxD,EAAKf,EAAOC,GAChC,OAAc,IAAVD,GAAeC,IAAQc,EAAI7B,OACtBkB,EAAOpB,cAAc+B,GAErBX,EAAOpB,cAAc+B,EAAIe,MAAM9B,EAAOC,GAEjD,CAEA,SAASmE,EAAWrD,EAAKf,EAAOC,GAC9BA,EAAM+G,KAAKC,IAAIlG,EAAI7B,OAAQe,GAC3B,MAAMiH,EAAM,GAEZ,IAAI1I,EAAIwB,EACR,KAAOxB,EAAIyB,GAAK,CACd,MAAMkH,EAAYpG,EAAIvC,GACtB,IAAI4I,EAAY,KACZC,EAAoBF,EAAY,IAChC,EACCA,EAAY,IACT,EACCA,EAAY,IACT,EACA,EAEZ,GAAI3I,EAAI6I,GAAoBpH,EAAK,CAC/B,IAAIqH,EAAYC,EAAWC,EAAYC,EAEvC,OAAQJ,GACN,KAAK,EACCF,EAAY,MACdC,EAAYD,GAEd,MACF,KAAK,EACHG,EAAavG,EAAIvC,EAAI,GACO,MAAV,IAAb8I,KACHG,GAA6B,GAAZN,IAAqB,EAAoB,GAAbG,EACzCG,EAAgB,MAClBL,EAAYK,IAGhB,MACF,KAAK,EACHH,EAAavG,EAAIvC,EAAI,GACrB+I,EAAYxG,EAAIvC,EAAI,GACQ,MAAV,IAAb8I,IAAsD,MAAV,IAAZC,KACnCE,GAA6B,GAAZN,IAAoB,IAAoB,GAAbG,IAAsB,EAAmB,GAAZC,EACrEE,EAAgB,OAAUA,EAAgB,OAAUA,EAAgB,SACtEL,EAAYK,IAGhB,MACF,KAAK,EACHH,EAAavG,EAAIvC,EAAI,GACrB+I,EAAYxG,EAAIvC,EAAI,GACpBgJ,EAAazG,EAAIvC,EAAI,GACO,MAAV,IAAb8I,IAAsD,MAAV,IAAZC,IAAsD,MAAV,IAAbC,KAClEC,GAA6B,GAAZN,IAAoB,IAAqB,GAAbG,IAAsB,IAAmB,GAAZC,IAAqB,EAAoB,GAAbC,EAClGC,EAAgB,OAAUA,EAAgB,UAC5CL,EAAYK,IAItB,CAEkB,OAAdL,GAGFA,EAAY,MACZC,EAAmB,GACVD,EAAY,QAErBA,GAAa,MACbF,EAAI3H,KAAK6H,IAAc,GAAK,KAAQ,OACpCA,EAAY,MAAqB,KAAZA,GAGvBF,EAAI3H,KAAK6H,GACT5I,GAAK6I,CACP,CAEA,OAQF,SAAgCK,GAC9B,MAAM7I,EAAM6I,EAAWxI,OACvB,GAAIL,GAAO8I,EACT,OAAOtC,OAAOuC,aAAaC,MAAMxC,OAAQqC,GAI3C,IAAIR,EAAM,GACN1I,EAAI,EACR,KAAOA,EAAIK,GACTqI,GAAO7B,OAAOuC,aAAaC,MACzBxC,OACAqC,EAAW5F,MAAMtD,EAAGA,GAAKmJ,IAG7B,OAAOT,CACT,CAxBSY,CAAsBZ,EAC/B,CA3+BAnJ,EAAQgK,WAAanH,EAgBrBJ,EAAOwH,oBAUP,WAEE,IACE,MAAMvJ,EAAM,IAAIkB,WAAW,GACrBsI,EAAQ,CAAEC,IAAK,WAAc,OAAO,EAAG,GAG7C,OAFAlH,OAAOC,eAAegH,EAAOtI,WAAWuB,WACxCF,OAAOC,eAAexC,EAAKwJ,GACN,KAAdxJ,EAAIyJ,KAGb,CAFE,MAAOC,GACP,OAAO,CACT,CACF,CArB6BC,GAExB5H,EAAOwH,qBAA0C,oBAAZK,SACb,mBAAlBA,QAAQC,OACjBD,QAAQC,MACN,iJAkBJtH,OAAOuH,eAAe/H,EAAOU,UAAW,SAAU,CAChDsH,YAAY,EACZC,IAAK,WACH,GAAKjI,EAAOsC,SAASoB,MACrB,OAAOA,KAAK5B,MACd,IAGFtB,OAAOuH,eAAe/H,EAAOU,UAAW,SAAU,CAChDsH,YAAY,EACZC,IAAK,WACH,GAAKjI,EAAOsC,SAASoB,MACrB,OAAOA,KAAK3B,UACd,IAoCF/B,EAAOkI,SAAW,KA8DlBlI,EAAOe,KAAO,SAAUC,EAAOJ,EAAkBlC,GAC/C,OAAOqC,EAAKC,EAAOJ,EAAkBlC,EACvC,EAIA8B,OAAOC,eAAeT,EAAOU,UAAWvB,WAAWuB,WACnDF,OAAOC,eAAeT,EAAQb,YA8B9Ba,EAAOE,MAAQ,SAAU8C,EAAMmF,EAAMjH,GACnC,OArBF,SAAgB8B,EAAMmF,EAAMjH,GAE1B,OADA6B,EAAWC,GACPA,GAAQ,EACH3C,EAAa2C,QAETR,IAAT2F,EAIyB,iBAAbjH,EACVb,EAAa2C,GAAMmF,KAAKA,EAAMjH,GAC9Bb,EAAa2C,GAAMmF,KAAKA,GAEvB9H,EAAa2C,EACtB,CAOS9C,CAAM8C,EAAMmF,EAAMjH,EAC3B,EAUAlB,EAAOc,YAAc,SAAUkC,GAC7B,OAAOlC,EAAYkC,EACrB,EAIAhD,EAAOoI,gBAAkB,SAAUpF,GACjC,OAAOlC,EAAYkC,EACrB,EA6GAhD,EAAOsC,SAAW,SAAmBF,GACnC,OAAY,MAALA,IAA6B,IAAhBA,EAAEiG,WACpBjG,IAAMpC,EAAOU,SACjB,EAEAV,EAAOsI,QAAU,SAAkBC,EAAGnG,GAGpC,GAFIT,EAAW4G,EAAGpJ,cAAaoJ,EAAIvI,EAAOe,KAAKwH,EAAGA,EAAEnD,OAAQmD,EAAE/K,aAC1DmE,EAAWS,EAAGjD,cAAaiD,EAAIpC,EAAOe,KAAKqB,EAAGA,EAAEgD,OAAQhD,EAAE5E,cACzDwC,EAAOsC,SAASiG,KAAOvI,EAAOsC,SAASF,GAC1C,MAAM,IAAIvB,UACR,yEAIJ,GAAI0H,IAAMnG,EAAG,OAAO,EAEpB,IAAIoG,EAAID,EAAE7J,OACN+J,EAAIrG,EAAE1D,OAEV,IAAK,IAAIV,EAAI,EAAGK,EAAMmI,KAAKC,IAAI+B,EAAGC,GAAIzK,EAAIK,IAAOL,EAC/C,GAAIuK,EAAEvK,KAAOoE,EAAEpE,GAAI,CACjBwK,EAAID,EAAEvK,GACNyK,EAAIrG,EAAEpE,GACN,KACF,CAGF,OAAIwK,EAAIC,GAAW,EACfA,EAAID,EAAU,EACX,CACT,EAEAxI,EAAOmB,WAAa,SAAqBD,GACvC,OAAQ2D,OAAO3D,GAAUsC,eACvB,IAAK,MACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAO,EACT,QACE,OAAO,EAEb,EAEAxD,EAAO0I,OAAS,SAAiBC,EAAMjK,GACrC,IAAKU,MAAMuD,QAAQgG,GACjB,MAAM,IAAI9H,UAAU,+CAGtB,GAAoB,IAAhB8H,EAAKjK,OACP,OAAOsB,EAAOE,MAAM,GAGtB,IAAIlC,EACJ,QAAewE,IAAX9D,EAEF,IADAA,EAAS,EACJV,EAAI,EAAGA,EAAI2K,EAAKjK,SAAUV,EAC7BU,GAAUiK,EAAK3K,GAAGU,OAItB,MAAMoD,EAAS9B,EAAOc,YAAYpC,GAClC,IAAIkK,EAAM,EACV,IAAK5K,EAAI,EAAGA,EAAI2K,EAAKjK,SAAUV,EAAG,CAChC,IAAIuC,EAAMoI,EAAK3K,GACf,GAAI2D,EAAWpB,EAAKpB,YACdyJ,EAAMrI,EAAI7B,OAASoD,EAAOpD,QACvBsB,EAAOsC,SAAS/B,KAAMA,EAAMP,EAAOe,KAAKR,IAC7CA,EAAIqB,KAAKE,EAAQ8G,IAEjBzJ,WAAWuB,UAAUmI,IAAIrE,KACvB1C,EACAvB,EACAqI,OAGC,KAAK5I,EAAOsC,SAAS/B,GAC1B,MAAM,IAAIM,UAAU,+CAEpBN,EAAIqB,KAAKE,EAAQ8G,EACnB,CACAA,GAAOrI,EAAI7B,MACb,CACA,OAAOoD,CACT,EAiDA9B,EAAOxC,WAAaA,EA8EpBwC,EAAOU,UAAU2H,WAAY,EAQ7BrI,EAAOU,UAAUoI,OAAS,WACxB,MAAMzK,EAAMqF,KAAKhF,OACjB,GAAIL,EAAM,GAAM,EACd,MAAM,IAAIiC,WAAW,6CAEvB,IAAK,IAAItC,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EAC5BiG,EAAKP,KAAM1F,EAAGA,EAAI,GAEpB,OAAO0F,IACT,EAEA1D,EAAOU,UAAUqI,OAAS,WACxB,MAAM1K,EAAMqF,KAAKhF,OACjB,GAAIL,EAAM,GAAM,EACd,MAAM,IAAIiC,WAAW,6CAEvB,IAAK,IAAItC,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EAC5BiG,EAAKP,KAAM1F,EAAGA,EAAI,GAClBiG,EAAKP,KAAM1F,EAAI,EAAGA,EAAI,GAExB,OAAO0F,IACT,EAEA1D,EAAOU,UAAUsI,OAAS,WACxB,MAAM3K,EAAMqF,KAAKhF,OACjB,GAAIL,EAAM,GAAM,EACd,MAAM,IAAIiC,WAAW,6CAEvB,IAAK,IAAItC,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EAC5BiG,EAAKP,KAAM1F,EAAGA,EAAI,GAClBiG,EAAKP,KAAM1F,EAAI,EAAGA,EAAI,GACtBiG,EAAKP,KAAM1F,EAAI,EAAGA,EAAI,GACtBiG,EAAKP,KAAM1F,EAAI,EAAGA,EAAI,GAExB,OAAO0F,IACT,EAEA1D,EAAOU,UAAUwC,SAAW,WAC1B,MAAMxE,EAASgF,KAAKhF,OACpB,OAAe,IAAXA,EAAqB,GACA,IAArB0E,UAAU1E,OAAqBkF,EAAUF,KAAM,EAAGhF,GAC/C+E,EAAa4D,MAAM3D,KAAMN,UAClC,EAEApD,EAAOU,UAAUuI,eAAiBjJ,EAAOU,UAAUwC,SAEnDlD,EAAOU,UAAUwI,OAAS,SAAiB9G,GACzC,IAAKpC,EAAOsC,SAASF,GAAI,MAAM,IAAIvB,UAAU,6BAC7C,OAAI6C,OAAStB,GACsB,IAA5BpC,EAAOsI,QAAQ5E,KAAMtB,EAC9B,EAEApC,EAAOU,UAAUyI,QAAU,WACzB,IAAIrD,EAAM,GACV,MAAMsD,EAAM7L,EAAQ4C,kBAGpB,OAFA2F,EAAMpC,KAAKR,SAAS,MAAO,EAAGkG,GAAKC,QAAQ,UAAW,OAAOC,OACzD5F,KAAKhF,OAAS0K,IAAKtD,GAAO,SACvB,WAAaA,EAAM,GAC5B,EACIhG,IACFE,EAAOU,UAAUZ,GAAuBE,EAAOU,UAAUyI,SAG3DnJ,EAAOU,UAAU4H,QAAU,SAAkBiB,EAAQ/J,EAAOC,EAAK+J,EAAWC,GAI1E,GAHI9H,EAAW4H,EAAQpK,cACrBoK,EAASvJ,EAAOe,KAAKwI,EAAQA,EAAOnE,OAAQmE,EAAO/L,cAEhDwC,EAAOsC,SAASiH,GACnB,MAAM,IAAI1I,UACR,wFAC2B0I,GAiB/B,QAbc/G,IAAVhD,IACFA,EAAQ,QAEEgD,IAAR/C,IACFA,EAAM8J,EAASA,EAAO7K,OAAS,QAEf8D,IAAdgH,IACFA,EAAY,QAEEhH,IAAZiH,IACFA,EAAU/F,KAAKhF,QAGbc,EAAQ,GAAKC,EAAM8J,EAAO7K,QAAU8K,EAAY,GAAKC,EAAU/F,KAAKhF,OACtE,MAAM,IAAI4B,WAAW,sBAGvB,GAAIkJ,GAAaC,GAAWjK,GAASC,EACnC,OAAO,EAET,GAAI+J,GAAaC,EACf,OAAQ,EAEV,GAAIjK,GAASC,EACX,OAAO,EAQT,GAAIiE,OAAS6F,EAAQ,OAAO,EAE5B,IAAIf,GAJJiB,KAAa,IADbD,KAAe,GAMXf,GAPJhJ,KAAS,IADTD,KAAW,GASX,MAAMnB,EAAMmI,KAAKC,IAAI+B,EAAGC,GAElBiB,EAAWhG,KAAKpC,MAAMkI,EAAWC,GACjCE,EAAaJ,EAAOjI,MAAM9B,EAAOC,GAEvC,IAAK,IAAIzB,EAAI,EAAGA,EAAIK,IAAOL,EACzB,GAAI0L,EAAS1L,KAAO2L,EAAW3L,GAAI,CACjCwK,EAAIkB,EAAS1L,GACbyK,EAAIkB,EAAW3L,GACf,KACF,CAGF,OAAIwK,EAAIC,GAAW,EACfA,EAAID,EAAU,EACX,CACT,EA2HAxI,EAAOU,UAAUkJ,SAAW,SAAmBvF,EAAKtC,EAAYb,GAC9D,OAAoD,IAA7CwC,KAAKnE,QAAQ8E,EAAKtC,EAAYb,EACvC,EAEAlB,EAAOU,UAAUnB,QAAU,SAAkB8E,EAAKtC,EAAYb,GAC5D,OAAOkD,EAAqBV,KAAMW,EAAKtC,EAAYb,GAAU,EAC/D,EAEAlB,EAAOU,UAAU+D,YAAc,SAAsBJ,EAAKtC,EAAYb,GACpE,OAAOkD,EAAqBV,KAAMW,EAAKtC,EAAYb,GAAU,EAC/D,EA4CAlB,EAAOU,UAAUW,MAAQ,SAAgBJ,EAAQmE,EAAQ1G,EAAQwC,GAE/D,QAAesB,IAAX4C,EACFlE,EAAW,OACXxC,EAASgF,KAAKhF,OACd0G,EAAS,OAEJ,QAAe5C,IAAX9D,GAA0C,iBAAX0G,EACxClE,EAAWkE,EACX1G,EAASgF,KAAKhF,OACd0G,EAAS,MAEJ,KAAIyE,SAASzE,GAUlB,MAAM,IAAI9F,MACR,2EAVF8F,KAAoB,EAChByE,SAASnL,IACXA,KAAoB,OACH8D,IAAbtB,IAAwBA,EAAW,UAEvCA,EAAWxC,EACXA,OAAS8D,EAMb,CAEA,MAAM8C,EAAY5B,KAAKhF,OAAS0G,EAGhC,SAFe5C,IAAX9D,GAAwBA,EAAS4G,KAAW5G,EAAS4G,GAEpDrE,EAAOvC,OAAS,IAAMA,EAAS,GAAK0G,EAAS,IAAOA,EAAS1B,KAAKhF,OACrE,MAAM,IAAI4B,WAAW,0CAGlBY,IAAUA,EAAW,QAE1B,IAAImC,GAAc,EAClB,OACE,OAAQnC,GACN,IAAK,MACH,OAAOiE,EAASzB,KAAMzC,EAAQmE,EAAQ1G,GAExC,IAAK,OACL,IAAK,QACH,OAAOiH,EAAUjC,KAAMzC,EAAQmE,EAAQ1G,GAEzC,IAAK,QACL,IAAK,SACL,IAAK,SACH,OAAOmH,EAAWnC,KAAMzC,EAAQmE,EAAQ1G,GAE1C,IAAK,SAEH,OAAOuH,EAAYvC,KAAMzC,EAAQmE,EAAQ1G,GAE3C,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAOwH,EAAUxC,KAAMzC,EAAQmE,EAAQ1G,GAEzC,QACE,GAAI2E,EAAa,MAAM,IAAIxC,UAAU,qBAAuBK,GAC5DA,GAAY,GAAKA,GAAUsC,cAC3BH,GAAc,EAGtB,EAEArD,EAAOU,UAAUoJ,OAAS,WACxB,MAAO,CACLpH,KAAM,SACNE,KAAMxD,MAAMsB,UAAUY,MAAMkD,KAAKd,KAAKqG,MAAQrG,KAAM,GAExD,EAyFA,MAAMyD,EAAuB,KAoB7B,SAAStD,EAAYtD,EAAKf,EAAOC,GAC/B,IAAIuK,EAAM,GACVvK,EAAM+G,KAAKC,IAAIlG,EAAI7B,OAAQe,GAE3B,IAAK,IAAIzB,EAAIwB,EAAOxB,EAAIyB,IAAOzB,EAC7BgM,GAAOnF,OAAOuC,aAAsB,IAAT7G,EAAIvC,IAEjC,OAAOgM,CACT,CAEA,SAASlG,EAAavD,EAAKf,EAAOC,GAChC,IAAIuK,EAAM,GACVvK,EAAM+G,KAAKC,IAAIlG,EAAI7B,OAAQe,GAE3B,IAAK,IAAIzB,EAAIwB,EAAOxB,EAAIyB,IAAOzB,EAC7BgM,GAAOnF,OAAOuC,aAAa7G,EAAIvC,IAEjC,OAAOgM,CACT,CAEA,SAASrG,EAAUpD,EAAKf,EAAOC,GAC7B,MAAMpB,EAAMkC,EAAI7B,SAEXc,GAASA,EAAQ,KAAGA,EAAQ,KAC5BC,GAAOA,EAAM,GAAKA,EAAMpB,KAAKoB,EAAMpB,GAExC,IAAI4L,EAAM,GACV,IAAK,IAAIjM,EAAIwB,EAAOxB,EAAIyB,IAAOzB,EAC7BiM,GAAOC,EAAoB3J,EAAIvC,IAEjC,OAAOiM,CACT,CAEA,SAASjG,EAAczD,EAAKf,EAAOC,GACjC,MAAM0K,EAAQ5J,EAAIe,MAAM9B,EAAOC,GAC/B,IAAIiH,EAAM,GAEV,IAAK,IAAI1I,EAAI,EAAGA,EAAImM,EAAMzL,OAAS,EAAGV,GAAK,EACzC0I,GAAO7B,OAAOuC,aAAa+C,EAAMnM,GAAqB,IAAfmM,EAAMnM,EAAI,IAEnD,OAAO0I,CACT,CAiCA,SAAS0D,EAAahF,EAAQiF,EAAK3L,GACjC,GAAK0G,EAAS,GAAO,GAAKA,EAAS,EAAG,MAAM,IAAI9E,WAAW,sBAC3D,GAAI8E,EAASiF,EAAM3L,EAAQ,MAAM,IAAI4B,WAAW,wCAClD,CAyQA,SAASgK,EAAU/J,EAAKS,EAAOoE,EAAQiF,EAAKjB,EAAK3C,GAC/C,IAAKzG,EAAOsC,SAAS/B,GAAM,MAAM,IAAIM,UAAU,+CAC/C,GAAIG,EAAQoI,GAAOpI,EAAQyF,EAAK,MAAM,IAAInG,WAAW,qCACrD,GAAI8E,EAASiF,EAAM9J,EAAI7B,OAAQ,MAAM,IAAI4B,WAAW,qBACtD,CA+FA,SAASiK,EAAgBhK,EAAKS,EAAOoE,EAAQqB,EAAK2C,GAChDoB,EAAWxJ,EAAOyF,EAAK2C,EAAK7I,EAAK6E,EAAQ,GAEzC,IAAIkB,EAAKjB,OAAOrE,EAAQyJ,OAAO,aAC/BlK,EAAI6E,KAAYkB,EAChBA,IAAW,EACX/F,EAAI6E,KAAYkB,EAChBA,IAAW,EACX/F,EAAI6E,KAAYkB,EAChBA,IAAW,EACX/F,EAAI6E,KAAYkB,EAChB,IAAID,EAAKhB,OAAOrE,GAASyJ,OAAO,IAAMA,OAAO,aAQ7C,OAPAlK,EAAI6E,KAAYiB,EAChBA,IAAW,EACX9F,EAAI6E,KAAYiB,EAChBA,IAAW,EACX9F,EAAI6E,KAAYiB,EAChBA,IAAW,EACX9F,EAAI6E,KAAYiB,EACTjB,CACT,CAEA,SAASsF,EAAgBnK,EAAKS,EAAOoE,EAAQqB,EAAK2C,GAChDoB,EAAWxJ,EAAOyF,EAAK2C,EAAK7I,EAAK6E,EAAQ,GAEzC,IAAIkB,EAAKjB,OAAOrE,EAAQyJ,OAAO,aAC/BlK,EAAI6E,EAAS,GAAKkB,EAClBA,IAAW,EACX/F,EAAI6E,EAAS,GAAKkB,EAClBA,IAAW,EACX/F,EAAI6E,EAAS,GAAKkB,EAClBA,IAAW,EACX/F,EAAI6E,EAAS,GAAKkB,EAClB,IAAID,EAAKhB,OAAOrE,GAASyJ,OAAO,IAAMA,OAAO,aAQ7C,OAPAlK,EAAI6E,EAAS,GAAKiB,EAClBA,IAAW,EACX9F,EAAI6E,EAAS,GAAKiB,EAClBA,IAAW,EACX9F,EAAI6E,EAAS,GAAKiB,EAClBA,IAAW,EACX9F,EAAI6E,GAAUiB,EACPjB,EAAS,CAClB,CAkHA,SAASuF,EAAcpK,EAAKS,EAAOoE,EAAQiF,EAAKjB,EAAK3C,GACnD,GAAIrB,EAASiF,EAAM9J,EAAI7B,OAAQ,MAAM,IAAI4B,WAAW,sBACpD,GAAI8E,EAAS,EAAG,MAAM,IAAI9E,WAAW,qBACvC,CAEA,SAASsK,EAAYrK,EAAKS,EAAOoE,EAAQyF,EAAcC,GAOrD,OANA9J,GAASA,EACToE,KAAoB,EACf0F,GACHH,EAAapK,EAAKS,EAAOoE,EAAQ,GAEnCvF,EAAQwB,MAAMd,EAAKS,EAAOoE,EAAQyF,EAAc,GAAI,GAC7CzF,EAAS,CAClB,CAUA,SAAS2F,EAAaxK,EAAKS,EAAOoE,EAAQyF,EAAcC,GAOtD,OANA9J,GAASA,EACToE,KAAoB,EACf0F,GACHH,EAAapK,EAAKS,EAAOoE,EAAQ,GAEnCvF,EAAQwB,MAAMd,EAAKS,EAAOoE,EAAQyF,EAAc,GAAI,GAC7CzF,EAAS,CAClB,CAzkBApF,EAAOU,UAAUY,MAAQ,SAAgB9B,EAAOC,GAC9C,MAAMpB,EAAMqF,KAAKhF,QACjBc,IAAUA,GAGE,GACVA,GAASnB,GACG,IAAGmB,EAAQ,GACdA,EAAQnB,IACjBmB,EAAQnB,IANVoB,OAAc+C,IAAR/C,EAAoBpB,IAAQoB,GASxB,GACRA,GAAOpB,GACG,IAAGoB,EAAM,GACVA,EAAMpB,IACfoB,EAAMpB,GAGJoB,EAAMD,IAAOC,EAAMD,GAEvB,MAAMwL,EAAStH,KAAKuH,SAASzL,EAAOC,GAIpC,OAFAe,OAAOC,eAAeuK,EAAQhL,EAAOU,WAE9BsK,CACT,EAUAhL,EAAOU,UAAUwK,WACjBlL,EAAOU,UAAUyK,WAAa,SAAqB/F,EAAQ5H,EAAYsN,GACrE1F,KAAoB,EACpB5H,KAA4B,EACvBsN,GAAUV,EAAYhF,EAAQ5H,EAAYkG,KAAKhF,QAEpD,IAAI2F,EAAMX,KAAK0B,GACXgG,EAAM,EACNpN,EAAI,EACR,OAASA,EAAIR,IAAe4N,GAAO,MACjC/G,GAAOX,KAAK0B,EAASpH,GAAKoN,EAG5B,OAAO/G,CACT,EAEArE,EAAOU,UAAU2K,WACjBrL,EAAOU,UAAU4K,WAAa,SAAqBlG,EAAQ5H,EAAYsN,GACrE1F,KAAoB,EACpB5H,KAA4B,EACvBsN,GACHV,EAAYhF,EAAQ5H,EAAYkG,KAAKhF,QAGvC,IAAI2F,EAAMX,KAAK0B,IAAW5H,GACtB4N,EAAM,EACV,KAAO5N,EAAa,IAAM4N,GAAO,MAC/B/G,GAAOX,KAAK0B,IAAW5H,GAAc4N,EAGvC,OAAO/G,CACT,EAEArE,EAAOU,UAAU6K,UACjBvL,EAAOU,UAAU8K,UAAY,SAAoBpG,EAAQ0F,GAGvD,OAFA1F,KAAoB,EACf0F,GAAUV,EAAYhF,EAAQ,EAAG1B,KAAKhF,QACpCgF,KAAK0B,EACd,EAEApF,EAAOU,UAAU+K,aACjBzL,EAAOU,UAAUgL,aAAe,SAAuBtG,EAAQ0F,GAG7D,OAFA1F,KAAoB,EACf0F,GAAUV,EAAYhF,EAAQ,EAAG1B,KAAKhF,QACpCgF,KAAK0B,GAAW1B,KAAK0B,EAAS,IAAM,CAC7C,EAEApF,EAAOU,UAAUiL,aACjB3L,EAAOU,UAAUqE,aAAe,SAAuBK,EAAQ0F,GAG7D,OAFA1F,KAAoB,EACf0F,GAAUV,EAAYhF,EAAQ,EAAG1B,KAAKhF,QACnCgF,KAAK0B,IAAW,EAAK1B,KAAK0B,EAAS,EAC7C,EAEApF,EAAOU,UAAUkL,aACjB5L,EAAOU,UAAUmL,aAAe,SAAuBzG,EAAQ0F,GAI7D,OAHA1F,KAAoB,EACf0F,GAAUV,EAAYhF,EAAQ,EAAG1B,KAAKhF,SAElCgF,KAAK0B,GACT1B,KAAK0B,EAAS,IAAM,EACpB1B,KAAK0B,EAAS,IAAM,IACD,SAAnB1B,KAAK0B,EAAS,EACrB,EAEApF,EAAOU,UAAUoL,aACjB9L,EAAOU,UAAUqL,aAAe,SAAuB3G,EAAQ0F,GAI7D,OAHA1F,KAAoB,EACf0F,GAAUV,EAAYhF,EAAQ,EAAG1B,KAAKhF,QAEpB,SAAfgF,KAAK0B,IACT1B,KAAK0B,EAAS,IAAM,GACrB1B,KAAK0B,EAAS,IAAM,EACrB1B,KAAK0B,EAAS,GAClB,EAEApF,EAAOU,UAAUsL,gBAAkBC,GAAmB,SAA0B7G,GAE9E8G,EADA9G,KAAoB,EACG,UACvB,MAAM+G,EAAQzI,KAAK0B,GACbgH,EAAO1I,KAAK0B,EAAS,QACb5C,IAAV2J,QAAgC3J,IAAT4J,GACzBC,EAAYjH,EAAQ1B,KAAKhF,OAAS,GAGpC,MAAM4H,EAAK6F,EACQ,IAAjBzI,OAAO0B,GACU,MAAjB1B,OAAO0B,GACP1B,OAAO0B,GAAU,GAAK,GAElBiB,EAAK3C,OAAO0B,GACC,IAAjB1B,OAAO0B,GACU,MAAjB1B,OAAO0B,GACPgH,EAAO,GAAK,GAEd,OAAO3B,OAAOnE,IAAOmE,OAAOpE,IAAOoE,OAAO,IAC5C,IAEAzK,EAAOU,UAAU4L,gBAAkBL,GAAmB,SAA0B7G,GAE9E8G,EADA9G,KAAoB,EACG,UACvB,MAAM+G,EAAQzI,KAAK0B,GACbgH,EAAO1I,KAAK0B,EAAS,QACb5C,IAAV2J,QAAgC3J,IAAT4J,GACzBC,EAAYjH,EAAQ1B,KAAKhF,OAAS,GAGpC,MAAM2H,EAAK8F,EAAQ,GAAK,GACL,MAAjBzI,OAAO0B,GACU,IAAjB1B,OAAO0B,GACP1B,OAAO0B,GAEHkB,EAAK5C,OAAO0B,GAAU,GAAK,GACd,MAAjB1B,OAAO0B,GACU,IAAjB1B,OAAO0B,GACPgH,EAEF,OAAQ3B,OAAOpE,IAAOoE,OAAO,KAAOA,OAAOnE,EAC7C,IAEAtG,EAAOU,UAAU6L,UAAY,SAAoBnH,EAAQ5H,EAAYsN,GACnE1F,KAAoB,EACpB5H,KAA4B,EACvBsN,GAAUV,EAAYhF,EAAQ5H,EAAYkG,KAAKhF,QAEpD,IAAI2F,EAAMX,KAAK0B,GACXgG,EAAM,EACNpN,EAAI,EACR,OAASA,EAAIR,IAAe4N,GAAO,MACjC/G,GAAOX,KAAK0B,EAASpH,GAAKoN,EAM5B,OAJAA,GAAO,IAEH/G,GAAO+G,IAAK/G,GAAOmC,KAAKgG,IAAI,EAAG,EAAIhP,IAEhC6G,CACT,EAEArE,EAAOU,UAAU+L,UAAY,SAAoBrH,EAAQ5H,EAAYsN,GACnE1F,KAAoB,EACpB5H,KAA4B,EACvBsN,GAAUV,EAAYhF,EAAQ5H,EAAYkG,KAAKhF,QAEpD,IAAIV,EAAIR,EACJ4N,EAAM,EACN/G,EAAMX,KAAK0B,IAAWpH,GAC1B,KAAOA,EAAI,IAAMoN,GAAO,MACtB/G,GAAOX,KAAK0B,IAAWpH,GAAKoN,EAM9B,OAJAA,GAAO,IAEH/G,GAAO+G,IAAK/G,GAAOmC,KAAKgG,IAAI,EAAG,EAAIhP,IAEhC6G,CACT,EAEArE,EAAOU,UAAUgM,SAAW,SAAmBtH,EAAQ0F,GAGrD,OAFA1F,KAAoB,EACf0F,GAAUV,EAAYhF,EAAQ,EAAG1B,KAAKhF,QACtB,IAAfgF,KAAK0B,IAC0B,GAA5B,IAAO1B,KAAK0B,GAAU,GADK1B,KAAK0B,EAE3C,EAEApF,EAAOU,UAAUiM,YAAc,SAAsBvH,EAAQ0F,GAC3D1F,KAAoB,EACf0F,GAAUV,EAAYhF,EAAQ,EAAG1B,KAAKhF,QAC3C,MAAM2F,EAAMX,KAAK0B,GAAW1B,KAAK0B,EAAS,IAAM,EAChD,OAAc,MAANf,EAAsB,WAANA,EAAmBA,CAC7C,EAEArE,EAAOU,UAAUkM,YAAc,SAAsBxH,EAAQ0F,GAC3D1F,KAAoB,EACf0F,GAAUV,EAAYhF,EAAQ,EAAG1B,KAAKhF,QAC3C,MAAM2F,EAAMX,KAAK0B,EAAS,GAAM1B,KAAK0B,IAAW,EAChD,OAAc,MAANf,EAAsB,WAANA,EAAmBA,CAC7C,EAEArE,EAAOU,UAAUmM,YAAc,SAAsBzH,EAAQ0F,GAI3D,OAHA1F,KAAoB,EACf0F,GAAUV,EAAYhF,EAAQ,EAAG1B,KAAKhF,QAEnCgF,KAAK0B,GACV1B,KAAK0B,EAAS,IAAM,EACpB1B,KAAK0B,EAAS,IAAM,GACpB1B,KAAK0B,EAAS,IAAM,EACzB,EAEApF,EAAOU,UAAUoM,YAAc,SAAsB1H,EAAQ0F,GAI3D,OAHA1F,KAAoB,EACf0F,GAAUV,EAAYhF,EAAQ,EAAG1B,KAAKhF,QAEnCgF,KAAK0B,IAAW,GACrB1B,KAAK0B,EAAS,IAAM,GACpB1B,KAAK0B,EAAS,IAAM,EACpB1B,KAAK0B,EAAS,EACnB,EAEApF,EAAOU,UAAUqM,eAAiBd,GAAmB,SAAyB7G,GAE5E8G,EADA9G,KAAoB,EACG,UACvB,MAAM+G,EAAQzI,KAAK0B,GACbgH,EAAO1I,KAAK0B,EAAS,QACb5C,IAAV2J,QAAgC3J,IAAT4J,GACzBC,EAAYjH,EAAQ1B,KAAKhF,OAAS,GAGpC,MAAM2F,EAAMX,KAAK0B,EAAS,GACL,IAAnB1B,KAAK0B,EAAS,GACK,MAAnB1B,KAAK0B,EAAS,IACbgH,GAAQ,IAEX,OAAQ3B,OAAOpG,IAAQoG,OAAO,KAC5BA,OAAO0B,EACU,IAAjBzI,OAAO0B,GACU,MAAjB1B,OAAO0B,GACP1B,OAAO0B,GAAU,GAAK,GAC1B,IAEApF,EAAOU,UAAUsM,eAAiBf,GAAmB,SAAyB7G,GAE5E8G,EADA9G,KAAoB,EACG,UACvB,MAAM+G,EAAQzI,KAAK0B,GACbgH,EAAO1I,KAAK0B,EAAS,QACb5C,IAAV2J,QAAgC3J,IAAT4J,GACzBC,EAAYjH,EAAQ1B,KAAKhF,OAAS,GAGpC,MAAM2F,GAAO8H,GAAS,IACH,MAAjBzI,OAAO0B,GACU,IAAjB1B,OAAO0B,GACP1B,OAAO0B,GAET,OAAQqF,OAAOpG,IAAQoG,OAAO,KAC5BA,OAAO/G,OAAO0B,GAAU,GAAK,GACZ,MAAjB1B,OAAO0B,GACU,IAAjB1B,OAAO0B,GACPgH,EACJ,IAEApM,EAAOU,UAAUuM,YAAc,SAAsB7H,EAAQ0F,GAG3D,OAFA1F,KAAoB,EACf0F,GAAUV,EAAYhF,EAAQ,EAAG1B,KAAKhF,QACpCmB,EAAQiF,KAAKpB,KAAM0B,GAAQ,EAAM,GAAI,EAC9C,EAEApF,EAAOU,UAAUwM,YAAc,SAAsB9H,EAAQ0F,GAG3D,OAFA1F,KAAoB,EACf0F,GAAUV,EAAYhF,EAAQ,EAAG1B,KAAKhF,QACpCmB,EAAQiF,KAAKpB,KAAM0B,GAAQ,EAAO,GAAI,EAC/C,EAEApF,EAAOU,UAAUyM,aAAe,SAAuB/H,EAAQ0F,GAG7D,OAFA1F,KAAoB,EACf0F,GAAUV,EAAYhF,EAAQ,EAAG1B,KAAKhF,QACpCmB,EAAQiF,KAAKpB,KAAM0B,GAAQ,EAAM,GAAI,EAC9C,EAEApF,EAAOU,UAAU0M,aAAe,SAAuBhI,EAAQ0F,GAG7D,OAFA1F,KAAoB,EACf0F,GAAUV,EAAYhF,EAAQ,EAAG1B,KAAKhF,QACpCmB,EAAQiF,KAAKpB,KAAM0B,GAAQ,EAAO,GAAI,EAC/C,EAQApF,EAAOU,UAAU2M,YACjBrN,EAAOU,UAAU4M,YAAc,SAAsBtM,EAAOoE,EAAQ5H,EAAYsN,GAI9E,GAHA9J,GAASA,EACToE,KAAoB,EACpB5H,KAA4B,GACvBsN,EAAU,CAEbR,EAAS5G,KAAM1C,EAAOoE,EAAQ5H,EADbgJ,KAAKgG,IAAI,EAAG,EAAIhP,GAAc,EACK,EACtD,CAEA,IAAI4N,EAAM,EACNpN,EAAI,EAER,IADA0F,KAAK0B,GAAkB,IAARpE,IACNhD,EAAIR,IAAe4N,GAAO,MACjC1H,KAAK0B,EAASpH,GAAMgD,EAAQoK,EAAO,IAGrC,OAAOhG,EAAS5H,CAClB,EAEAwC,EAAOU,UAAU6M,YACjBvN,EAAOU,UAAU8M,YAAc,SAAsBxM,EAAOoE,EAAQ5H,EAAYsN,GAI9E,GAHA9J,GAASA,EACToE,KAAoB,EACpB5H,KAA4B,GACvBsN,EAAU,CAEbR,EAAS5G,KAAM1C,EAAOoE,EAAQ5H,EADbgJ,KAAKgG,IAAI,EAAG,EAAIhP,GAAc,EACK,EACtD,CAEA,IAAIQ,EAAIR,EAAa,EACjB4N,EAAM,EAEV,IADA1H,KAAK0B,EAASpH,GAAa,IAARgD,IACVhD,GAAK,IAAMoN,GAAO,MACzB1H,KAAK0B,EAASpH,GAAMgD,EAAQoK,EAAO,IAGrC,OAAOhG,EAAS5H,CAClB,EAEAwC,EAAOU,UAAU+M,WACjBzN,EAAOU,UAAUgN,WAAa,SAAqB1M,EAAOoE,EAAQ0F,GAKhE,OAJA9J,GAASA,EACToE,KAAoB,EACf0F,GAAUR,EAAS5G,KAAM1C,EAAOoE,EAAQ,EAAG,IAAM,GACtD1B,KAAK0B,GAAmB,IAARpE,EACToE,EAAS,CAClB,EAEApF,EAAOU,UAAUiN,cACjB3N,EAAOU,UAAUkN,cAAgB,SAAwB5M,EAAOoE,EAAQ0F,GAMtE,OALA9J,GAASA,EACToE,KAAoB,EACf0F,GAAUR,EAAS5G,KAAM1C,EAAOoE,EAAQ,EAAG,MAAQ,GACxD1B,KAAK0B,GAAmB,IAARpE,EAChB0C,KAAK0B,EAAS,GAAMpE,IAAU,EACvBoE,EAAS,CAClB,EAEApF,EAAOU,UAAUmN,cACjB7N,EAAOU,UAAUoN,cAAgB,SAAwB9M,EAAOoE,EAAQ0F,GAMtE,OALA9J,GAASA,EACToE,KAAoB,EACf0F,GAAUR,EAAS5G,KAAM1C,EAAOoE,EAAQ,EAAG,MAAQ,GACxD1B,KAAK0B,GAAWpE,IAAU,EAC1B0C,KAAK0B,EAAS,GAAc,IAARpE,EACboE,EAAS,CAClB,EAEApF,EAAOU,UAAUqN,cACjB/N,EAAOU,UAAUsN,cAAgB,SAAwBhN,EAAOoE,EAAQ0F,GAQtE,OAPA9J,GAASA,EACToE,KAAoB,EACf0F,GAAUR,EAAS5G,KAAM1C,EAAOoE,EAAQ,EAAG,WAAY,GAC5D1B,KAAK0B,EAAS,GAAMpE,IAAU,GAC9B0C,KAAK0B,EAAS,GAAMpE,IAAU,GAC9B0C,KAAK0B,EAAS,GAAMpE,IAAU,EAC9B0C,KAAK0B,GAAmB,IAARpE,EACToE,EAAS,CAClB,EAEApF,EAAOU,UAAUuN,cACjBjO,EAAOU,UAAUwN,cAAgB,SAAwBlN,EAAOoE,EAAQ0F,GAQtE,OAPA9J,GAASA,EACToE,KAAoB,EACf0F,GAAUR,EAAS5G,KAAM1C,EAAOoE,EAAQ,EAAG,WAAY,GAC5D1B,KAAK0B,GAAWpE,IAAU,GAC1B0C,KAAK0B,EAAS,GAAMpE,IAAU,GAC9B0C,KAAK0B,EAAS,GAAMpE,IAAU,EAC9B0C,KAAK0B,EAAS,GAAc,IAARpE,EACboE,EAAS,CAClB,EA8CApF,EAAOU,UAAUyN,iBAAmBlC,GAAmB,SAA2BjL,EAAOoE,EAAS,GAChG,OAAOmF,EAAe7G,KAAM1C,EAAOoE,EAAQqF,OAAO,GAAIA,OAAO,sBAC/D,IAEAzK,EAAOU,UAAU0N,iBAAmBnC,GAAmB,SAA2BjL,EAAOoE,EAAS,GAChG,OAAOsF,EAAehH,KAAM1C,EAAOoE,EAAQqF,OAAO,GAAIA,OAAO,sBAC/D,IAEAzK,EAAOU,UAAU2N,WAAa,SAAqBrN,EAAOoE,EAAQ5H,EAAYsN,GAG5E,GAFA9J,GAASA,EACToE,KAAoB,GACf0F,EAAU,CACb,MAAMwD,EAAQ9H,KAAKgG,IAAI,EAAI,EAAIhP,EAAc,GAE7C8M,EAAS5G,KAAM1C,EAAOoE,EAAQ5H,EAAY8Q,EAAQ,GAAIA,EACxD,CAEA,IAAItQ,EAAI,EACJoN,EAAM,EACNmD,EAAM,EAEV,IADA7K,KAAK0B,GAAkB,IAARpE,IACNhD,EAAIR,IAAe4N,GAAO,MAC7BpK,EAAQ,GAAa,IAARuN,GAAsC,IAAzB7K,KAAK0B,EAASpH,EAAI,KAC9CuQ,EAAM,GAER7K,KAAK0B,EAASpH,IAAOgD,EAAQoK,GAAQ,GAAKmD,EAAM,IAGlD,OAAOnJ,EAAS5H,CAClB,EAEAwC,EAAOU,UAAU8N,WAAa,SAAqBxN,EAAOoE,EAAQ5H,EAAYsN,GAG5E,GAFA9J,GAASA,EACToE,KAAoB,GACf0F,EAAU,CACb,MAAMwD,EAAQ9H,KAAKgG,IAAI,EAAI,EAAIhP,EAAc,GAE7C8M,EAAS5G,KAAM1C,EAAOoE,EAAQ5H,EAAY8Q,EAAQ,GAAIA,EACxD,CAEA,IAAItQ,EAAIR,EAAa,EACjB4N,EAAM,EACNmD,EAAM,EAEV,IADA7K,KAAK0B,EAASpH,GAAa,IAARgD,IACVhD,GAAK,IAAMoN,GAAO,MACrBpK,EAAQ,GAAa,IAARuN,GAAsC,IAAzB7K,KAAK0B,EAASpH,EAAI,KAC9CuQ,EAAM,GAER7K,KAAK0B,EAASpH,IAAOgD,EAAQoK,GAAQ,GAAKmD,EAAM,IAGlD,OAAOnJ,EAAS5H,CAClB,EAEAwC,EAAOU,UAAU+N,UAAY,SAAoBzN,EAAOoE,EAAQ0F,GAM9D,OALA9J,GAASA,EACToE,KAAoB,EACf0F,GAAUR,EAAS5G,KAAM1C,EAAOoE,EAAQ,EAAG,KAAO,KACnDpE,EAAQ,IAAGA,EAAQ,IAAOA,EAAQ,GACtC0C,KAAK0B,GAAmB,IAARpE,EACToE,EAAS,CAClB,EAEApF,EAAOU,UAAUgO,aAAe,SAAuB1N,EAAOoE,EAAQ0F,GAMpE,OALA9J,GAASA,EACToE,KAAoB,EACf0F,GAAUR,EAAS5G,KAAM1C,EAAOoE,EAAQ,EAAG,OAAS,OACzD1B,KAAK0B,GAAmB,IAARpE,EAChB0C,KAAK0B,EAAS,GAAMpE,IAAU,EACvBoE,EAAS,CAClB,EAEApF,EAAOU,UAAUiO,aAAe,SAAuB3N,EAAOoE,EAAQ0F,GAMpE,OALA9J,GAASA,EACToE,KAAoB,EACf0F,GAAUR,EAAS5G,KAAM1C,EAAOoE,EAAQ,EAAG,OAAS,OACzD1B,KAAK0B,GAAWpE,IAAU,EAC1B0C,KAAK0B,EAAS,GAAc,IAARpE,EACboE,EAAS,CAClB,EAEApF,EAAOU,UAAUkO,aAAe,SAAuB5N,EAAOoE,EAAQ0F,GAQpE,OAPA9J,GAASA,EACToE,KAAoB,EACf0F,GAAUR,EAAS5G,KAAM1C,EAAOoE,EAAQ,EAAG,YAAa,YAC7D1B,KAAK0B,GAAmB,IAARpE,EAChB0C,KAAK0B,EAAS,GAAMpE,IAAU,EAC9B0C,KAAK0B,EAAS,GAAMpE,IAAU,GAC9B0C,KAAK0B,EAAS,GAAMpE,IAAU,GACvBoE,EAAS,CAClB,EAEApF,EAAOU,UAAUmO,aAAe,SAAuB7N,EAAOoE,EAAQ0F,GASpE,OARA9J,GAASA,EACToE,KAAoB,EACf0F,GAAUR,EAAS5G,KAAM1C,EAAOoE,EAAQ,EAAG,YAAa,YACzDpE,EAAQ,IAAGA,EAAQ,WAAaA,EAAQ,GAC5C0C,KAAK0B,GAAWpE,IAAU,GAC1B0C,KAAK0B,EAAS,GAAMpE,IAAU,GAC9B0C,KAAK0B,EAAS,GAAMpE,IAAU,EAC9B0C,KAAK0B,EAAS,GAAc,IAARpE,EACboE,EAAS,CAClB,EAEApF,EAAOU,UAAUoO,gBAAkB7C,GAAmB,SAA0BjL,EAAOoE,EAAS,GAC9F,OAAOmF,EAAe7G,KAAM1C,EAAOoE,GAASqF,OAAO,sBAAuBA,OAAO,sBACnF,IAEAzK,EAAOU,UAAUqO,gBAAkB9C,GAAmB,SAA0BjL,EAAOoE,EAAS,GAC9F,OAAOsF,EAAehH,KAAM1C,EAAOoE,GAASqF,OAAO,sBAAuBA,OAAO,sBACnF,IAiBAzK,EAAOU,UAAUsO,aAAe,SAAuBhO,EAAOoE,EAAQ0F,GACpE,OAAOF,EAAWlH,KAAM1C,EAAOoE,GAAQ,EAAM0F,EAC/C,EAEA9K,EAAOU,UAAUuO,aAAe,SAAuBjO,EAAOoE,EAAQ0F,GACpE,OAAOF,EAAWlH,KAAM1C,EAAOoE,GAAQ,EAAO0F,EAChD,EAYA9K,EAAOU,UAAUwO,cAAgB,SAAwBlO,EAAOoE,EAAQ0F,GACtE,OAAOC,EAAYrH,KAAM1C,EAAOoE,GAAQ,EAAM0F,EAChD,EAEA9K,EAAOU,UAAUyO,cAAgB,SAAwBnO,EAAOoE,EAAQ0F,GACtE,OAAOC,EAAYrH,KAAM1C,EAAOoE,GAAQ,EAAO0F,EACjD,EAGA9K,EAAOU,UAAUkB,KAAO,SAAe2H,EAAQ6F,EAAa5P,EAAOC,GACjE,IAAKO,EAAOsC,SAASiH,GAAS,MAAM,IAAI1I,UAAU,+BAQlD,GAPKrB,IAAOA,EAAQ,GACfC,GAAe,IAARA,IAAWA,EAAMiE,KAAKhF,QAC9B0Q,GAAe7F,EAAO7K,SAAQ0Q,EAAc7F,EAAO7K,QAClD0Q,IAAaA,EAAc,GAC5B3P,EAAM,GAAKA,EAAMD,IAAOC,EAAMD,GAG9BC,IAAQD,EAAO,OAAO,EAC1B,GAAsB,IAAlB+J,EAAO7K,QAAgC,IAAhBgF,KAAKhF,OAAc,OAAO,EAGrD,GAAI0Q,EAAc,EAChB,MAAM,IAAI9O,WAAW,6BAEvB,GAAId,EAAQ,GAAKA,GAASkE,KAAKhF,OAAQ,MAAM,IAAI4B,WAAW,sBAC5D,GAAIb,EAAM,EAAG,MAAM,IAAIa,WAAW,2BAG9Bb,EAAMiE,KAAKhF,SAAQe,EAAMiE,KAAKhF,QAC9B6K,EAAO7K,OAAS0Q,EAAc3P,EAAMD,IACtCC,EAAM8J,EAAO7K,OAAS0Q,EAAc5P,GAGtC,MAAMnB,EAAMoB,EAAMD,EAalB,OAXIkE,OAAS6F,GAAqD,mBAApCpK,WAAWuB,UAAU2O,WAEjD3L,KAAK2L,WAAWD,EAAa5P,EAAOC,GAEpCN,WAAWuB,UAAUmI,IAAIrE,KACvB+E,EACA7F,KAAKuH,SAASzL,EAAOC,GACrB2P,GAIG/Q,CACT,EAMA2B,EAAOU,UAAUyH,KAAO,SAAe9D,EAAK7E,EAAOC,EAAKyB,GAEtD,GAAmB,iBAARmD,EAAkB,CAS3B,GARqB,iBAAV7E,GACT0B,EAAW1B,EACXA,EAAQ,EACRC,EAAMiE,KAAKhF,QACa,iBAARe,IAChByB,EAAWzB,EACXA,EAAMiE,KAAKhF,aAEI8D,IAAbtB,GAA8C,iBAAbA,EACnC,MAAM,IAAIL,UAAU,6BAEtB,GAAwB,iBAAbK,IAA0BlB,EAAOmB,WAAWD,GACrD,MAAM,IAAIL,UAAU,qBAAuBK,GAE7C,GAAmB,IAAfmD,EAAI3F,OAAc,CACpB,MAAMW,EAAOgF,EAAI9F,WAAW,IACV,SAAb2C,GAAuB7B,EAAO,KAClB,WAAb6B,KAEFmD,EAAMhF,EAEV,CACF,KAA0B,iBAARgF,EAChBA,GAAY,IACY,kBAARA,IAChBA,EAAMgB,OAAOhB,IAIf,GAAI7E,EAAQ,GAAKkE,KAAKhF,OAASc,GAASkE,KAAKhF,OAASe,EACpD,MAAM,IAAIa,WAAW,sBAGvB,GAAIb,GAAOD,EACT,OAAOkE,KAQT,IAAI1F,EACJ,GANAwB,KAAkB,EAClBC,OAAc+C,IAAR/C,EAAoBiE,KAAKhF,OAASe,IAAQ,EAE3C4E,IAAKA,EAAM,GAGG,iBAARA,EACT,IAAKrG,EAAIwB,EAAOxB,EAAIyB,IAAOzB,EACzB0F,KAAK1F,GAAKqG,MAEP,CACL,MAAM8F,EAAQnK,EAAOsC,SAAS+B,GAC1BA,EACArE,EAAOe,KAAKsD,EAAKnD,GACf7C,EAAM8L,EAAMzL,OAClB,GAAY,IAARL,EACF,MAAM,IAAIwC,UAAU,cAAgBwD,EAClC,qCAEJ,IAAKrG,EAAI,EAAGA,EAAIyB,EAAMD,IAASxB,EAC7B0F,KAAK1F,EAAIwB,GAAS2K,EAAMnM,EAAIK,EAEhC,CAEA,OAAOqF,IACT,EAMA,MAAM4L,EAAS,CAAC,EAChB,SAASC,EAAGC,EAAKC,EAAYC,GAC3BJ,EAAOE,GAAO,cAAwBE,EACpCC,cACEC,QAEApP,OAAOuH,eAAerE,KAAM,UAAW,CACrC1C,MAAOyO,EAAWpI,MAAM3D,KAAMN,WAC9ByM,UAAU,EACVC,cAAc,IAIhBpM,KAAKqM,KAAO,GAAGrM,KAAKqM,SAASP,KAG7B9L,KAAKsM,aAEEtM,KAAKqM,IACd,CAEI1Q,WACF,OAAOmQ,CACT,CAEInQ,SAAM2B,GACRR,OAAOuH,eAAerE,KAAM,OAAQ,CAClCoM,cAAc,EACd9H,YAAY,EACZhH,QACA6O,UAAU,GAEd,CAEA3M,WACE,MAAO,GAAGQ,KAAKqM,SAASP,OAAS9L,KAAKuM,SACxC,EAEJ,CA+BA,SAASC,EAAuB7L,GAC9B,IAAIqC,EAAM,GACN1I,EAAIqG,EAAI3F,OACZ,MAAMc,EAAmB,MAAX6E,EAAI,GAAa,EAAI,EACnC,KAAOrG,GAAKwB,EAAQ,EAAGxB,GAAK,EAC1B0I,EAAM,IAAIrC,EAAI/C,MAAMtD,EAAI,EAAGA,KAAK0I,IAElC,MAAO,GAAGrC,EAAI/C,MAAM,EAAGtD,KAAK0I,GAC9B,CAYA,SAAS8D,EAAYxJ,EAAOyF,EAAK2C,EAAK7I,EAAK6E,EAAQ5H,GACjD,GAAIwD,EAAQoI,GAAOpI,EAAQyF,EAAK,CAC9B,MAAMvC,EAAmB,iBAARuC,EAAmB,IAAM,GAC1C,IAAI0J,EAWJ,MARIA,EAFA3S,EAAa,EACH,IAARiJ,GAAaA,IAAQgE,OAAO,GACtB,OAAOvG,YAAYA,QAA2B,GAAlB1G,EAAa,KAAS0G,IAElD,SAASA,QAA2B,GAAlB1G,EAAa,GAAS,IAAI0G,iBACtB,GAAlB1G,EAAa,GAAS,IAAI0G,IAGhC,MAAMuC,IAAMvC,YAAYkF,IAAMlF,IAElC,IAAIoL,EAAOc,iBAAiB,QAASD,EAAOnP,EACpD,EAtBF,SAAsBT,EAAK6E,EAAQ5H,GACjC0O,EAAe9G,EAAQ,eACH5C,IAAhBjC,EAAI6E,SAAsD5C,IAA7BjC,EAAI6E,EAAS5H,IAC5C6O,EAAYjH,EAAQ7E,EAAI7B,QAAUlB,EAAa,GAEnD,CAkBE6S,CAAY9P,EAAK6E,EAAQ5H,EAC3B,CAEA,SAAS0O,EAAgBlL,EAAO+O,GAC9B,GAAqB,iBAAV/O,EACT,MAAM,IAAIsO,EAAOgB,qBAAqBP,EAAM,SAAU/O,EAE1D,CAEA,SAASqL,EAAarL,EAAOtC,EAAQgE,GACnC,GAAI8D,KAAK+J,MAAMvP,KAAWA,EAExB,MADAkL,EAAelL,EAAO0B,GAChB,IAAI4M,EAAOc,iBAAiB1N,GAAQ,SAAU,aAAc1B,GAGpE,GAAItC,EAAS,EACX,MAAM,IAAI4Q,EAAOkB,yBAGnB,MAAM,IAAIlB,EAAOc,iBAAiB1N,GAAQ,SACR,MAAMA,EAAO,EAAI,YAAYhE,IAC7BsC,EACpC,CAvFAuO,EAAE,4BACA,SAAUQ,GACR,OAAIA,EACK,GAAGA,gCAGL,gDACT,GAAGzP,YACLiP,EAAE,wBACA,SAAUQ,EAAM3O,GACd,MAAO,QAAQ2O,4DAA+D3O,GAChF,GAAGP,WACL0O,EAAE,oBACA,SAAUzJ,EAAKqK,EAAOM,GACpB,IAAIC,EAAM,iBAAiB5K,sBACvB6K,EAAWF,EAWf,OAVIpL,OAAOuL,UAAUH,IAAUjK,KAAKqK,IAAIJ,GAAS,GAAK,GACpDE,EAAWT,EAAsBrL,OAAO4L,IACd,iBAAVA,IAChBE,EAAW9L,OAAO4L,IACdA,EAAQhG,OAAO,IAAMA,OAAO,KAAOgG,IAAUhG,OAAO,IAAMA,OAAO,QACnEkG,EAAWT,EAAsBS,IAEnCA,GAAY,KAEdD,GAAO,eAAeP,eAAmBQ,IAClCD,CACT,GAAGpQ,YAiEL,MAAMwQ,EAAoB,oBAgB1B,SAASxN,EAAarC,EAAQkF,GAE5B,IAAIS,EADJT,EAAQA,GAAS4K,IAEjB,MAAMrS,EAASuC,EAAOvC,OACtB,IAAIsS,EAAgB,KACpB,MAAM7G,EAAQ,GAEd,IAAK,IAAInM,EAAI,EAAGA,EAAIU,IAAUV,EAAG,CAI/B,GAHA4I,EAAY3F,EAAO1C,WAAWP,GAG1B4I,EAAY,OAAUA,EAAY,MAAQ,CAE5C,IAAKoK,EAAe,CAElB,GAAIpK,EAAY,MAAQ,EAEjBT,GAAS,IAAM,GAAGgE,EAAMpL,KAAK,IAAM,IAAM,KAC9C,QACF,CAAO,GAAIf,EAAI,IAAMU,EAAQ,EAEtByH,GAAS,IAAM,GAAGgE,EAAMpL,KAAK,IAAM,IAAM,KAC9C,QACF,CAGAiS,EAAgBpK,EAEhB,QACF,CAGA,GAAIA,EAAY,MAAQ,EACjBT,GAAS,IAAM,GAAGgE,EAAMpL,KAAK,IAAM,IAAM,KAC9CiS,EAAgBpK,EAChB,QACF,CAGAA,EAAkE,OAArDoK,EAAgB,OAAU,GAAKpK,EAAY,MAC1D,MAAWoK,IAEJ7K,GAAS,IAAM,GAAGgE,EAAMpL,KAAK,IAAM,IAAM,KAMhD,GAHAiS,EAAgB,KAGZpK,EAAY,IAAM,CACpB,IAAKT,GAAS,GAAK,EAAG,MACtBgE,EAAMpL,KAAK6H,EACb,MAAO,GAAIA,EAAY,KAAO,CAC5B,IAAKT,GAAS,GAAK,EAAG,MACtBgE,EAAMpL,KACJ6H,GAAa,EAAM,IACP,GAAZA,EAAmB,IAEvB,MAAO,GAAIA,EAAY,MAAS,CAC9B,IAAKT,GAAS,GAAK,EAAG,MACtBgE,EAAMpL,KACJ6H,GAAa,GAAM,IACnBA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,IAEvB,KAAO,MAAIA,EAAY,SASrB,MAAM,IAAItH,MAAM,sBARhB,IAAK6G,GAAS,GAAK,EAAG,MACtBgE,EAAMpL,KACJ6H,GAAa,GAAO,IACpBA,GAAa,GAAM,GAAO,IAC1BA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,IAIvB,CACF,CAEA,OAAOuD,CACT,CA2BA,SAAS5G,EAAeuC,GACtB,OAAOlG,EAAO9B,YAxHhB,SAAsBgI,GAMpB,IAFAA,GAFAA,EAAMA,EAAImL,MAAM,KAAK,IAEX3H,OAAOD,QAAQyH,EAAmB,KAEpCpS,OAAS,EAAG,MAAO,GAE3B,KAAOoH,EAAIpH,OAAS,GAAM,GACxBoH,GAAY,IAEd,OAAOA,CACT,CA4G4BoL,CAAYpL,GACxC,CAEA,SAASF,EAAYuL,EAAKC,EAAKhM,EAAQ1G,GACrC,IAAIV,EACJ,IAAKA,EAAI,EAAGA,EAAIU,KACTV,EAAIoH,GAAUgM,EAAI1S,QAAYV,GAAKmT,EAAIzS,UADpBV,EAExBoT,EAAIpT,EAAIoH,GAAU+L,EAAInT,GAExB,OAAOA,CACT,CAKA,SAAS2D,EAAYU,EAAKK,GACxB,OAAOL,aAAeK,GACZ,MAAPL,GAAkC,MAAnBA,EAAIsN,aAA+C,MAAxBtN,EAAIsN,YAAYI,MACzD1N,EAAIsN,YAAYI,OAASrN,EAAKqN,IACpC,CACA,SAAStN,EAAaJ,GAEpB,OAAOA,GAAQA,CACjB,CAIA,MAAM6H,EAAsB,WAC1B,MAAMmH,EAAW,mBACXC,EAAQ,IAAIlS,MAAM,KACxB,IAAK,IAAIpB,EAAI,EAAGA,EAAI,KAAMA,EAAG,CAC3B,MAAMuT,EAAU,GAAJvT,EACZ,IAAK,IAAIkH,EAAI,EAAGA,EAAI,KAAMA,EACxBoM,EAAMC,EAAMrM,GAAKmM,EAASrT,GAAKqT,EAASnM,EAE5C,CACA,OAAOoM,CACR,CAV2B,GAa5B,SAASrF,EAAoBuF,GAC3B,MAAyB,oBAAX/G,OAAyBgH,EAAyBD,CAClE,CAEA,SAASC,IACP,MAAM,IAAInS,MAAM,uBAClB,C,iBCzjEA,IAAIoS,EAAe,EAAQ,MAEvBC,EAAc,EACdC,EAAc,EACdC,EAAoB,EAExBC,EAAOvU,QAAU,SAAUuE,GACzB,IAAIiQ,EAAQ,CAAC,EACTC,EAAS,IAAIN,EAAa5P,GAE9BiQ,EAAME,YAAcD,EAAOE,YAC3BH,EAAMI,SAAWH,EAAOI,cAExB,IAAIC,EAAQL,EAAOM,YAEnBP,EAAMQ,aAAuB,EAARF,GAGrBN,EAAMS,YAAsB,IAARH,GACpBN,EAAMU,eAAyB,EAARJ,GAEvB,IAAIK,GAAkB,EAARL,IAAgB,EAI9B,OAFAN,EAAMY,OAKR,SAAwBX,EAAQU,GAC9B,IAAKA,EAAQ,MAAO,CAACV,EAAOY,cAE5B,IAAI5U,EAAG6U,EACHF,EAAS,GACTG,EAAYd,EAAOM,YAAc,EAErC,GAAII,IAAWb,EAAmB,CAEhC,GAAIG,EAAOtT,OAASoU,GAAc,EAAG,MAAM,IAAIxT,MAAM,2BAGrD,IADAuT,EAAYb,EAAOtT,OAASoU,EACvB9U,EAAI,EAAGA,EAAI8U,EAAW9U,IACzB2U,EAAO5T,KAAKiT,EAAOY,WAAWC,IAEhC,OAAOF,CACT,CAEA,IAAII,EAAa,GAEjB,GAAIL,IAAWf,EACb,IAAK3T,EAAI,EAAGA,EAAI8U,EAAY,EAAG9U,IAAK,CAClC,IAAIqG,EACJwO,EAAY,EACZ,GAEEA,GADAxO,EAAM2N,EAAOM,kBAEE,MAARjO,GACT0O,EAAWhU,KAAK8T,EAClB,MACK,GAAIH,IAAWd,EAMpB,IAJAiB,EAAYb,EAAOE,YACnBa,EAAWhU,KAAK8T,GAGX7U,EAAI,EAAGA,EAAI8U,EAAY,EAAG9U,IAC7B6U,GAAab,EAAOgB,WACpBD,EAAWhU,KAAK8T,GAIpB,IAAK7U,EAAI,EAAGA,EAAI8U,EAAY,EAAG9U,IAC7B2U,EAAO5T,KAAKiT,EAAOY,WAAWG,EAAW/U,KAM3C,OAFA2U,EAAO5T,KAAKiT,EAAOY,cAEZD,CACT,CAvDiBM,CAAcjB,EAAQU,GAE9BX,CACT,C,iBC1BA,IAAImB,EAAO,EAAQ,MAEnB,SAASxB,EAAc5P,GACrB4B,KAAK5B,OAASA,EACd4B,KAAK0B,OAAS,CAChB,CAGAsM,EAAahR,UAAU0R,YAAc,WACnC,IAAIpR,EAAQ0C,KAAK5B,OAAO8K,YAAYlJ,KAAK0B,QAEzC,OADA1B,KAAK0B,QAAU,EACRpE,CACT,EAEA0Q,EAAahR,UAAU4R,UAAY,WACjC,IAAItR,EAAQ0C,KAAK5B,OAAO0J,UAAU9H,KAAK0B,QAEvC,OADA1B,KAAK0B,QAAU,EACRpE,CACT,EAGA0Q,EAAahR,UAAUwR,UAAY,WACjC,IAAIiB,EAAID,EAAKxP,KAAK5B,OAAQ4B,KAAK0B,QAE/B,OADA1B,KAAK0B,QAAU+N,EAAEzU,OACVyU,EAAEnS,KACX,EAEA0Q,EAAahR,UAAUsS,SAAW,WAChC,IAAIG,EAAID,EAAKxP,KAAK5B,OAAQ4B,KAAK0B,QAAQ,GAEvC,OADA1B,KAAK0B,QAAU+N,EAAEzU,OACVyU,EAAEnS,KACX,EAGA0Q,EAAahR,UAAUkS,WAAa,SAAUlU,GAC5C,IAAIoD,EAASpD,EACTgF,KAAK5B,OAAOR,MAAMoC,KAAK0B,OAAQ1B,KAAK0B,OAAS1G,GAC7CgF,KAAK5B,OAAOR,MAAMoC,KAAK0B,QAE3B,OADA1B,KAAK0B,QAAU1G,GAAUgF,KAAKhF,OACvBoD,CACT,EAGAtB,OAAOuH,eAAe2J,EAAahR,UAAW,SAAU,CACtDuH,IAAK,WAAc,OAAOvE,KAAK5B,OAAOpD,OAASgF,KAAK0B,MAAO,IAG7D0M,EAAOvU,QAAUmU,C,WC9CjBI,EAAOvU,QAAU,SAAUuE,EAAQtC,EAAO4T,GACxC5T,EAAQA,GAAS,EACjB,IAAK,IAAId,EAAS,EAAGA,GAAU,KACzBoD,EAAOtC,IAAUgH,KAAKgG,IAAI,EAAG,EAAI9N,IADLA,KAKlC,GAAIA,EAAS,EACX,MAAM,IAAIY,MAAM,2BAA6BZ,EAAS,IACpDoD,EAAOoB,SAAS,MAAO1D,EAAOA,EAAQd,IAE1C,GAAIc,EAAQd,EAASoD,EAAOpD,OAC1B,OAAO,KAET,IAAIV,EACAgD,EAAQc,EAAOtC,IAAU,GAAM,EAAId,GAAW,EAClD,IAAKV,EAAI,EAAGA,EAAIU,EAAQV,IAAK,CAC3B,GAAU,IAANA,GACEgD,GAASwF,KAAKgG,IAAI,EAAG,KAAW1K,EAAOtC,EAAQ,GAAK,EACtD,MAAO,CACLd,OAAQA,EACRsC,OAAQ,GAIdA,GAASwF,KAAKgG,IAAI,EAAG,GACrBxL,GAASc,EAAOtC,EAAQxB,EAC1B,CAIA,OAHIoV,IACFpS,GAASwF,KAAKgG,IAAI,EAAY,EAAT9N,EAAa,GAAK,GAElC,CACLA,OAAQA,EACRsC,MAAOA,EAEX,C,wBCbA,IAOIqS,EAPAC,EAAuB,iBAAZC,QAAuBA,QAAU,KAC5CC,EAAeF,GAAwB,mBAAZA,EAAEjM,MAC7BiM,EAAEjM,MACF,SAAsBkC,EAAQkK,EAAUC,GACxC,OAAOC,SAASjT,UAAU2G,MAAM7C,KAAK+E,EAAQkK,EAAUC,EACzD,EAIAL,EADEC,GAA0B,mBAAdA,EAAEM,QACCN,EAAEM,QACVpT,OAAOqT,sBACC,SAAwBtK,GACvC,OAAO/I,OAAOsT,oBAAoBvK,GAC/Bb,OAAOlI,OAAOqT,sBAAsBtK,GACzC,EAEiB,SAAwBA,GACvC,OAAO/I,OAAOsT,oBAAoBvK,EACpC,EAOF,IAAIwK,EAAc1O,OAAO2O,OAAS,SAAqBhT,GACrD,OAAOA,GAAUA,CACnB,EAEA,SAASiT,IACPA,EAAaC,KAAK1P,KAAKd,KACzB,CACAoO,EAAOvU,QAAU0W,EACjBnC,EAAOvU,QAAQ4W,KAwYf,SAAcC,EAASrE,GACrB,OAAO,IAAIsE,SAAQ,SAAUC,EAASC,GACpC,SAASC,EAAcC,GACrBL,EAAQM,eAAe3E,EAAM4E,GAC7BJ,EAAOE,EACT,CAEA,SAASE,IAC+B,mBAA3BP,EAAQM,gBACjBN,EAAQM,eAAe,QAASF,GAElCF,EAAQ,GAAGhT,MAAMkD,KAAKpB,WACxB,CAEAwR,EAA+BR,EAASrE,EAAM4E,EAAU,CAAER,MAAM,IACnD,UAATpE,GAMR,SAAuCqE,EAASS,EAASxC,GAC7B,mBAAf+B,EAAQU,IACjBF,EAA+BR,EAAS,QAASS,EAASxC,EAE9D,CATM0C,CAA8BX,EAASI,EAAe,CAAEL,MAAM,GAElE,GACF,EAxZAF,EAAaA,aAAeA,EAE5BA,EAAavT,UAAUsU,aAAUxS,EACjCyR,EAAavT,UAAUuU,aAAe,EACtChB,EAAavT,UAAUwU,mBAAgB1S,EAIvC,IAAI2S,EAAsB,GAE1B,SAASC,EAAcC,GACrB,GAAwB,mBAAbA,EACT,MAAM,IAAIxU,UAAU,0EAA4EwU,EAEpG,CAoCA,SAASC,EAAiBC,GACxB,YAA2B/S,IAAvB+S,EAAKL,cACAjB,EAAakB,oBACfI,EAAKL,aACd,CAkDA,SAASM,EAAajM,EAAQ7G,EAAM2S,EAAUI,GAC5C,IAAItR,EACAuR,EACAC,EA1HsBC,EAgJ1B,GApBAR,EAAcC,QAGC7S,KADfkT,EAASnM,EAAOyL,UAEdU,EAASnM,EAAOyL,QAAUxU,OAAOqV,OAAO,MACxCtM,EAAO0L,aAAe,SAIKzS,IAAvBkT,EAAOI,cACTvM,EAAOwM,KAAK,cAAerT,EACf2S,EAASA,SAAWA,EAASA,SAAWA,GAIpDK,EAASnM,EAAOyL,SAElBW,EAAWD,EAAOhT,SAGHF,IAAbmT,EAEFA,EAAWD,EAAOhT,GAAQ2S,IACxB9L,EAAO0L,kBAeT,GAbwB,mBAAbU,EAETA,EAAWD,EAAOhT,GAChB+S,EAAU,CAACJ,EAAUM,GAAY,CAACA,EAAUN,GAErCI,EACTE,EAASK,QAAQX,GAEjBM,EAAS5W,KAAKsW,IAIhBlR,EAAImR,EAAiB/L,IACb,GAAKoM,EAASjX,OAASyF,IAAMwR,EAASM,OAAQ,CACpDN,EAASM,QAAS,EAGlB,IAAIC,EAAI,IAAI5W,MAAM,+CACEqW,EAASjX,OAAS,IAAMmG,OAAOnC,GADjC,qEAIlBwT,EAAEnG,KAAO,8BACTmG,EAAE9B,QAAU7K,EACZ2M,EAAExT,KAAOA,EACTwT,EAAEC,MAAQR,EAASjX,OA7KGkX,EA8KHM,EA7KnBrO,SAAWA,QAAQuO,MAAMvO,QAAQuO,KAAKR,EA8KxC,CAGF,OAAOrM,CACT,CAaA,SAAS8M,IACP,IAAK3S,KAAK4S,MAGR,OAFA5S,KAAK6F,OAAOmL,eAAehR,KAAKhB,KAAMgB,KAAK6S,QAC3C7S,KAAK4S,OAAQ,EACY,IAArBlT,UAAU1E,OACLgF,KAAK2R,SAAS7Q,KAAKd,KAAK6F,QAC1B7F,KAAK2R,SAAShO,MAAM3D,KAAK6F,OAAQnG,UAE5C,CAEA,SAASoT,EAAUjN,EAAQ7G,EAAM2S,GAC/B,IAAIoB,EAAQ,CAAEH,OAAO,EAAOC,YAAQ/T,EAAW+G,OAAQA,EAAQ7G,KAAMA,EAAM2S,SAAUA,GACjFqB,EAAUL,EAAYM,KAAKF,GAG/B,OAFAC,EAAQrB,SAAWA,EACnBoB,EAAMF,OAASG,EACRA,CACT,CAyHA,SAASE,EAAWrN,EAAQ7G,EAAMmU,GAChC,IAAInB,EAASnM,EAAOyL,QAEpB,QAAexS,IAAXkT,EACF,MAAO,GAET,IAAIoB,EAAapB,EAAOhT,GACxB,YAAmBF,IAAfsU,EACK,GAEiB,mBAAfA,EACFD,EAAS,CAACC,EAAWzB,UAAYyB,GAAc,CAACA,GAElDD,EAsDT,SAAyB5Y,GAEvB,IADA,IAAI+L,EAAM,IAAI5K,MAAMnB,EAAIS,QACfV,EAAI,EAAGA,EAAIgM,EAAItL,SAAUV,EAChCgM,EAAIhM,GAAKC,EAAID,GAAGqX,UAAYpX,EAAID,GAElC,OAAOgM,CACT,CA3DI+M,CAAgBD,GAAcE,EAAWF,EAAYA,EAAWpY,OACpE,CAmBA,SAASuY,EAAcvU,GACrB,IAAIgT,EAAShS,KAAKsR,QAElB,QAAexS,IAAXkT,EAAsB,CACxB,IAAIoB,EAAapB,EAAOhT,GAExB,GAA0B,mBAAfoU,EACT,OAAO,EACF,QAAmBtU,IAAfsU,EACT,OAAOA,EAAWpY,MAEtB,CAEA,OAAO,CACT,CAMA,SAASsY,EAAW/Y,EAAKiG,GAEvB,IADA,IAAItC,EAAO,IAAIxC,MAAM8E,GACZlG,EAAI,EAAGA,EAAIkG,IAAKlG,EACvB4D,EAAK5D,GAAKC,EAAID,GAChB,OAAO4D,CACT,CA2CA,SAASgT,EAA+BR,EAASrE,EAAMsF,EAAUhD,GAC/D,GAA0B,mBAAf+B,EAAQU,GACbzC,EAAM8B,KACRC,EAAQD,KAAKpE,EAAMsF,GAEnBjB,EAAQU,GAAG/E,EAAMsF,OAEd,IAAwC,mBAA7BjB,EAAQ8C,iBAYxB,MAAM,IAAIrW,UAAU,6EAA+EuT,GATnGA,EAAQ8C,iBAAiBnH,GAAM,SAASoH,EAAaxW,GAG/C0R,EAAM8B,MACRC,EAAQgD,oBAAoBrH,EAAMoH,GAEpC9B,EAAS1U,EACX,GAGF,CACF,CAraAH,OAAOuH,eAAekM,EAAc,sBAAuB,CACzDjM,YAAY,EACZC,IAAK,WACH,OAAOkN,CACT,EACAtM,IAAK,SAASlI,GACZ,GAAmB,iBAARA,GAAoBA,EAAM,GAAKoT,EAAYpT,GACpD,MAAM,IAAIL,WAAW,kGAAoGK,EAAM,KAEjIwU,EAAsBxU,CACxB,IAGFsT,EAAaC,KAAO,gBAEG1R,IAAjBkB,KAAKsR,SACLtR,KAAKsR,UAAYxU,OAAO6W,eAAe3T,MAAMsR,UAC/CtR,KAAKsR,QAAUxU,OAAOqV,OAAO,MAC7BnS,KAAKuR,aAAe,GAGtBvR,KAAKwR,cAAgBxR,KAAKwR,oBAAiB1S,CAC7C,EAIAyR,EAAavT,UAAU4W,gBAAkB,SAAyBpT,GAChE,GAAiB,iBAANA,GAAkBA,EAAI,GAAK6P,EAAY7P,GAChD,MAAM,IAAI5D,WAAW,gFAAkF4D,EAAI,KAG7G,OADAR,KAAKwR,cAAgBhR,EACdR,IACT,EAQAuQ,EAAavT,UAAU6W,gBAAkB,WACvC,OAAOjC,EAAiB5R,KAC1B,EAEAuQ,EAAavT,UAAUqV,KAAO,SAAcrT,GAE1C,IADA,IAAIgR,EAAO,GACF1V,EAAI,EAAGA,EAAIoF,UAAU1E,OAAQV,IAAK0V,EAAK3U,KAAKqE,UAAUpF,IAC/D,IAAIwZ,EAAoB,UAAT9U,EAEXgT,EAAShS,KAAKsR,QAClB,QAAexS,IAAXkT,EACF8B,EAAWA,QAA4BhV,IAAjBkT,EAAO5N,WAC1B,IAAK0P,EACR,OAAO,EAGT,GAAIA,EAAS,CACX,IAAIC,EAGJ,GAFI/D,EAAKhV,OAAS,IAChB+Y,EAAK/D,EAAK,IACR+D,aAAcnY,MAGhB,MAAMmY,EAGR,IAAIhD,EAAM,IAAInV,MAAM,oBAAsBmY,EAAK,KAAOA,EAAGxH,QAAU,IAAM,KAEzE,MADAwE,EAAIiD,QAAUD,EACRhD,CACR,CAEA,IAAII,EAAUa,EAAOhT,GAErB,QAAgBF,IAAZqS,EACF,OAAO,EAET,GAAuB,mBAAZA,EACTrB,EAAaqB,EAASnR,KAAMgQ,OAE5B,KAAIrV,EAAMwW,EAAQnW,OACdiZ,EAAYX,EAAWnC,EAASxW,GACpC,IAASL,EAAI,EAAGA,EAAIK,IAAOL,EACzBwV,EAAamE,EAAU3Z,GAAI0F,KAAMgQ,EAHX,CAM1B,OAAO,CACT,EAgEAO,EAAavT,UAAUkX,YAAc,SAAqBlV,EAAM2S,GAC9D,OAAOG,EAAa9R,KAAMhB,EAAM2S,GAAU,EAC5C,EAEApB,EAAavT,UAAUoU,GAAKb,EAAavT,UAAUkX,YAEnD3D,EAAavT,UAAUmX,gBACnB,SAAyBnV,EAAM2S,GAC7B,OAAOG,EAAa9R,KAAMhB,EAAM2S,GAAU,EAC5C,EAoBJpB,EAAavT,UAAUyT,KAAO,SAAczR,EAAM2S,GAGhD,OAFAD,EAAcC,GACd3R,KAAKoR,GAAGpS,EAAM8T,EAAU9S,KAAMhB,EAAM2S,IAC7B3R,IACT,EAEAuQ,EAAavT,UAAUoX,oBACnB,SAA6BpV,EAAM2S,GAGjC,OAFAD,EAAcC,GACd3R,KAAKmU,gBAAgBnV,EAAM8T,EAAU9S,KAAMhB,EAAM2S,IAC1C3R,IACT,EAGJuQ,EAAavT,UAAUgU,eACnB,SAAwBhS,EAAM2S,GAC5B,IAAI1M,EAAM+M,EAAQqC,EAAU/Z,EAAGga,EAK/B,GAHA5C,EAAcC,QAGC7S,KADfkT,EAAShS,KAAKsR,SAEZ,OAAOtR,KAGT,QAAalB,KADbmG,EAAO+M,EAAOhT,IAEZ,OAAOgB,KAET,GAAIiF,IAAS0M,GAAY1M,EAAK0M,WAAaA,EACb,KAAtB3R,KAAKuR,aACTvR,KAAKsR,QAAUxU,OAAOqV,OAAO,cAEtBH,EAAOhT,GACVgT,EAAOhB,gBACThR,KAAKqS,KAAK,iBAAkBrT,EAAMiG,EAAK0M,UAAYA,SAElD,GAAoB,mBAAT1M,EAAqB,CAGrC,IAFAoP,GAAY,EAEP/Z,EAAI2K,EAAKjK,OAAS,EAAGV,GAAK,EAAGA,IAChC,GAAI2K,EAAK3K,KAAOqX,GAAY1M,EAAK3K,GAAGqX,WAAaA,EAAU,CACzD2C,EAAmBrP,EAAK3K,GAAGqX,SAC3B0C,EAAW/Z,EACX,KACF,CAGF,GAAI+Z,EAAW,EACb,OAAOrU,KAEQ,IAAbqU,EACFpP,EAAKsP,QAiIf,SAAmBtP,EAAMuP,GACvB,KAAOA,EAAQ,EAAIvP,EAAKjK,OAAQwZ,IAC9BvP,EAAKuP,GAASvP,EAAKuP,EAAQ,GAC7BvP,EAAKwP,KACP,CAnIUC,CAAUzP,EAAMoP,GAGE,IAAhBpP,EAAKjK,SACPgX,EAAOhT,GAAQiG,EAAK,SAEQnG,IAA1BkT,EAAOhB,gBACThR,KAAKqS,KAAK,iBAAkBrT,EAAMsV,GAAoB3C,EAC1D,CAEA,OAAO3R,IACT,EAEJuQ,EAAavT,UAAU2X,IAAMpE,EAAavT,UAAUgU,eAEpDT,EAAavT,UAAU4X,mBACnB,SAA4B5V,GAC1B,IAAIiV,EAAWjC,EAAQ1X,EAGvB,QAAewE,KADfkT,EAAShS,KAAKsR,SAEZ,OAAOtR,KAGT,QAA8BlB,IAA1BkT,EAAOhB,eAUT,OATyB,IAArBtR,UAAU1E,QACZgF,KAAKsR,QAAUxU,OAAOqV,OAAO,MAC7BnS,KAAKuR,aAAe,QACMzS,IAAjBkT,EAAOhT,KACY,KAAtBgB,KAAKuR,aACTvR,KAAKsR,QAAUxU,OAAOqV,OAAO,aAEtBH,EAAOhT,IAEXgB,KAIT,GAAyB,IAArBN,UAAU1E,OAAc,CAC1B,IACI6Z,EADAC,EAAOhY,OAAOgY,KAAK9C,GAEvB,IAAK1X,EAAI,EAAGA,EAAIwa,EAAK9Z,SAAUV,EAEjB,oBADZua,EAAMC,EAAKxa,KAEX0F,KAAK4U,mBAAmBC,GAK1B,OAHA7U,KAAK4U,mBAAmB,kBACxB5U,KAAKsR,QAAUxU,OAAOqV,OAAO,MAC7BnS,KAAKuR,aAAe,EACbvR,IACT,CAIA,GAAyB,mBAFzBiU,EAAYjC,EAAOhT,IAGjBgB,KAAKgR,eAAehS,EAAMiV,QACrB,QAAkBnV,IAAdmV,EAET,IAAK3Z,EAAI2Z,EAAUjZ,OAAS,EAAGV,GAAK,EAAGA,IACrC0F,KAAKgR,eAAehS,EAAMiV,EAAU3Z,IAIxC,OAAO0F,IACT,EAmBJuQ,EAAavT,UAAUiX,UAAY,SAAmBjV,GACpD,OAAOkU,EAAWlT,KAAMhB,GAAM,EAChC,EAEAuR,EAAavT,UAAU+X,aAAe,SAAsB/V,GAC1D,OAAOkU,EAAWlT,KAAMhB,GAAM,EAChC,EAEAuR,EAAagD,cAAgB,SAAS7C,EAAS1R,GAC7C,MAAqC,mBAA1B0R,EAAQ6C,cACV7C,EAAQ6C,cAAcvU,GAEtBuU,EAAczS,KAAK4P,EAAS1R,EAEvC,EAEAuR,EAAavT,UAAUuW,cAAgBA,EAiBvChD,EAAavT,UAAUgY,WAAa,WAClC,OAAOhV,KAAKuR,aAAe,EAAI5B,EAAe3P,KAAKsR,SAAW,EAChE,C,cCxaAzX,EAAQuH,KAAO,SAAUhD,EAAQsD,EAAQuT,EAAMC,EAAMC,GACnD,IAAIlR,EAAGxD,EACH2U,EAAiB,EAATD,EAAcD,EAAO,EAC7BG,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBE,GAAS,EACTjb,EAAI2a,EAAQE,EAAS,EAAK,EAC1BK,EAAIP,GAAQ,EAAI,EAChBQ,EAAIrX,EAAOsD,EAASpH,GAOxB,IALAA,GAAKkb,EAELvR,EAAIwR,GAAM,IAAOF,GAAU,EAC3BE,KAAQF,EACRA,GAASH,EACFG,EAAQ,EAAGtR,EAAS,IAAJA,EAAW7F,EAAOsD,EAASpH,GAAIA,GAAKkb,EAAGD,GAAS,GAKvE,IAHA9U,EAAIwD,GAAM,IAAOsR,GAAU,EAC3BtR,KAAQsR,EACRA,GAASL,EACFK,EAAQ,EAAG9U,EAAS,IAAJA,EAAWrC,EAAOsD,EAASpH,GAAIA,GAAKkb,EAAGD,GAAS,GAEvE,GAAU,IAANtR,EACFA,EAAI,EAAIqR,MACH,IAAIrR,IAAMoR,EACf,OAAO5U,EAAIiV,IAAsBrI,KAAdoI,GAAK,EAAI,GAE5BhV,GAAQqC,KAAKgG,IAAI,EAAGoM,GACpBjR,GAAQqR,CACV,CACA,OAAQG,GAAK,EAAI,GAAKhV,EAAIqC,KAAKgG,IAAI,EAAG7E,EAAIiR,EAC5C,EAEArb,EAAQ8D,MAAQ,SAAUS,EAAQd,EAAOoE,EAAQuT,EAAMC,EAAMC,GAC3D,IAAIlR,EAAGxD,EAAGiC,EACN0S,EAAiB,EAATD,EAAcD,EAAO,EAC7BG,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBM,EAAe,KAATT,EAAcpS,KAAKgG,IAAI,GAAI,IAAMhG,KAAKgG,IAAI,GAAI,IAAM,EAC1DxO,EAAI2a,EAAO,EAAKE,EAAS,EACzBK,EAAIP,EAAO,GAAK,EAChBQ,EAAInY,EAAQ,GAAgB,IAAVA,GAAe,EAAIA,EAAQ,EAAK,EAAI,EAmC1D,IAjCAA,EAAQwF,KAAKqK,IAAI7P,GAEbgT,MAAMhT,IAAUA,IAAU+P,KAC5B5M,EAAI6P,MAAMhT,GAAS,EAAI,EACvB2G,EAAIoR,IAEJpR,EAAInB,KAAK+J,MAAM/J,KAAK8S,IAAItY,GAASwF,KAAK+S,KAClCvY,GAASoF,EAAII,KAAKgG,IAAI,GAAI7E,IAAM,IAClCA,IACAvB,GAAK,IAGLpF,GADE2G,EAAIqR,GAAS,EACNK,EAAKjT,EAELiT,EAAK7S,KAAKgG,IAAI,EAAG,EAAIwM,IAEpB5S,GAAK,IACfuB,IACAvB,GAAK,GAGHuB,EAAIqR,GAASD,GACf5U,EAAI,EACJwD,EAAIoR,GACKpR,EAAIqR,GAAS,GACtB7U,GAAMnD,EAAQoF,EAAK,GAAKI,KAAKgG,IAAI,EAAGoM,GACpCjR,GAAQqR,IAER7U,EAAInD,EAAQwF,KAAKgG,IAAI,EAAGwM,EAAQ,GAAKxS,KAAKgG,IAAI,EAAGoM,GACjDjR,EAAI,IAIDiR,GAAQ,EAAG9W,EAAOsD,EAASpH,GAAS,IAAJmG,EAAUnG,GAAKkb,EAAG/U,GAAK,IAAKyU,GAAQ,GAI3E,IAFAjR,EAAKA,GAAKiR,EAAQzU,EAClB2U,GAAQF,EACDE,EAAO,EAAGhX,EAAOsD,EAASpH,GAAS,IAAJ2J,EAAU3J,GAAKkb,EAAGvR,GAAK,IAAKmR,GAAQ,GAE1EhX,EAAOsD,EAASpH,EAAIkb,IAAU,IAAJC,CAC5B,C,sBC5EC,SAAS5b,GAGR,IAWIic,EAXAC,EAAY,YACZC,EAAUD,WAAqBzZ,QAAWA,OAC1C2Z,EAAcF,WAAqBta,YAAeA,WAClDya,EAAeH,WAAqBjY,aAAgBA,YACpDqY,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAC7BlX,EAAUvD,MAAMuD,SA6RpB,SAAkB0B,GAChB,QAASA,GAAO,kBAAoB7D,OAAOE,UAAUwC,SAASsB,KAAKH,EACrE,EA9RIyV,EAAQ,WACRC,EAAQ,SAeZ,SAASC,EAAQjK,EAAMkK,EAAWC,GAChC,IAAIC,EAAOF,EAAY,EAAI,EACvBG,EAAOH,EAAY,EAAI,EACvBI,EAAOJ,EAAY,EAAI,EACvBK,EAAOL,EAAY,EAAI,EACvBM,EAAON,EAAY,EAAI,EACvBO,EAAOP,EAAY,EAAI,EACvBQ,EAAeR,EAAYS,EAAiBC,EAC5CC,EAAeX,EAAYY,EAAiBC,EAC5CrT,EAAQsT,EAAMra,UACdsa,EAAS,KAAOjL,EAChBkL,EAAW,IAAMD,EAyBrB,OAtBAvT,EAAM3F,YAAS,EACf2F,EAAMrC,OAAS,EACfqC,EAAMwT,IAAY,EAGlBxT,EAAMyT,SAAWA,EACjBzT,EAAMvE,SA8GN,SAAkBiY,GAChB,IAAIrZ,EAAS4B,KAAK5B,OACdsD,EAAS1B,KAAK0B,OACdgW,EAAOC,EAAUvZ,EAAQsD,EAAS+U,GAClCmB,EAAMD,EAAUvZ,EAAQsD,EAASgV,GACjCtU,EAAM,GACNyV,GAAQrB,GAAoB,WAAPkB,EACrBG,IACFH,GAAQA,EACRE,EAAMxB,EAAQwB,GAEhBH,EAAQA,GAAS,GACjB,OAAU,CACR,IAAIK,EAAOJ,EAAOD,EAASrB,EAAQwB,EAInC,GAHAF,EAAO5U,KAAK+J,MAAM6K,EAAOD,GACzBG,EAAM9U,KAAK+J,MAAMiL,EAAML,GACvBrV,GAAO0V,EAAML,GAAOjY,SAASiY,GAASrV,GACjCsV,IAASE,EAAK,KACrB,CACIC,IACFzV,EAAM,IAAMA,GAEd,OAAOA,CACT,EApIA2B,EAAMqC,OAASoR,EACfzT,EAAMgU,QAAUA,EAGZ/B,IAAQjS,EAAMiU,SAAWA,GAGzB/B,IAAYlS,EAAMkU,cAAgBA,GAGtCZ,EAAMC,GAcN,SAAiB5Y,GACf,SAAUA,IAAKA,EAAE6Y,GACnB,EAbA1d,EAAQwS,GAAQgL,EAETA,EAGP,SAASA,EAAMjZ,EAAQsD,EAAQpE,EAAO4a,GACpC,OAAMlY,gBAAgBqX,EAUxB,SAAcxF,EAAMzT,EAAQsD,EAAQpE,EAAO4a,GACrCjC,GAAcC,IACZ9X,aAAkB8X,IAAa9X,EAAS,IAAI6X,EAAW7X,IACvDd,aAAiB4Y,IAAa5Y,EAAQ,IAAI2Y,EAAW3Y,KAI3D,KAAKc,GAAWsD,GAAWpE,GAAUwY,GAGnC,YADAjE,EAAKzT,OAAS+Z,EAAShC,EAAM,IAK/B,IAAKiC,EAAcha,EAAQsD,GAAS,CAClC,IAAI2W,EAAWvC,GAAWpa,MAC1Bwc,EAASxW,EACTpE,EAAQc,EACRsD,EAAS,EACTtD,EAAU0X,IAAYE,EAAUA,EAAOxZ,MAAM,GAAK,IAAI6b,EAAS,EACjE,CAMA,GAJAxG,EAAKzT,OAASA,EACdyT,EAAKnQ,OAASA,GAAU,EAGpBqU,WAAqBzY,EAAO,OAG5B,iBAAoBA,EAgB1B,SAAoBc,EAAQsD,EAAQU,EAAK8V,GACvC,IAAIhT,EAAM,EACNvK,EAAMyH,EAAIpH,OACV0c,EAAO,EACPE,EAAM,EACK,MAAXxV,EAAI,IAAY8C,IACpB,IAAI2S,EAAO3S,EACX,KAAOA,EAAMvK,GAAK,CAChB,IAAI2d,EAAMvW,SAASK,EAAI8C,KAAQgT,GAC/B,KAAMI,GAAO,GAAI,MACjBV,EAAMA,EAAMM,EAASI,EACrBZ,EAAOA,EAAOQ,EAASpV,KAAK+J,MAAM+K,EAAMxB,GACxCwB,GAAOxB,CACT,CACIyB,IACFH,GAAQA,EACJE,EACFA,EAAMxB,EAAQwB,EAEdF,KAGJa,EAAWna,EAAQsD,EAAS+U,EAAMiB,GAClCa,EAAWna,EAAQsD,EAASgV,EAAMkB,EACpC,CAvCI/Z,CAAWO,EAAQsD,EAAQpE,EAAO4a,GAAU,IACnCE,EAAc9a,EAAO4a,GAC9BM,EAAUpa,EAAQsD,EAAQpE,EAAO4a,GACxB,iBAAoBA,GAC7BK,EAAWna,EAAQsD,EAAS+U,EAAMnZ,GAClCib,EAAWna,EAAQsD,EAASgV,EAAMwB,IACzB5a,EAAQ,EACjByZ,EAAa3Y,EAAQsD,EAAQpE,GACpBA,EAAQ,EACjB4Z,EAAa9Y,EAAQsD,EAAQpE,GAE7Bkb,EAAUpa,EAAQsD,EAAQyU,EAAM,EAEpC,CApDS3F,CAAKxQ,KAAM5B,EAAQsD,EAAQpE,EAAO4a,GADJ,IAAIb,EAAMjZ,EAAQsD,EAAQpE,EAAO4a,EAExE,CA+EA,SAASV,IACP,IAAIpZ,EAAS4B,KAAK5B,OACdsD,EAAS1B,KAAK0B,OACdgW,EAAOC,EAAUvZ,EAAQsD,EAAS+U,GAClCmB,EAAMD,EAAUvZ,EAAQsD,EAASgV,GAErC,OADKF,IAAUkB,GAAQ,GAChBA,EAAQA,EAAOtB,EAAQwB,EAAOA,CACvC,CA2BA,SAASW,EAAWna,EAAQsD,EAAQpE,GAClCc,EAAOsD,EAASoV,GAAgB,IAARxZ,EACxBA,IAAiB,EACjBc,EAAOsD,EAASmV,GAAgB,IAARvZ,EACxBA,IAAiB,EACjBc,EAAOsD,EAASkV,GAAgB,IAARtZ,EACxBA,IAAiB,EACjBc,EAAOsD,EAASiV,GAAgB,IAARrZ,CAC1B,CAEA,SAASqa,EAAUvZ,EAAQsD,GACzB,OAAQtD,EAAOsD,EAASiV,GAAQN,GAC7BjY,EAAOsD,EAASkV,IAAS,KACzBxY,EAAOsD,EAASmV,IAAS,GAC1BzY,EAAOsD,EAASoV,EACpB,CACF,CAEA,SAASiB,EAAQU,GACf,IAAIra,EAAS4B,KAAK5B,OACdsD,EAAS1B,KAAK0B,OAGlB,OAFAoU,EAAU,MAEE,IAAR2C,GAAiBxZ,EAAQb,GACD,IAAlBA,EAAOpD,OAAgBoD,EAASA,EAAOR,MAAM8D,EAAQA,EAAS,GAGjEyW,EAAS/Z,EAAQsD,EAC1B,CAEA,SAASsW,EAASS,GAChB,IAAIra,EAAS4B,KAAK5B,OACdsD,EAAS1B,KAAK0B,OAGlB,OAFAoU,EAAUE,GAEE,IAARyC,GAAiBzC,EAAOpX,SAASR,GACT,IAAlBA,EAAOpD,OAAgBoD,EAASA,EAAOR,MAAM8D,EAAQA,EAAS,GAKjEsU,EAAO3Y,KAAK4a,EAAcnX,KAAKd,KAAMyY,GAC9C,CAEA,SAASR,EAAcQ,GACrB,IAAIra,EAAS4B,KAAK5B,OACdsD,EAAS1B,KAAK0B,OACdgX,EAASta,EAAOA,OAIpB,GAHA0X,EAAUG,GAGE,IAARwC,IAAkBra,EAAOsD,QAAWgX,aAAkBxC,EACxD,OAA8B,IAAtBwC,EAAO5e,WAAoB4e,EAASA,EAAO9a,MAAM8D,EAAQA,EAAS,GAG5E,IAAIiX,EAAO,IAAI1C,EAAW,GAE1B,OADAuC,EAAUG,EAAM,EAAGva,EAAQsD,GACpBiX,EAAKva,MACd,CAEA,SAASga,EAAcha,EAAQsD,GAC7B,IAAI/G,EAAMyD,GAAUA,EAAOpD,OAE3B,OADA0G,GAAU,EACH/G,GAAQ+G,EAAS,GAAK/G,GAAS,iBAAoByD,EAAOsD,EACnE,CAEA,SAAS8W,EAAUI,EAASC,EAASC,EAAQC,GAC3CF,GAAW,EACXE,GAAU,EACV,IAAK,IAAIze,EAAI,EAAGA,EAAI,EAAGA,IACrBse,EAAQC,KAAgC,IAAnBC,EAAOC,IAEhC,CAEA,SAASZ,EAAS/Z,EAAQsD,GACxB,OAAOhG,MAAMsB,UAAUY,MAAMkD,KAAK1C,EAAQsD,EAAQA,EAAS,EAC7D,CAEA,SAASsV,EAAe5Y,EAAQsD,EAAQpE,GAEtC,IADA,IAAI4H,EAAMxD,EAAS,EACZwD,EAAMxD,GACXtD,IAAS8G,GAAe,IAAR5H,EAChBA,GAAS,GAEb,CAEA,SAAS6Z,EAAe/Y,EAAQsD,EAAQpE,GACtC,IAAI4H,EAAMxD,EAAS,EAEnB,IADApE,IACO4H,EAAMxD,GACXtD,IAAS8G,GAAmB,KAAT5H,EAAgB,IACnCA,GAAS,GAEb,CAEA,SAAS2Z,EAAe7Y,EAAQsD,EAAQpE,GAEtC,IADA,IAAIvB,EAAM2F,EAAS,EACZA,EAAS3F,GACdqC,EAAOsD,KAAoB,IAARpE,EACnBA,GAAS,GAEb,CAEA,SAAS8Z,EAAehZ,EAAQsD,EAAQpE,GACtC,IAAIvB,EAAM2F,EAAS,EAEnB,IADApE,IACOoE,EAAS3F,GACdqC,EAAOsD,KAAwB,KAATpE,EAAgB,IACtCA,GAAS,GAEb,CAhRWgZ,EAAQ,YAAY,GAAM,GAC3BA,EAAQ,WAAW,GAAM,GACxBA,EAAQ,YAAY,GAAO,GAC5BA,EAAQ,WAAW,GAAO,EAoRtC,CAzSC,CAyS4D,iBAArBzc,EAAQmf,SAAwBnf,EAAWmG,MAAQ,CAAC,E,4BChT5FlD,OAAOuH,eAAexK,EAAS,aAAc,CAAEyD,OAAO,G,8BCAtDR,OAAOuH,eAAexK,EAAS,aAAc,CAAEyD,OAAO,IACtD,IAII2b,EAJAC,EAAiB,EAAQ,MACzBC,EAAU,EAAQ,MAClBC,EAAQ,EAAQ,MAChBC,EAAW,EAAQ,OAEvB,SAAWJ,GACPA,EAAMA,EAAiB,UAAI,GAAK,YAChCA,EAAMA,EAAkB,WAAI,GAAK,aACjCA,EAAMA,EAAqB,cAAI,GAAK,eACvC,CAJD,CAIGA,IAAUA,EAAQ,CAAC,IACtB,IAAIK,EAA6B,WAC7B,SAASA,IACLtZ,KAAKuZ,QAAU,IAAIJ,EAAQ7c,OAAO,GAClC0D,KAAKwZ,WAAa,GAClBxZ,KAAKyZ,OAASR,EAAMS,UACpB1Z,KAAK2Z,QAAU,EACf3Z,KAAK4Z,OAAS,EACd5Z,KAAK6Z,QAAUR,EAASS,SACxB9Z,KAAK+Z,QAAU,EACnB,CAuNA,OAtNAT,EAAYtc,UAAUgd,OAAS,SAAUC,GACrCja,KAAKka,UAAUD,GACf,IAAIE,EAAOna,KAAK+Z,QAEhB,OADA/Z,KAAK+Z,QAAU,GACRI,CACX,EACAb,EAAYtc,UAAUkd,UAAY,SAAUD,GAGxC,IADAja,KAAKuZ,QAAUH,EAAMpU,OAAO,CAAChF,KAAKuZ,QAAS,IAAIJ,EAAQ7c,OAAO2d,KACvDja,KAAK2Z,QAAU3Z,KAAKuZ,QAAQve,SAE3BgF,KAAKyZ,SAAWR,EAAMS,WAAc1Z,KAAKoa,aAGzCpa,KAAKyZ,SAAWR,EAAMoB,YAAera,KAAKsa,cAG1Cta,KAAKyZ,SAAWR,EAAMsB,eAAkBva,KAAKwa,iBAIzD,EACAlB,EAAYtc,UAAUyd,cAAgB,SAAUC,GAC5C,OAAO1a,KAAK6Z,QAAQa,IAAW,CAC3BrO,KAAM,UACNsO,OAAQ,EACR3b,KAAM,UACN4b,YAAa,UAErB,EAKAtB,EAAYtc,UAAUod,QAAU,WAE5B,GAAIpa,KAAK2Z,SAAW3Z,KAAKuZ,QAAQve,OAC7B,OAAO,EAGX,IAAI6f,GAAM,EAAI1B,EAAQ2B,UAAU9a,KAAKuZ,QAASvZ,KAAK2Z,SAEnD,GAAW,MAAPkB,EACA,OAAO,EAOX,IACIH,EADM1a,KAAKuZ,QAAQ3b,MAAMoC,KAAK2Z,QAAS3Z,KAAK2Z,QAAUkB,EAAI7f,QAC7C+f,QAAO,SAAUC,EAAGvL,EAAGnV,EAAGC,GAAO,OAAOygB,EAAIvL,EAAI3M,KAAKgG,IAAI,GAAI,GAAKvO,EAAIS,OAAS,EAAIV,GAAK,GAAG,GACxG2gB,EAASjb,KAAKya,cAAcC,GAC5BQ,EAAS,CACTC,QAAST,EAAOlb,SAAS,IACzByb,OAAQA,EACRjc,KAAMic,EAAOjc,KACbqN,KAAM4O,EAAO5O,KACbsO,MAAOM,EAAON,MACdS,SAAUpb,KAAK4Z,OACfyB,OAAQrb,KAAK4Z,OAASiB,EAAI7f,OAC1BsgB,UAAWtb,KAAK4Z,OAASiB,EAAI7f,OAC7BugB,QAAS,KACTC,UAAW,KACXC,QAAS,KACTC,SAAU,KACVxc,KAAM,MAUV,OAPAc,KAAKwZ,WAAWne,KAAK6f,GAGrBlb,KAAK2Z,SAAWkB,EAAI7f,OACpBgF,KAAK4Z,QAAUiB,EAAI7f,OAEnBgF,KAAKyZ,OAASR,EAAMoB,YACb,CACX,EAKAf,EAAYtc,UAAUsd,SAAW,WAE7B,GAAIta,KAAK2Z,SAAW3Z,KAAKuZ,QAAQve,OAC7B,OAAO,EAGX,IAAIsE,GAAO,EAAI6Z,EAAQ2B,UAAU9a,KAAKuZ,QAASvZ,KAAK2Z,SAEpD,GAAY,MAARra,EACA,OAAO,EAIX,IAAI4b,EAASlb,KAAKwZ,WAAWxZ,KAAKwZ,WAAWxe,OAAS,GAmBtD,OAlBAkgB,EAAOK,QAAUL,EAAOI,UAAYhc,EAAKtE,OACzCkgB,EAAOM,UAAYN,EAAOK,QAC1BL,EAAOQ,SAAWpc,EAAKhC,OACH,IAAhBgC,EAAKhC,OAEL4d,EAAOO,SAAW,EACE,MAAhBP,EAAOlc,OACPkc,EAAOS,aAAc,IAIzBT,EAAOO,QAAUP,EAAOK,QAAUjc,EAAKhC,MAI3C0C,KAAK2Z,SAAWra,EAAKtE,OACrBgF,KAAK4Z,QAAUta,EAAKtE,OACpBgF,KAAKyZ,OAASR,EAAMsB,eACb,CACX,EAIAjB,EAAYtc,UAAUwd,YAAc,WAChC,IAAIU,EAASlb,KAAKwZ,WAAWxZ,KAAKwZ,WAAWxe,OAAS,GAEtD,GAAoB,MAAhBkgB,EAAOlc,KAAc,CAMrB,GAJAkc,EAAOU,OAAQ,EACf5b,KAAK+Z,QAAQ1e,KAAK6f,GAClBlb,KAAKyZ,OAASR,EAAMS,UAEI,IAApBwB,EAAOQ,SAAgB,CAEvB,IAAIG,EAAM/e,OAAOgf,OAAO,CAAC,EAAGZ,EAAQ,CAAEU,OAAO,IAC7C5b,KAAK+Z,QAAQ1e,KAAKwgB,GAClB7b,KAAKwZ,WAAW/E,KACpB,CACA,OAAO,CACX,CAEA,GAAIzU,KAAKuZ,QAAQve,OAASgF,KAAK2Z,QAAUuB,EAAOQ,SAC5C,OAAO,EAGX,IAAIxc,EAAOc,KAAKuZ,QAAQ3b,MAAMoC,KAAK2Z,QAAS3Z,KAAK2Z,QAAUuB,EAAOQ,UAKlE,OAHA1b,KAAKuZ,QAAUvZ,KAAKuZ,QAAQ3b,MAAMoC,KAAK2Z,QAAUuB,EAAOQ,UACxDR,EAAOhc,KAAOA,EAENgc,EAAOlc,MAGX,IAAK,IACDkc,EAAO5d,MAAQ4B,EAAK0I,WAAW,EAAG1I,EAAKlE,QACvC,MAEJ,IAAK,IACDkgB,EAAO5d,MAAQ4B,EAAK6J,UAAU,EAAG7J,EAAKlE,QACtC,MAEJ,IAAK,IACDkgB,EAAO5d,MAA4B,IAApB4d,EAAOQ,SAAiBxc,EAAKsK,YAAY,GAChC,IAApB0R,EAAOQ,SAAiBxc,EAAKwK,aAAa,IACrCvF,QAAQuO,KAAK,eAAe1N,OAAOkW,EAAOQ,SAAU,iCAAkC,GAC/F,MAEJ,IAAK,IACDR,EAAO5d,MAAQ4B,EAAKM,SAAS,SAC7B,MAEJ,IAAK,IACD0b,EAAO5d,MAAQ4B,EAAKM,SAAS,QAC7B,MAEJ,IAAK,IACD0b,EAAO5d,MAAQ4B,EACf,MAEJ,IAAK,IACDgc,EAAO5d,OAAQ,EAAI6b,EAAQ4C,yBAAyB,IAAI7C,EAAe8C,QAAQ9c,GAAMsY,YAM7F,GAAqB,OAAjB0D,EAAO5d,MACP,MAAM,IAAI1B,MAAM,oBAAsBsf,EAAOlc,MAUjD,IARAgB,KAAK+Z,QAAQ1e,KAAK6f,GAGlBlb,KAAK4Z,QAAUsB,EAAOQ,SAEtB1b,KAAKyZ,OAASR,EAAMS,UACpB1Z,KAAK2Z,QAAU,EACf3Z,KAAKwZ,WAAW/E,MACTzU,KAAKwZ,WAAWxe,OAAS,GAAG,CAC/B,IAAIihB,EAASjc,KAAKwZ,WAAWxZ,KAAKwZ,WAAWxe,OAAS,GAEtD,GAAIihB,EAAOR,QAAU,EAEjB,OADAzb,KAAKwZ,WAAW/E,OACT,EAGX,GAAIzU,KAAK4Z,OAASqC,EAAOR,QACrB,MAGJ,GAAoB,MAAhBQ,EAAOjd,KACP,MAAM,IAAIpD,MAAM,wCAEhBigB,EAAM/e,OAAOgf,OAAO,CAAC,EAAGG,EAAQ,CAAEL,OAAO,IAC7C5b,KAAK+Z,QAAQ1e,KAAKwgB,GAClB7b,KAAKwZ,WAAW/E,KACpB,CACA,OAAO,CACX,EACO6E,CACX,CAjOgC,GAkOhCzf,EAAA,QAAkByf,C,8BC7OlBxc,OAAOuH,eAAexK,EAAS,aAAc,CAAEyD,OAAO,IACtD,IAAI8b,EAAQ,EAAQ,MAChBD,EAAU,EAAQ,MAClBE,EAAW,EAAQ,MACnB6C,EAA6B,WAC7B,SAASA,IACLlc,KAAK6Z,QAAUR,EAASS,SACxB9Z,KAAKmc,SAAW,GAChBnc,KAAKoc,OAAS,EAClB,CAiHA,OAhHAF,EAAYlf,UAAUqf,OAAS,SAAUC,GACrC,IAAIC,EAAQvc,KACZ,OAAOoZ,EAAMpU,OAAOsX,EAAKvB,QAAO,SAAUyB,EAAKX,GAC3C,OAAOW,EAAIxX,OAAOuX,EAAMjhB,YAAYugB,GACxC,GAAG,KAAKzd,MACZ,EACA8d,EAAYlf,UAAU1B,YAAc,SAAUugB,GAc1C,MAbiB,MAAbA,EAAI7c,KACC6c,EAAID,MAIL5b,KAAKyc,OAAOZ,GAHZ7b,KAAK0c,SAASb,IAQlBA,EAAI3c,KAAOia,EAAQ7c,OAAOe,KAAKwe,EAAI3c,MACnCc,KAAK2c,SAASd,IAEX7b,KAAK4c,OAChB,EACAV,EAAYlf,UAAU4f,MAAQ,WAC1B,IAAItW,EAAMtG,KAAKmc,SAEf,OADAnc,KAAKmc,SAAW,GACT7V,CACX,EACA4V,EAAYlf,UAAUyd,cAAgB,SAAUoC,GAE5C,IADA,IAAIC,EAAUhgB,OAAOgY,KAAK9U,KAAK6Z,SAASkD,IAAIpb,QACnCrH,EAAI,EAAGA,EAAIwiB,EAAQ9hB,OAAQV,IAAK,CACrC,IAAIogB,EAASoC,EAAQxiB,GACrB,GAAI0F,KAAK6Z,QAAQa,GAAQrO,OAASwQ,EAC9B,OAAO,IAAI1D,EAAQ7c,OAAOoe,EAAOlb,SAAS,IAAK,MAEvD,CACA,OAAO,IACX,EACA0c,EAAYlf,UAAU2f,SAAW,SAAUd,GACvC,IAAIgB,EAAUhB,EAAIxP,KACd2Q,EAAQhd,KAAKya,cAAcoC,GAC3BI,EAAUpB,EAAI3c,KAClB,GAAa,MAAT8d,EACA,MAAM,IAAIphB,MAAM,6BAA+BihB,GAEnD,IAAI3d,EAAOka,EAAM8D,UAAUF,EAAOC,GAI9Bjd,KAAKoc,OAAOphB,OAAS,EACVgF,KAAKoc,OAAOpc,KAAKoc,OAAOphB,OAAS,GACvCmiB,SAAS9hB,KAAK,CACf2hB,MAAOA,EACPnB,IAAKA,EACLsB,SAAU,GACVje,KAAMA,IAIdc,KAAKmc,SAAWnc,KAAKmc,SAASnX,OAAO9F,EAEzC,EACAgd,EAAYlf,UAAU0f,SAAW,SAAUb,GACvC,IAAIgB,EAAUhB,EAAIxP,KACd2Q,EAAQhd,KAAKya,cAAcoC,GAC/B,GAAa,MAATG,EACA,MAAM,IAAIphB,MAAM,6BAA+BihB,GAKnD,GAAIhB,EAAIF,YAAR,CACI,IAAIzc,EAAOka,EAAM8D,UAAUF,EAAO,IAAI7D,EAAQ7c,OAAO,GAAIuf,EAAIF,aAC7D3b,KAAKmc,SAAWnc,KAAKmc,SAASnX,OAAO9F,EAEzC,KAJA,CAKA,IAAI2b,EAAM,CACNmC,MAAOA,EACPnB,IAAKA,EACLsB,SAAU,GACVje,KAAM,MAENc,KAAKoc,OAAOphB,OAAS,GACrBgF,KAAKoc,OAAOpc,KAAKoc,OAAOphB,OAAS,GAAGmiB,SAAS9hB,KAAKwf,GAEtD7a,KAAKoc,OAAO/gB,KAAKwf,EAVjB,CAWJ,EACAqB,EAAYlf,UAAUyf,OAAS,SAAUZ,GACvBA,EAAIxP,KAAlB,IACIwO,EAAM7a,KAAKoc,OAAO3H,MACtB,GAAW,MAAPoG,EACA,MAAM,IAAIjf,MAAM,4BAEpB,GAAIif,EAAIgB,IAAIxP,OAASwP,EAAIxP,KACrB,MAAM,IAAIzQ,MAAM,4BAEpB,IAAIwhB,EAAsBvC,EAAIsC,SAASpC,QAAO,SAAUyB,EAAKa,GACzD,GAAmB,OAAfA,EAAMne,KACN,MAAM,IAAItD,MAAM,4BAEpB,OAAO4gB,EAAIxX,OAAOqY,EAAMne,KAC5B,GAAG,IACCoe,EAAqBlE,EAAMpU,OAAOoY,GACjB,MAAjBvC,EAAIgB,IAAI7c,KACR6b,EAAI3b,KAAOka,EAAM8D,UAAUrC,EAAImC,MAAOM,EAAoBzC,EAAIgB,IAAIF,aAGlEd,EAAI3b,KAAOka,EAAM8D,UAAUrC,EAAImC,MAAOM,GAEtCtd,KAAKoc,OAAOphB,OAAS,IACrBgF,KAAKmc,SAAWnc,KAAKmc,SAASnX,OAAO6V,EAAI3b,MAEjD,EACOgd,CACX,CAvHgC,GAwHhCriB,EAAA,QAAkBqiB,C,oCC5HlB,IACQqB,EADJC,EAAaxd,MAAQA,KAAKwd,YACtBD,EAAgB,SAAU/H,EAAG9W,GAI7B,OAHA6e,EAAgBzgB,OAAOC,gBAClB,CAAE0gB,UAAW,cAAgB/hB,OAAS,SAAU8Z,EAAG9W,GAAK8W,EAAEiI,UAAY/e,CAAG,GAC1E,SAAU8W,EAAG9W,GAAK,IAAK,IAAIgf,KAAKhf,EAAO5B,OAAOE,UAAU2gB,eAAe7c,KAAKpC,EAAGgf,KAAIlI,EAAEkI,GAAKhf,EAAEgf,GAAI,EAC7FH,EAAc/H,EAAG9W,EAC5B,EACO,SAAU8W,EAAG9W,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIvB,UAAU,uBAAyBgE,OAAOzC,GAAK,iCAE7D,SAASkf,IAAO5d,KAAKiM,YAAcuJ,CAAG,CADtC+H,EAAc/H,EAAG9W,GAEjB8W,EAAExY,UAAkB,OAAN0B,EAAa5B,OAAOqV,OAAOzT,IAAMkf,EAAG5gB,UAAY0B,EAAE1B,UAAW,IAAI4gB,EACnF,GAEJ9gB,OAAOuH,eAAexK,EAAS,aAAc,CAAEyD,OAAO,IACtD,IAAIugB,EAAW,EAAQ,MACnBzE,EAAQ,EAAQ,MAMhB0E,EAA4B,SAAUC,GAEtC,SAASD,IACL,IAAIvB,EAAQwB,EAAOjd,KAAKd,OAASA,KA4BjC,OA3BAuc,EAAMyB,SAAW,GACjBzB,EAAM0B,mBAAoB,EAC1B1B,EAAM2B,gBAAiB,EACvB3B,EAAM4B,OAAS,GACf5B,EAAMjQ,MAAQ,GACdiQ,EAAM6B,cAAgB,EACtB7B,EAAM8B,mCAAqC,CAAC,EAAG,GAC/C9B,EAAM+B,mCAAqC,CAAC,EAAG,GAC/C/B,EAAMgC,oBAAsB,EAC5BhC,EAAMiC,oBAAsB,EAC5BjC,EAAMkC,cAAgB,IACtBlC,EAAMmC,aAAe,EACrBnC,EAAMoC,UAAY,GAClBpC,EAAMqC,KAAO,GACbrC,EAAMsC,qBAAsB,EAC5BtC,EAAMuC,qBAAsB,EAC5BvC,EAAMwC,aAAe,CAAEC,aAAc,EAAGC,WAAY,EAAGC,gBAAiB,KAAMC,WAAY,MAC1F5C,EAAM6C,WAAa,GACnB7C,EAAM8C,qBAAuB,GAC7B9C,EAAM+C,gBAAkB,GACxB/C,EAAMgD,UAAY,CAAEvgB,KAAM,WAC1Bud,EAAMiD,OAAQ,EACdjD,EAAMkD,SAAU,EAChBlD,EAAMmD,gCAAiC,EACvCnD,EAAMoD,UAAW,EACjBpD,EAAMqD,kBAAmB,EACzBrD,EAAMsD,uBAAwB,EACvBtD,CACX,CAySA,OAxUAiB,EAAUM,EAAYC,GAmCtBD,EAAW9gB,UAAU8iB,KAAO,WAIxB,IAHA9f,KAAKwf,OAAQ,EACbxf,KAAK+f,oBAEE/f,KAAKsM,MAAMtR,QACdgF,KAAKsM,MAAMmI,MACPzU,KAAKyf,SACLtb,QAAQ6b,WAIZhgB,KAAKyf,SAAWzf,KAAKie,mBAAqBje,KAAKge,UAC/C7Z,QAAQ6b,UAEhB,EAIAlC,EAAW9gB,UAAU+iB,kBAAoB,WACrC,IAAI7gB,EAAOc,KAAKme,OAEhB,GADAne,KAAKme,OAAS,GACTne,KAAKke,eAcL,CACD,IAAKle,KAAK4f,iBACN,OAEJ,IAAInR,EAAWzO,KAAKue,oBAChB0B,EAAWjgB,KAAKigB,SAChBxB,EAAgBze,KAAKye,cACzBze,KAAKqS,KAAK,UAAW,CAAE5D,SAAUA,EAAUvP,KAAMA,IACjDc,KAAKqS,KAAK,WAAY,CAAEoM,cAAeA,EAAewB,SAAUA,GACpE,KAvB0B,CACtBjgB,KAAKke,gBAAiB,EACtBle,KAAK2e,UAAYzf,EACjB,IAAIghB,EAAgBlgB,KAAKof,WAAWvjB,QAAQ,GACxCskB,EAAgBngB,KAAKof,WAAWvjB,QAAQ,GAK5C,GAJAmE,KAAKuf,UAAYW,GAAiB,GAAKC,GAAiB,EAAI,CAAEnhB,KAAM,OAAQuP,YAAa2R,GACnFA,GAAiB,EAAI,CAAElhB,KAAM,QAASuP,YAAa2R,GAC/CC,GAAiB,EAAI,CAAEnhB,KAAM,QAASuP,YAAa4R,GAC/C,CAAEnhB,KAAM,YACjBgB,KAAK4f,iBACN,OAEJ5f,KAAKqS,KAAK,WAAY,CAAEnT,KAAMA,EAAMwf,aAAc1e,KAAK0e,cAC3D,CAWJ,EACAZ,EAAW9gB,UAAUoE,KAAO,SAAUya,GAClC,IAAIU,EAAQvc,KACRogB,GAAO,EACX,IAAIpgB,KAAKwf,MAAT,CAIA,GAAiB,MAAb3D,EAAI7c,KAEJ,GAAI6c,EAAID,MACJ5b,KAAKsM,MAAMmI,UAEV,CACD,IAAI4L,EAAWrgB,KAAKsM,MAAMtM,KAAKsM,MAAMtR,OAAS,GAC9C,GAAgB,MAAZqlB,GAAoBA,EAAS1F,OAASkB,EAAIlB,MAAO,CAEjD3a,KAAKsM,MAAMmI,MAGPzU,KAAKyf,SACLtb,QAAQ6b,WAEZK,EAAS5E,QAAUI,EAAIJ,QACvB4E,EAAS3E,SAAWG,EAAIJ,QAAU4E,EAAS7E,UAC3C6E,EAAS1E,aAAc,EACvB,IAAIX,EAAIle,OAAOgf,OAAO,CAAC,EAAGuE,EAAU,CAAEhU,KAAMgU,EAAShU,KAAMrN,KAAMqhB,EAASrhB,KAAM4c,OAAO,IACvF5b,KAAKme,OAAO9iB,KAAK2f,EACrB,CACAhb,KAAKsM,MAAMjR,KAAKwgB,EACpB,CAEJ,GAAiB,MAAbA,EAAI7c,MAA4B,WAAZ6c,EAAIxP,KACE,GAAtBrM,KAAKoe,eACLja,QAAQuO,KAAK,+BAEjB1S,KAAKoe,cAAgBvC,EAAIL,UACzBxb,KAAKqS,KAAK,iBAAkBrS,KAAKoe,oBAEhC,GAAiB,MAAbvC,EAAI7c,MAA6B,gBAAb6c,EAAIxP,KAAwB,CACrD,IAAIiU,EAAKlH,EAAMmH,UAAU1E,EAAI3c,MAAOuP,EAAW6R,EAAG7R,SAAUF,EAAc+R,EAAG/R,YAAaiS,EAAWF,EAAGrR,OACxG,GAAqC,IAAjCjP,KAAKof,WAAW7Q,GAAoB,CACpC,IAAKvO,KAAK6e,sBACN7e,KAAK6e,qBAAsB,EACC,SAAxB7e,KAAKuf,UAAUvgB,MAA2C,UAAxBgB,KAAKuf,UAAUvgB,MAAkB,CACnE,IAAIyhB,EAAUzgB,KAAKue,oBAAsB9P,EACzCzO,KAAK4e,KAAKvjB,KAAK,CAAEqlB,SAAUnS,EAAaoS,mBAAoB3gB,KAAKwe,oBAAqBiC,QAASA,IAC/FzgB,KAAKqS,KAAK,WAAY,CAAEqO,SAAUnS,EAAaoS,mBAAoB3gB,KAAKwe,oBAAqBiC,QAASzgB,KAAKue,sBAC3Gve,KAAKqS,KAAK,MAAO,CAAEqO,SAAUnS,EAAaoS,mBAAoB3gB,KAAKwe,oBAAqBiC,QAASA,GACrG,CAEJzgB,KAAKqe,mCAAqC,CAACre,KAAKqe,mCAAmC,GAAI5P,EAC3F,MACK,GAAqC,IAAjCzO,KAAKof,WAAW7Q,GAAoB,CACzC,IAAKvO,KAAK8e,sBACN9e,KAAK8e,qBAAsB,EACC,UAAxB9e,KAAKuf,UAAUvgB,MAAkB,CAC7ByhB,EAAUzgB,KAAKue,oBAAsB9P,EACzCzO,KAAK4e,KAAKvjB,KAAK,CAAEqlB,SAAUnS,EAAaoS,mBAAoB3gB,KAAKwe,oBAAqBiC,QAASA,IAC/FzgB,KAAKqS,KAAK,WAAY,CAAEqO,SAAUnS,EAAaoS,mBAAoB3gB,KAAKwe,oBAAqBiC,QAASzgB,KAAKue,sBAC3Gve,KAAKqS,KAAK,MAAO,CAAEqO,SAAUnS,EAAaoS,mBAAoB3gB,KAAKwe,oBAAqBiC,QAASA,GACrG,CAEJzgB,KAAKse,mCAAqC,CAACte,KAAKse,mCAAmC,GAAI7P,EAC3F,CACIzO,KAAK0f,gCACL1f,KAAKqS,KAAK,WAAY,CAAEoM,cAAeze,KAAKye,cAAewB,SAAUjgB,KAAKigB,WAE1EjgB,KAAK2f,UACLa,EAASI,SAAQ,SAAUC,GAEvB,GAAkB,WADFA,EAAMjjB,MAAM,EAAG,GAAG4B,SAAS,OAC3C,CAIA,IAAIshB,EAAU1H,EAAM2H,6BAA6BF,GAC7CG,EAAO,IAAIC,KAAK,CAACH,GAAU,CAAE9hB,KAAM,eACnCkiB,EAAc3E,EAAM0D,SACxB1D,EAAMlK,KAAK,OAAQ,CAAE6O,YAAaA,EAAaF,KAAMA,GALrD,CAMJ,GAER,KACsB,MAAbnF,EAAI7c,MAA6B,YAAb6c,EAAIxP,OAAoC,IAAdwP,EAAID,OACvD5b,KAAK6e,qBAAsB,EAC3B7e,KAAK8e,qBAAsB,EAC3B9e,KAAK+f,oBACL/f,KAAKqS,KAAK,cAAewJ,EAAIT,UAC7Bpb,KAAKwe,oBAAsB3C,EAAIT,UAEb,MAAbS,EAAI7c,MAA6B,aAAb6c,EAAIxP,KAC7BrM,KAAKue,oBAAsB1C,EAAIve,MAEb,MAAbue,EAAI7c,MAA6B,kBAAb6c,EAAIxP,KAC7BrM,KAAKye,cAAgB5C,EAAIve,MAEP,MAAbue,EAAI7c,MAA6B,eAAb6c,EAAIxP,KACzBwP,EAAID,OACJ5b,KAAKof,WAAWpf,KAAK+e,aAAaC,aAAehf,KAAK+e,aAAaE,UACnEjf,KAAKqf,qBAAqBrf,KAAK+e,aAAaC,aAAehf,KAAK+e,aAAaG,gBAC7Elf,KAAKsf,gBAAgBtf,KAAK+e,aAAaC,aAAehf,KAAK+e,aAAaI,YAGxEnf,KAAK+e,aAAe,CAAEC,aAAc,EAAGC,WAAY,EAAGC,gBAAiB,KAAMC,WAAY,MAG3E,MAAbtD,EAAI7c,MAA6B,cAAb6c,EAAIxP,KAC7BrM,KAAK+e,aAAaE,UAAYpD,EAAIve,MAEhB,MAAbue,EAAI7c,MAA6B,gBAAb6c,EAAIxP,KAC7BrM,KAAK+e,aAAaC,YAAcnD,EAAIve,MAElB,MAAbue,EAAI7c,MAA6B,eAAb6c,EAAIxP,KAC7BrM,KAAK+e,aAAaI,WAAatD,EAAIve,MAEjB,MAAbue,EAAI7c,MAA6B,oBAAb6c,EAAIxP,KAKzBrM,KAAK6f,uBACL1b,QAAQuO,KAAK,wCACb0N,GAAO,GAGPpgB,KAAK+e,aAAaG,gBAAkBrD,EAAIve,MAG1B,YAAbue,EAAIxP,MACTlI,QAAQuO,KAAKmJ,IAEZ7b,KAAKke,gBAAkBrC,EAAIJ,QAAU,IACtCzb,KAAK0e,aAAe7C,EAAIJ,SAEvB2E,GACDpgB,KAAKme,OAAO9iB,KAAKwgB,GAEjB7b,KAAKyf,SACLzf,KAAKmhB,IAAItF,EAlIb,CAoIJ,EACA/e,OAAOuH,eAAeyZ,EAAW9gB,UAAW,WAAY,CAWpDuH,IAAK,WACD,GAA4B,YAAxBvE,KAAKuf,UAAUvgB,KAEf,OADAmF,QAAQuO,KAAK,4BACN,EAGX,IAAI0O,EAAkB,EAElBC,EAAa,EACbC,EAAe,EACfC,EAAmBvhB,KAAKqf,qBAAqBrf,KAAKuf,UAAUhR,aAChE,GAAgC,iBAArBgT,EACPH,EAAkBG,OAKlB,GAA4B,SAAxBvhB,KAAKuf,UAAUvgB,KACXgB,KAAKse,mCAAmC,GAAKte,KAAKqe,mCAAmC,IAErF+C,GAAmBphB,KAAKse,mCAAmC,GAAKte,KAAKse,mCAAmC,IAAMte,KAAKye,cAG9F,iBADjB+C,EAAQxhB,KAAKsf,gBAAgBtf,KAAKof,WAAWvjB,QAAQ,OAErDwlB,EAAaG,GAGjBF,EAAethB,KAAKse,mCAAmC,KAIvD8C,GAAmBphB,KAAKqe,mCAAmC,GAAKre,KAAKqe,mCAAmC,IAAMre,KAAKye,cAG9F,iBADjB+C,EAAQxhB,KAAKsf,gBAAgBtf,KAAKof,WAAWvjB,QAAQ,OAErDwlB,EAAaG,GAGjBF,EAAethB,KAAKqe,mCAAmC,SAG1D,GAA4B,UAAxBre,KAAKuf,UAAUvgB,KAAkB,CACtCoiB,GAAmBphB,KAAKqe,mCAAmC,GAAKre,KAAKqe,mCAAmC,IAAMre,KAAKye,cAE9F,iBADjB+C,EAAQxhB,KAAKsf,gBAAgBtf,KAAKuf,UAAUhR,gBAE5C8S,EAAaG,GAEjBF,EAAethB,KAAKqe,mCAAmC,EAC3D,MACK,GAA4B,UAAxBre,KAAKuf,UAAUvgB,KAAkB,CAEtC,IAAIwiB,EADJJ,GAAmBphB,KAAKse,mCAAmC,GAAKte,KAAKse,mCAAmC,IAAMte,KAAKye,cAE9F,iBADjB+C,EAAQxhB,KAAKsf,gBAAgBtf,KAAKuf,UAAUhR,gBAE5C8S,EAAaG,GAEjBF,EAAethB,KAAKse,mCAAmC,EAC3D,CAGJ,IACI2B,IADqBjgB,KAAKue,oBAAsB+C,GAAgBthB,KAAKye,cAAiB2C,EAAkBC,GAC1ErhB,KAAKye,cACvC,OAAO3b,KAAK+J,MAAMoT,EACtB,EACA3b,YAAY,EACZ8H,cAAc,IAElB0R,EAAW9gB,UAAUkX,YAAc,SAAUuN,EAAO9P,GAChD,OAAOoM,EAAO/gB,UAAUkX,YAAYpT,KAAKd,KAAMyhB,EAAO9P,EAC1D,EACAmM,EAAW9gB,UAAUmkB,IAAM,SAAUtF,GAC5B7b,KAAKie,oBACNje,KAAKie,mBAAoB,EACrBje,KAAKyf,SAAWzf,KAAKge,UACrB7Z,QAAQud,eAAe1hB,KAAKge,WAGnB,MAAbnC,EAAI7c,KACA6c,EAAID,MACJzX,QAAQ6b,WAGR7b,QAAQwd,MAAM9F,EAAIxP,KAAO,IAAMwP,EAAIT,UAGrB,MAAbS,EAAI7c,KAMTmF,QAAQyR,IAAIiG,EAAIxP,KAAMwP,EAAI7c,MAI1BmF,QAAQyR,IAAIiG,EAAIxP,KAAMwP,EAAIT,SAAUS,EAAI7c,KAAM6c,EAAIve,MAE1D,EACOwgB,CACX,CA1U+B,CA0U7BD,EAAStN,cACX1W,EAAA,QAAkBikB,C,4BCjWlBhhB,OAAOuH,eAAexK,EAAS,aAAc,CAAEyD,OAAO,IACtDzD,EAAQigB,cAAW,EACnBjgB,EAAQigB,SAAW,CACf,IAAM,CACFzN,KAAM,iBACNsO,MAAO,EACP3b,KAAM,IACN4iB,UAAU,EACVC,OAAQ,EACRC,MAAM,EACNlH,YAAa,iEAEjB,IAAM,CACFvO,KAAM,YACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRpV,MAAO,QACPmO,YAAa,oIAEjB,IAAM,CACFvO,KAAM,aACN2V,QAAS,gBACTrH,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACNlH,YAAa,mDAEjB,IAAM,CACFvO,KAAM,UACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRjH,YAAa,uEAEjB,IAAM,CACFvO,KAAM,cACN2V,QAAS,mBACTrH,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACR,QAAW,EACXpV,MAAO,MACPmO,YAAa,uHAEjB,IAAM,CACFvO,KAAM,qBACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXH,UAAU,EACVC,OAAQ,EACRC,MAAM,EACNrV,MAAO,QACPmO,YAAa,uQAEjB,IAAM,CACFvO,KAAM,mBACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACNlH,YAAa,mDAEjB,IAAM,CACFvO,KAAM,iBACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNlH,YAAa,qEAEjB,IAAM,CACFvO,KAAM,aACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACNlH,YAAa,sCAEjB,IAAM,CACFvO,KAAM,gBACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXD,MAAM,EACNlH,YAAa,gEAEjB,IAAM,CACFvO,KAAM,oBACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACN,QAAW,EACXrV,MAAO,MACPmO,YAAa,uIAEjB,MAAQ,CACJvO,KAAM,kBACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACN,QAAW,EAGXlH,YAAa,oHAEjB,MAAQ,CACJvO,KAAM,sBACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNlH,YAAa,4KAEjB,MAAQ,CACJvO,KAAM,UACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACX,QAAW,WACXF,OAAQ,EACRjH,YAAa,gIAEjB,MAAQ,CACJvO,KAAM,qBACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACX,QAAW,EACXF,OAAQ,EACRjH,YAAa,gFAEjB,MAAQ,CACJvO,KAAM,cACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACX,QAAW,EACXF,OAAQ,EACRjH,YAAa,uDAEjB,MAAQ,CACJvO,KAAM,iBACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACX,QAAW,EACXF,OAAQ,EACRjH,YAAa,+DAEjB,MAAQ,CACJvO,KAAM,gBACNsO,MAAO,EACP3b,KAAM,IACN4iB,UAAU,EACVC,OAAQ,EACRC,MAAM,EACNG,SAAU,GACVrH,YAAa,+FAEjB,MAAQ,CACJvO,KAAM,UACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRjH,YAAa,oEAEjB,MAAQ,CACJvO,KAAM,aACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACN,QAAW,EACXrV,MAAO,MACPmO,YAAa,iGAEjB,MAAQ,CACJvO,KAAM,YACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNlH,YAAa,4GAEjB,MAAQ,CACJvO,KAAM,YACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNlH,YAAa,6BAEjB,MAAQ,CACJvO,KAAM,WACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRpV,MAAO,MACPmO,YAAa,qDAEjB,MAAQ,CACJvO,KAAM,qBACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACN,QAAW,EACXrV,MAAO,MACPmO,YAAa,0NAEjB,MAAQ,CACJvO,KAAM,eACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACNlH,YAAa,0BAEjB,MAAQ,CACJvO,KAAM,oBACNsO,MAAO,EACP3b,KAAM,IACNkjB,MAAM,EACNtH,YAAa,uBAEjB,MAAQ,CACJvO,KAAM,kBACNsO,MAAO,EACP3b,KAAM,IACNkjB,MAAM,EACNtH,YAAa,uBAEjB,MAAQ,CACJvO,KAAM,eACNsO,MAAO,EACP3b,KAAM,IACN8iB,MAAM,EACNlH,YAAa,iFAEjB,MAAQ,CACJvO,KAAM,uBACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACN,QAAW,EACXlH,YAAa,wRAEjB,MAAQ,CACJvO,KAAM,uBACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACN,QAAW,EACXrV,MAAO,QAEPmO,YAAa,mTAEjB,MAAQ,CACJvO,KAAM,sBACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACN,QAAW,EAEXlH,YAAa,kHAEjB,MAAQ,CACJvO,KAAM,qBACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNlH,YAAa,sOAEjB,MAAQ,CACJvO,KAAM,oBACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNlH,YAAa,2HAEjB,MAAQ,CACJvO,KAAM,iBACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACR,QAAW,EACXpV,MAAO,QACPmO,YAAa,iDAEjB,MAAQ,CACJvO,KAAM,mBACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACNlH,YAAa,sFAEjB,MAAQ,CACJvO,KAAM,aACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRjH,YAAa,2CAEjB,MAAQ,CACJvO,KAAM,eACN2V,QAAS,sBACTrH,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNlH,YAAa,iKAEjB,MAAQ,CACJvO,KAAM,kBACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXH,UAAU,EACVC,OAAQ,EACRC,MAAM,EACNlH,YAAa,qEAEjB,MAAQ,CACJvO,KAAM,WACN2V,QAAS,gBACTrH,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRpV,MAAO,QACPmO,YAAa,yCAEjB,MAAQ,CACJvO,KAAM,gBACNsO,MAAO,EACP3b,KAAM,IACN4iB,UAAU,EACVE,MAAM,EACNlH,YAAa,mEAEjB,MAAQ,CACJvO,KAAM,iBACNsO,MAAO,EACP3b,KAAM,IACN4iB,UAAU,EACVC,OAAQ,EACRC,MAAM,EACNlH,YAAa,yDAEjB,MAAQ,CACJvO,KAAM,qBACN2V,QAAS,wBACTrH,MAAO,EACP3b,KAAM,IACN4iB,UAAU,EACVC,OAAQ,EACRC,MAAM,EACNlH,YAAa,qDAEjB,MAAQ,CACJvO,KAAM,kBACN2V,QAAS,qBACTrH,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACNlH,YAAa,oJAEjB,MAAQ,CACJvO,KAAM,mBACNsO,MAAO,EACP3b,KAAM,IACN4iB,UAAU,EACVC,OAAQ,EACRC,MAAM,EACNlH,YAAa,iFAEjB,MAAQ,CACJvO,KAAM,kBACN2V,QAAS,qBACTrH,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACNlH,YAAa,yMAEjB,MAAQ,CACJvO,KAAM,cACN2V,QAAS,iBACTrH,MAAO,EACP3b,KAAM,IACN4iB,UAAU,EACVC,OAAQ,EACRC,MAAM,EACNlH,YAAa,qDAEjB,MAAQ,CACJvO,KAAM,qBACN2V,QAAS,wBACTrH,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACN,QAAW,EACXlH,YAAa,6MAEjB,MAAQ,CACJvO,KAAM,MACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXH,UAAU,EACVC,OAAQ,EACRC,MAAM,EACNlH,YAAa,4DAEjB,MAAQ,CACJvO,KAAM,kBACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNlH,YAAa,6CAEjB,MAAQ,CACJvO,KAAM,iBACN2V,QAAS,sBACTrH,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNrV,MAAO,QACPmO,YAAa,wDAEjB,QAAU,CACNvO,KAAM,YACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRjH,YAAa,iDAEjB,UAAY,CACRvO,KAAM,UACNsO,MAAO,IACP3b,KAAM,IACN+iB,WAAW,EACXH,UAAU,EACVC,OAAQ,EACRjH,YAAa,qHAEjB,MAAQ,CACJvO,KAAM,cACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACN,QAAW,MACXlH,YAAa,gFAEjB,MAAQ,CACJvO,KAAM,UACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACNlH,YAAa,mDAEjB,MAAQ,CACJvO,KAAM,YACN2V,QAAS,YACTrH,MAAO,EACP,UAAa,IACb3b,KAAM,IACN+iB,WAAW,EACXH,UAAU,EACVC,OAAQ,EACRC,MAAM,EACNlH,YAAa,kDAEjB,MAAQ,CACJvO,KAAM,mBACNsO,MAAO,EACP3b,KAAM,IACN4iB,UAAU,EACVC,OAAQ,EACRC,MAAM,EACN,QAAW,EACXlH,YAAa,wJAEjB,MAAQ,CACJvO,KAAM,gBACNsO,MAAO,EACP3b,KAAM,IACN4iB,UAAU,EACVC,OAAQ,EACRC,MAAM,EACN,QAAW,EACXlH,YAAa,8IAEjB,MAAQ,CACJvO,KAAM,gBACNsO,MAAO,EACP3b,KAAM,IACN4iB,UAAU,EACVC,OAAQ,EACRC,MAAM,EACN,QAAW,EACXlH,YAAa,mJAEjB,MAAQ,CACJvO,KAAM,cACNsO,MAAO,EACP3b,KAAM,IACN4iB,UAAU,EACVC,OAAQ,EACRC,MAAM,EACN,QAAW,EACXlH,YAAa,0IAEjB,MAAQ,CACJvO,KAAM,aACN2V,QAAS,gBACTrH,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACN,OAAU,gBACVlH,YAAa,2IAEjB,MAAQ,CACJvO,KAAM,kBACN2V,QAAS,qBACTrH,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACN,QAAW,GACXlH,YAAa,0EAEjB,MAAQ,CACJvO,KAAM,UACN2V,QAAS,aACTrH,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACNlH,YAAa,4GAEjB,UAAY,CACRvO,KAAM,OACNsO,MAAO,EACP3b,KAAM,IACN4iB,UAAU,EACVC,OAAQ,EACRC,MAAM,EACNlH,YAAa,oGAEjB,MAAQ,CACJvO,KAAM,qBACN2V,QAAS,wBACTrH,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNlH,YAAa,oIAEjB,MAAQ,CACJvO,KAAM,cACN2V,QAAS,iBACTrH,MAAO,EACP3b,KAAM,IACN4iB,UAAU,EACVC,OAAQ,EACRC,MAAM,EACNlH,YAAa,oFAEjB,MAAQ,CACJvO,KAAM,eACN2V,QAAS,kBACTrH,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXH,UAAU,EACVC,OAAQ,EACRC,MAAM,EACN,QAAW,MACXlH,YAAa,mFAEjB,IAAM,CACFvO,KAAM,eACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNlH,YAAa,iGAEjB,MAAQ,CACJvO,KAAM,uBACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNlH,YAAa,oHAEjB,MAAQ,CACJvO,KAAM,2BACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNrV,MAAO,QACPmO,YAAa,wEAEjB,MAAQ,CACJvO,KAAM,oBACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNrV,MAAO,KACPwV,SAAU,GACVrH,YAAa,+IAEjB,MAAQ,CACJvO,KAAM,aACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACNrV,MAAO,QACPmO,YAAa,wCAEjB,IAAM,CACFvO,KAAM,cACNsO,MAAO,EACP,UAAa,IACb3b,KAAM,IACN+iB,WAAW,EACXH,UAAU,EACVC,OAAQ,EACRC,MAAM,EACNlH,YAAa,mFAEjB,MAAQ,CACJvO,KAAM,qBACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACN,QAAW,EACXrV,MAAO,MACPmO,YAAa,yGAEjB,MAAQ,CACJvO,KAAM,qBACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACN,QAAW,EACXrV,MAAO,MACPmO,YAAa,+EAEjB,MAAQ,CACJvO,KAAM,oBACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACN,QAAW,EACXrV,MAAO,MACPmO,YAAa,wIAEjB,MAAQ,CACJvO,KAAM,aACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNrV,MAAO,QACPmO,YAAa,4EAEjB,MAAQ,CACJvO,KAAM,eACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXH,UAAU,EACVC,OAAQ,EACRC,MAAM,EACNlH,YAAa,qDAEjB,UAAY,CACRvO,KAAM,WACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNlH,YAAa,uHAEjB,MAAQ,CACJvO,KAAM,UACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACNrV,MAAO,QACPmO,YAAa,2DAEjB,MAAQ,CACJvO,KAAM,WACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACNlH,YAAa,yBAEjB,MAAQ,CACJvO,KAAM,WACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACNlH,YAAa,kCAEjB,MAAQ,CACJvO,KAAM,kBACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNlH,YAAa,gDAEjB,MAAQ,CACJvO,KAAM,eACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXH,UAAU,EACVC,OAAQ,EACRC,MAAM,EACNlH,YAAa,qBAEjB,UAAY,CACRvO,KAAM,cACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNlH,YAAa,2BAEjB,IAAM,CACFvO,KAAM,mBACNsO,MAAO,EACP3b,KAAM,IACN8iB,MAAM,EACN,QAAW,EACXlH,YAAa,0IAEjB,MAAQ,CACJvO,KAAM,eACNsO,MAAO,EACP3b,KAAM,IACN8iB,MAAM,EACN,QAAW,EACXrV,MAAO,QACPmO,YAAa,uEAEjB,IAAM,CACFvO,KAAM,eACNsO,MAAO,EACP3b,KAAM,IACN4iB,UAAU,EACVC,OAAQ,EACRC,MAAM,EACNlH,YAAa,2DAEjB,IAAM,CACFvO,KAAM,gBACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACN,QAAW,EACXlH,YAAa,mIAEjB,IAAM,CACFvO,KAAM,cACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACNlH,YAAa,sLAEjB,IAAM,CACFvO,KAAM,sBACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACNlH,YAAa,gJACbvG,SAAU,mBAEd,IAAM,CACFhI,KAAM,qBACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRjH,YAAa,6DACbvG,SAAU,WAEd,IAAM,CACFhI,KAAM,WACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRpV,MAAO,QACPmO,YAAa,4CAEjB,IAAM,CACFvO,KAAM,oBACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXH,UAAU,EACVC,OAAQ,EACRjH,YAAa,0EAEjB,IAAM,CACFvO,KAAM,UACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRjH,YAAa,0DAEjB,IAAM,CACFvO,KAAM,WACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXH,UAAU,EACVC,OAAQ,EACRjH,YAAa,qEAEjB,UAAY,CACRvO,KAAM,OACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRjH,YAAa,kIAEjB,MAAQ,CACJvO,KAAM,qBACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACN,QAAW,EAEXlH,YAAa,sKAEjB,MAAQ,CACJvO,KAAM,iBACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACN,QAAW,EAEXlH,YAAa,oJAEjB,MAAQ,CACJvO,KAAM,kBACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNlH,YAAa,+DAEjB,MAAQ,CACJvO,KAAM,mBACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNlH,YAAa,8CAEjB,MAAQ,CACJvO,KAAM,kBACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNlH,YAAa,+FAEjB,MAAQ,CACJvO,KAAM,iBACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACN,QAAW,EAEXlH,YAAa,0LAEjB,MAAQ,CACJvO,KAAM,mBACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNlH,YAAa,oFAEjB,IAAM,CACFvO,KAAM,6BACNsO,MAAO,EACP3b,KAAM,IACNkjB,MAAM,EACND,SAAU,GACVrH,YAAa,gCAEjB,IAAM,CACFvO,KAAM,sBACNsO,MAAO,EACP3b,KAAM,IACNkjB,MAAM,EACNtH,YAAa,gCAEjB,IAAM,CACFvO,KAAM,iBACNsO,MAAO,EACP3b,KAAM,IACNkjB,MAAM,EACN,QAAW,EACXtH,YAAa,gCAEjB,IAAM,CACFvO,KAAM,uBACNsO,MAAO,EACP3b,KAAM,IACNkjB,MAAM,EACND,SAAU,GACVrH,YAAa,gCAEjB,IAAM,CACFvO,KAAM,gBACNsO,MAAO,EACP3b,KAAM,IACNkjB,MAAM,EACNtH,YAAa,gCAEjB,IAAM,CACFvO,KAAM,eACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXH,UAAU,EACVC,OAAQ,EACRC,MAAM,EACNrV,MAAO,QACPmO,YAAa,sFAEjB,IAAM,CACFvO,KAAM,kBACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNlH,YAAa,iGAEjB,IAAM,CACFvO,KAAM,iBACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACNlH,YAAa,2FAEjB,IAAM,CACFvO,KAAM,gBACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACNrV,MAAO,QACPmO,YAAa,4DAEjB,IAAM,CACFvO,KAAM,aACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXH,UAAU,EACVC,OAAQ,EACRC,MAAM,EACNlH,YAAa,iFAEjB,IAAM,CACFvO,KAAM,qBACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNlH,YAAa,gGAEjB,IAAM,CACFvO,KAAM,iBACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNlH,YAAa,+IAEjB,MAAQ,CACJvO,KAAM,mBACN2V,QAAS,gBACTrH,MAAO,EACP3b,KAAM,IACN8iB,MAAM,EACNlH,YAAa,yEAEjB,IAAM,CACFvO,KAAM,WACN2V,QAAS,gBACTrH,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACR,QAAW,EACXpV,MAAO,QACPmO,YAAa,qCAEjB,MAAQ,CACJvO,KAAM,0BACN2V,QAAS,0BACTrH,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACR,QAAW,qBACXpV,MAAO,MACPmO,YAAa,mEAEjB,IAAM,CACFvO,KAAM,oBACN2V,QAAS,oBACTrH,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACR,QAAW,IACXpV,MAAO,MACPmO,YAAa,6BAEjB,IAAM,CACFvO,KAAM,QACN2V,QAAS,aACTrH,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRjH,YAAa,mBAEjB,QAAU,CACNvO,KAAM,YACN2V,QAAS,iBACTrH,MAAO,EACP3b,KAAM,IACNyN,MAAO,MACP,OAAU,gBACVmO,YAAa,uCAEjB,QAAU,CACNvO,KAAM,aACN2V,QAAS,aACTrH,MAAO,EACP3b,KAAM,IACN8iB,MAAM,EACNrV,MAAO,MACPmO,YAAa,gBAEjB,QAAU,CACNvO,KAAM,cACN2V,QAAS,mBACTrH,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNG,SAAU,EACVrH,YAAa,mCAEjB,MAAQ,CACJvO,KAAM,kBACN2V,QAAS,mBACTrH,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACR,QAAW,EACXjH,YAAa,8GAEjB,MAAQ,CACJvO,KAAM,cACN2V,QAAS,mBACTrH,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACR,QAAW,EACXjH,YAAa,2HAEjB,MAAQ,CACJvO,KAAM,gBACN2V,QAAS,qBACTrH,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACR,QAAW,cACXpV,MAAO,QACPmO,YAAa,iGAEjB,MAAQ,CACJvO,KAAM,eACN2V,QAAS,oBACTrH,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACR,QAAW,aACXpV,MAAO,QACPmO,YAAa,gGAEjB,MAAQ,CACJvO,KAAM,iBACN2V,QAAS,sBACTrH,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACR,QAAW,EACXjH,YAAa,mEAEjB,MAAQ,CACJvO,KAAM,gBACN2V,QAAS,qBACTrH,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACR,QAAW,EACXjH,YAAa,kEAEjB,MAAQ,CACJvO,KAAM,eACN2V,QAAS,oBACTrH,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACR,QAAW,EACXjH,YAAa,iEAEjB,MAAQ,CACJvO,KAAM,kBACN2V,QAAS,uBACTrH,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACR,QAAW,EACXjH,YAAa,uFAEjB,IAAM,CACFvO,KAAM,cACN2V,QAAS,mBACTrH,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRpV,MAAO,QACPmO,YAAa,iDAEjB,IAAM,CACFvO,KAAM,aACN2V,QAAS,kBACTrH,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRpV,MAAO,QACPmO,YAAa,gDAEjB,MAAQ,CACJvO,KAAM,gBACNsO,MAAO,EACP3b,KAAM,IACN,OAAU,IACV8iB,MAAM,EACNI,MAAM,EACNtH,YAAa,2IAEjB,MAAQ,CACJvO,KAAM,YACN2V,QAAS,iBACTrH,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACN,QAAW,EACXlH,YAAa,mHAEjB,MAAQ,CACJvO,KAAM,aACN2V,QAAS,kBACTrH,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACN,QAAW,EACXlH,YAAa,snBAEjB,IAAM,CACFvO,KAAM,iBACN2V,QAAS,sBACTrH,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACN,QAAW,EACXrV,MAAO,MACPmO,YAAa,2CAEjB,IAAM,CACFvO,KAAM,QACN2V,QAAS,aACTrH,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRjH,YAAa,mBAEjB,MAAQ,CACJvO,KAAM,wBACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACNlH,YAAa,+HAEjB,MAAQ,CACJvO,KAAM,sBACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACNlH,YAAa,sEAEjB,MAAQ,CACJvO,KAAM,2BACNsO,MAAO,EACP3b,KAAM,IACN4iB,UAAU,EACVC,OAAQ,EACRC,MAAM,EACNlH,YAAa,iIAEjB,MAAQ,CACJvO,KAAM,cACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXH,UAAU,EACV,QAAW,EACXC,OAAQ,EACRC,MAAM,EACNlH,YAAa,2IAEjB,MAAQ,CACJvO,KAAM,aACNsO,MAAO,EACP3b,KAAM,IACN4iB,UAAU,EACV,QAAW,EACXC,OAAQ,EACRC,MAAM,EACNlH,YAAa,kQAEjB,MAAQ,CACJvO,KAAM,eACNsO,MAAO,EACP3b,KAAM,IACN4iB,UAAU,EACVC,OAAQ,EACRC,MAAM,EACNlH,YAAa,kUAEjB,IAAM,CACFvO,KAAM,iBACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACN,QAAW,EACXrV,MAAO,MACPmO,YAAa,0DAEjB,OAAU,CACNvO,KAAM,mBACNsO,MAAO,EACP3b,KAAM,IACN4iB,UAAU,EACVE,MAAM,EACNlH,YAAa,2CAEjB,QAAU,CACNvO,KAAM,eACNsO,MAAO,EACP3b,KAAM,IACN4iB,UAAU,EACVE,MAAM,EACNlH,YAAa,mDAEjB,QAAU,CACNvO,KAAM,gBACNsO,MAAO,EACP3b,KAAM,IACN8iB,MAAM,EACNlH,YAAa,kDAEjB,MAAQ,CACJvO,KAAM,eACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRjH,YAAa,yCAEjB,QAAU,CACNvO,KAAM,WACN2V,QAAS,gBACTrH,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACR,QAAW,MACXjH,YAAa,uEAEjB,MAAQ,CACJvO,KAAM,OACN2V,QAAS,YACTrH,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRjH,YAAa,gCAEjB,MAAQ,CACJvO,KAAM,qBACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACN,QAAW,EACXlH,YAAa,uDAEjB,MAAQ,CACJvO,KAAM,cACNsO,MAAO,EACP3b,KAAM,IACN8iB,MAAM,EACN,QAAW,EACXlH,YAAa,uGAEjB,QAAU,CACNvO,KAAM,qBACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACR,OAAU,IACVC,MAAM,EACN,QAAW,EACXrV,MAAO,MACPmO,YAAa,qLAEjB,QAAU,CACNvO,KAAM,8BACN2V,QAAS,mCACTrH,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRpV,MAAO,QACPmO,YAAa,+IAEjB,QAAU,CACNvO,KAAM,kBACN2V,QAAS,uBACTrH,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRpV,MAAO,QACPmO,YAAa,2IAEjB,MAAQ,CACJvO,KAAM,WACN2V,QAAS,gBACTrH,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNlH,YAAa,oHAEjB,MAAQ,CACJvO,KAAM,WACN2V,QAAS,gBACTrH,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACN,QAAW,EACXlH,YAAa,8IAEjB,IAAM,CACFvO,KAAM,aACN2V,QAAS,kBACTrH,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACR,QAAW,EACXpV,MAAO,MACPmO,YAAa,6DAEjB,MAAQ,CACJvO,KAAM,aACN2V,QAAS,kBACTrH,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACR,QAAW,EACXpV,MAAO,MACPmO,YAAa,qTAEjB,IAAM,CACFvO,KAAM,cACN2V,QAAS,mBACTrH,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACN,QAAW,EACXrV,MAAO,MACPmO,YAAa,uCAEjB,MAAQ,CACJvO,KAAM,WACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRpV,MAAO,QACPmO,YAAa,kIAEjB,IAAM,CACFvO,KAAM,cACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRpV,MAAO,QACPmO,YAAa,8IAEjB,IAAM,CACFvO,KAAM,aACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXH,UAAU,EACVC,OAAQ,EACRjH,YAAa,wCAEjB,UAAY,CACRvO,KAAM,SACNsO,MAAO,EACP3b,KAAM,IACN4iB,UAAU,EACVC,OAAQ,EACRjH,YAAa,gEAEjB,IAAM,CACFvO,KAAM,iBACNsO,MAAO,EACP3b,KAAM,IACN4iB,UAAU,EACVE,MAAM,EACNlH,YAAa,wCAEjB,IAAM,CACFvO,KAAM,oBACNsO,MAAO,EACP3b,KAAM,IACN4iB,UAAU,EACVG,WAAW,EACXF,OAAQ,EACRC,MAAM,EACNI,MAAM,EACNtH,YAAa,gCAEjB,IAAM,CACFvO,KAAM,kBACNsO,MAAO,EACP3b,KAAM,IACN4iB,UAAU,EACVG,WAAW,EACXF,OAAQ,EACRC,MAAM,EACNI,MAAM,EACNtH,YAAa,gCAEjB,IAAM,CACFvO,KAAM,iBACNsO,MAAO,EACP3b,KAAM,IACN4iB,UAAU,EACVC,OAAQ,EACRC,MAAM,EACNI,MAAM,EACNtH,YAAa,gCAEjB,IAAM,CACFvO,KAAM,gBACNsO,MAAO,EACP3b,KAAM,IACN,QAAW,EACX4b,YAAa,kDAEjB,IAAM,CACFvO,KAAM,QACN2V,QAAS,aACTrH,MAAO,EACP3b,KAAM,IACN,QAAW,EACX4b,YAAa,+CAEjB,IAAM,CACFvO,KAAM,kBACN2V,QAAS,kBACTrH,MAAO,EACP3b,KAAM,IACN,QAAW,EACX4b,YAAa,gEAEjB,IAAM,CACFvO,KAAM,cACN2V,QAAS,mBACTrH,MAAO,EACP3b,KAAM,IACN,QAAW,EACX4b,YAAa,qIAEjB,IAAM,CACFvO,KAAM,aACN2V,QAAS,kBACTrH,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACR,QAAW,EACXK,MAAM,EACNtH,YAAa,gRAEjB,IAAM,CACFvO,KAAM,YACNsO,MAAO,EACP3b,KAAM,IACN4iB,UAAU,EACVC,OAAQ,EACRK,MAAM,EACNtH,YAAa,wPAEjB,IAAM,CACFvO,KAAM,SACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRK,MAAM,EACNtH,YAAa,gCAEjB,MAAQ,CACJvO,KAAM,iBACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNlH,YAAa,qSAEjB,IAAM,CACFvO,KAAM,aACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNlH,YAAa,0IAEjB,IAAM,CACFvO,KAAM,mBACNsO,MAAO,EACP3b,KAAM,IACN8iB,MAAM,EACNlH,YAAa,kFAEjB,IAAM,CACFvO,KAAM,iBACNsO,MAAO,EACP3b,KAAM,IACN4iB,UAAU,EACVC,OAAQ,EACRjH,YAAa,+HAEjB,IAAM,CACFvO,KAAM,oBACN2V,QAAS,iBACTrH,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACN,QAAW,EACXlH,YAAa,+LAEjB,IAAM,CACFvO,KAAM,gBACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACR,QAAW,gBACXjH,YAAa,8jBAEjB,IAAM,CACFvO,KAAM,kBACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACNlH,YAAa,iEAEjB,IAAM,CACFvO,KAAM,aACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACN,QAAW,EACXrV,MAAO,QACPmO,YAAa,gDAEjB,IAAM,CACFvO,KAAM,YACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXH,UAAU,EACVC,OAAQ,EACRC,MAAM,EACNlH,YAAa,oDAEjB,MAAQ,CACJvO,KAAM,iBACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNlH,YAAa,4JAEjB,IAAM,CACFvO,KAAM,eACNsO,MAAO,EACP3b,KAAM,IACN8iB,MAAM,EACNlH,YAAa,qIAEjB,IAAM,CACFvO,KAAM,QACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRjH,YAAa,2HAEjB,IAAM,CACFvO,KAAM,aACNsO,MAAO,EACP3b,KAAM,IACN4iB,UAAU,EACVC,OAAQ,EACRjH,YAAa,kIAEjB,IAAM,CACFvO,KAAM,cACNsO,MAAO,EACP3b,KAAM,IACN4iB,UAAU,EACVC,OAAQ,EACRC,MAAM,EACNI,MAAM,EACNtH,YAAa,oCAEjB,IAAM,CACFvO,KAAM,WACN2V,QAAS,kBACTrH,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRjH,YAAa,+EACbvG,SAAU,eAEd,IAAM,CACFhI,KAAM,WACN2V,QAAS,kBACTrH,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNlH,YAAa,sIACbvG,SAAU,WAEd,MAAQ,CACJhI,KAAM,oBACN2V,QAAS,2BACTrH,MAAO,EACP3b,KAAM,IACN4iB,UAAU,EACVC,OAAQ,EACRC,MAAM,EACNlH,YAAa,+IAEjB,IAAM,CACFvO,KAAM,WACN2V,QAAS,kBACTrH,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRjH,YAAa,+DAEjB,UAAY,CACRvO,KAAM,UACNsO,MAAO,EACP3b,KAAM,IACN4iB,UAAU,EACVC,OAAQ,EACRjH,YAAa,wEAEjB,MAAQ,CACJvO,KAAM,YACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRjH,YAAa,wDAEjB,MAAQ,CACJvO,KAAM,QACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNlH,YAAa,gCAEjB,QAAU,CACNvO,KAAM,2BACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACR,QAAW,aACXjH,YAAa,iDAEjB,QAAU,CACNvO,KAAM,gBACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACR,QAAW,UACXjH,YAAa,iHAEjB,MAAQ,CACJvO,KAAM,qBACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACNlH,YAAa,iIAEjB,MAAQ,CACJvO,KAAM,wBACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRC,MAAM,EACNlH,YAAa,sEAEjB,MAAQ,CACJvO,KAAM,6BACNsO,MAAO,EACP3b,KAAM,IACN4iB,UAAU,EACVC,OAAQ,EACRC,MAAM,EACNlH,YAAa,oIAEjB,QAAU,CACNvO,KAAM,eACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNlH,YAAa,0DAEjB,QAAU,CACNvO,KAAM,UACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNG,SAAU,GACVrH,YAAa,gEAEjB,QAAU,CACNvO,KAAM,eACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNlH,YAAa,8DAEjB,QAAU,CACNvO,KAAM,UACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNG,SAAU,GACVrH,YAAa,oEAEjB,MAAQ,CACJvO,KAAM,aACNsO,MAAO,EACP3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNrV,MAAO,QACPwV,SAAU,GACVrH,YAAa,kGAEjB,UAAY,CACRvO,KAAM,OACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXH,UAAU,EACVC,OAAQ,EACRjH,YAAa,0EAEjB,MAAQ,CACJvO,KAAM,eACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRjH,YAAa,oFACbvG,SAAU,WAEd,MAAQ,CACJhI,KAAM,SACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXF,OAAQ,EACRjH,YAAa,mDACbuH,MAAO,UAEX,MAAQ,CACJ9V,KAAM,OACN2V,QAAS,YACTrH,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACXH,UAAU,EACVC,OAAQ,EACRjH,YAAa,oDAEjB,UAAY,CACRvO,KAAM,WACN2V,QAAS,aACTrH,MAAO,EACP3b,KAAM,IACN4iB,UAAU,EACVC,OAAQ,EACRjH,YAAa,oDAEjB,MAAQ,CACJvO,KAAM,uBACNsO,MAAO,EACP3b,KAAM,IACN4iB,UAAU,EACVE,MAAM,EACNxnB,EAAG,gCACHsgB,YAAa,0MAEjB,MAAQ,CACJvO,KAAM,oBACNsO,MAAO,EACP3b,KAAM,IACN8iB,MAAM,EACNlH,YAAa,iEAEjB,MAAQ,CACJvO,KAAM,YACNsO,MAAO,EACP3b,KAAM,IACN8iB,MAAM,EACNlH,YAAa,2CAEjB,MAAQ,CACJvO,KAAM,qBACNsO,MAAO,EACP3b,KAAM,IACN8iB,MAAM,EACNlH,YAAa,oFAEjB,MAAQ,CACJvO,KAAM,gBACNsO,MAAO,EACP3b,KAAM,IACN8iB,MAAM,EACNlH,YAAa,4CAEjB,MAAQ,CACJvO,KAAM,gBACNsO,MAAO,EACP3b,KAAM,IACN8iB,MAAM,EACNlH,YAAa,iDAEjB,UAAY,CACRvO,KAAM,gBACNsO,OAAQ,EACR3b,KAAM,IACN4iB,UAAU,EACVE,MAAM,EACNlH,YAAa,8DAEjB,IAAM,CACFvO,KAAM,SACNsO,OAAQ,EACR3b,KAAM,IACN6iB,OAAQ,EACRC,MAAM,EACNlH,YAAa,gPACbwH,KAAK,GAET,IAAM,CACF/V,KAAM,OACNsO,OAAQ,EACR3b,KAAM,IACN6iB,OAAQ,EACRjH,YAAa,0KAEjB,MAAQ,CACJvO,KAAM,oBACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACX,QAAW,EACXF,OAAQ,EACRjH,YAAa,mSAEjB,MAAQ,CACJvO,KAAM,kBACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACX,QAAW,EACXF,OAAQ,EACRjH,YAAa,mFAEjB,MAAQ,CACJvO,KAAM,kBACNsO,MAAO,EACP3b,KAAM,IACN+iB,WAAW,EACX,QAAW,EACXF,OAAQ,EACRjH,YAAa,uEAEjB,UAAY,CACRvO,KAAM,OACNsO,MAAO,IACP3b,KAAM,IACN+iB,WAAW,EACXH,UAAU,EACVC,OAAQ,EACRjH,YAAa,kGAEjB,MAAQ,CACJvO,KAAM,SACNsO,MAAO,IACP3b,KAAM,IACN+iB,WAAW,EACXH,UAAU,EACVhH,YAAa,0CAEjB,MAAQ,CACJvO,KAAM,qBACNsO,MAAO,IACP3b,KAAM,IACN+iB,WAAW,EACXH,UAAU,EACVhH,YAAa,qPAEjB,MAAQ,CACJvO,KAAM,QACNsO,MAAO,IACP3b,KAAM,IACN+iB,WAAW,EACXH,UAAU,EACVhH,YAAa,iCAEjB,MAAQ,CACJvO,KAAM,0BACNsO,MAAO,IACP3b,KAAM,IACN+iB,WAAW,EACXH,UAAU,EACVhH,YAAa,8CAEjB,MAAQ,CACJvO,KAAM,YACNsO,MAAO,IACP3b,KAAM,IACN+iB,WAAW,EACXH,UAAU,EACVhH,YAAa,oJ,oCCxiErB,IAAIyH,EAAmBriB,MAAQA,KAAKqiB,kBAAqBvlB,OAAOqV,OAAS,SAAU6I,EAAGva,EAAG6hB,EAAGC,QAC7EzjB,IAAPyjB,IAAkBA,EAAKD,GAC3BxlB,OAAOuH,eAAe2W,EAAGuH,EAAI,CAAEje,YAAY,EAAMC,IAAK,WAAa,OAAO9D,EAAE6hB,EAAI,GACnF,EAAI,SAAUtH,EAAGva,EAAG6hB,EAAGC,QACTzjB,IAAPyjB,IAAkBA,EAAKD,GAC3BtH,EAAEuH,GAAM9hB,EAAE6hB,EACb,GACGE,EAAgBxiB,MAAQA,KAAKwiB,cAAiB,SAAS/hB,EAAG5G,GAC1D,IAAK,IAAI6jB,KAAKjd,EAAa,YAANid,GAAoB5gB,OAAOE,UAAU2gB,eAAe7c,KAAKjH,EAAS6jB,IAAI2E,EAAgBxoB,EAAS4G,EAAGid,EAC3H,EACA5gB,OAAOuH,eAAexK,EAAS,aAAc,CAAEyD,OAAO,IACtDzD,EAAQuf,MAAQvf,EAAQ4oB,OAAS5oB,EAAQ6oB,QAAU7oB,EAAQ8oB,aAAU,EACrEH,EAAa,EAAQ,MAAW3oB,GAChC,IAAI+oB,EAAgB,EAAQ,MAC5B/oB,EAAQ8oB,QAAUC,EAAcC,QAChC,IAAIC,EAAgB,EAAQ,MAC5BjpB,EAAQ6oB,QAAUI,EAAcD,QAChC,IAAIE,EAAe,EAAQ,MAC3BlpB,EAAQ4oB,OAASM,EAAaF,QAC9B,IAAIzJ,EAAQ,EAAQ,MACpBvf,EAAQuf,MAAQA,C,mCCpBhB,IAAI4J,EAAYhjB,MAAQA,KAAKgjB,UAAa,WAStC,OARAA,EAAWlmB,OAAOgf,QAAU,SAASmH,GACjC,IAAK,IAAIxN,EAAGnb,EAAI,EAAGkG,EAAId,UAAU1E,OAAQV,EAAIkG,EAAGlG,IAE5C,IAAK,IAAIojB,KADTjI,EAAI/V,UAAUpF,GACOwC,OAAOE,UAAU2gB,eAAe7c,KAAK2U,EAAGiI,KACzDuF,EAAEvF,GAAKjI,EAAEiI,IAEjB,OAAOuF,CACX,EACOD,EAASrf,MAAM3D,KAAMN,UAChC,EACIwjB,EAAiBljB,MAAQA,KAAKkjB,eAAkB,SAAUC,EAAI9lB,EAAM+lB,GACpE,GAAIA,GAA6B,IAArB1jB,UAAU1E,OAAc,IAAK,IAA4BqoB,EAAxB/oB,EAAI,EAAGgpB,EAAIjmB,EAAKrC,OAAYV,EAAIgpB,EAAGhpB,KACxE+oB,GAAQ/oB,KAAK+C,IACRgmB,IAAIA,EAAK3nB,MAAMsB,UAAUY,MAAMkD,KAAKzD,EAAM,EAAG/C,IAClD+oB,EAAG/oB,GAAK+C,EAAK/C,IAGrB,OAAO6oB,EAAGne,OAAOqe,GAAM3nB,MAAMsB,UAAUY,MAAMkD,KAAKzD,GACtD,EACAP,OAAOuH,eAAexK,EAAS,aAAc,CAAEyD,OAAO,IACtD,IAAI6b,EAAU,EAAQ,MAClBoK,EAAuB,WACvB,SAASA,IACT,CA6OA,OApOAA,EAAMzI,SAAW,SAAU1c,EAAQtC,QACjB,IAAVA,IAAoBA,EAAQ,GAChC,IAAId,EAAS,EAAI8H,KAAK+J,MAAM/J,KAAK0gB,KAAKplB,EAAOtC,KAC7C,GAAId,EAAS,EAAG,CACZ,IAAIyoB,EAASF,EAAMG,cAActlB,EAAQtC,EAAOA,EAAQd,GACxD,MAAM,IAAIY,MAAM,2BAA2BoJ,OAAOhK,EAAQ,KAAKgK,OAAOye,GAC1E,CACA,GAAI3nB,EAAQd,EAASoD,EAAOpD,OACxB,OAAO,KAGX,IADA,IAAIsC,EAAQc,EAAOtC,IAAW,GAAM,EAAId,GAAW,EAC1CV,EAAI,EAAGA,EAAIU,EAAQV,GAAK,EAAG,CAChC,GAAU,IAANA,GACIgD,GAASwF,KAAKgG,IAAI,EAAG,IAAM1K,EAAOtC,EAAQ,GAAK,EAC/C,MAAO,CAAEd,OAAQA,EAAQsC,OAAQ,GAGzCA,GAASwF,KAAKgG,IAAI,EAAG,GACrBxL,GAASc,EAAOtC,EAAQxB,EAC5B,CACA,MAAO,CAAEU,OAAQA,EAAQsC,MAAOA,EACpC,EAOAimB,EAAMI,UAAY,SAAUrmB,GACxB,GAAIA,EAAQ,GAAKA,EAAQwF,KAAKgG,IAAI,EAAG,IACjC,MAAM,IAAIlN,MAAM,0BAA0BoJ,OAAO1H,IAErD,IAAItC,EAAS,EACb,IAAKA,EAAS,EAAGA,GAAU,KACnBsC,EAAQwF,KAAKgG,IAAI,EAAI,EAAI9N,GAAW,GADdA,GAAU,GAOxC,IAFA,IAAIoD,EAAS+a,EAAQ7c,OAAOE,MAAMxB,GAC9B2F,EAAMrD,EACDhD,EAAI,EAAGA,GAAKU,EAAQV,GAAK,EAAG,CACjC,IAAIoE,EAAU,IAANiC,EACRvC,EAAOpD,EAASV,GAAKoE,EACrBiC,GAAOjC,EACPiC,GAAOmC,KAAKgG,IAAI,EAAG,EACvB,CAEA,OADA1K,EAAO,IAAM,GAAM,EAAIpD,EAChBoD,CACX,EASAmlB,EAAMK,YAAc,SAAUC,EAAIC,GAE9B,OAAKD,GAAOC,EAGPD,GAAwB,IAAlBA,EAAG/pB,WAGTgqB,GAAwB,IAAlBA,EAAGhqB,WAGPqf,EAAQ7c,OAAOe,KAAK6lB,EAAcA,EAAc,GAAIW,GAAI,GAAOC,GAAI,IAF/DD,EAHAC,EAHA3K,EAAQ7c,OAAOe,KAAK,GASnC,EAQAkmB,EAAMG,cAAgB,SAAUK,EAAMjoB,EAAOC,GAGzC,YAFc,IAAVD,IAAoBA,EAAQ,QACpB,IAARC,IAAkBA,EAAMgoB,EAAKjqB,YAC1B4B,MAAM2B,KAAK0mB,EAAKnmB,MAAM9B,EAAOC,IAC/BghB,KAAI,SAAUiH,GAAK,OAAOriB,OAAOqiB,GAAGxkB,SAAS,GAAK,IAClDub,QAAO,SAAUkJ,EAAKC,GAAW,MAAO,GAAGlf,OAAOif,GAAKjf,OAAOkf,EAAQC,SAAS,EAAG,KAAO,GAAG,GACrG,EAMAZ,EAAMa,SAAW,SAAUL,GACvB,IACI,OAAO5K,EAAQ7c,OAAOe,KAAK0mB,GAAMvkB,SAAS,OAI9C,CAFA,MAAO6kB,GACH,OAAO,IACX,CACJ,EAMAd,EAAMe,aAAe,SAAUP,GAC3B,IAAIrlB,EAAI,IAAI6lB,SAASR,EAAK3lB,OAAQ2lB,EAAK1lB,WAAY0lB,EAAKjqB,YACxD,OAAQiqB,EAAKjqB,YACT,KAAK,EACD,OAAO4E,EAAE8lB,SAAS,GACtB,KAAK,EACD,OAAO9lB,EAAE+lB,UAAU,GACvB,KAAK,EACD,OAAO/lB,EAAEgmB,UAAU,GAI3B,OAAIX,EAAKjqB,YAAc,EACZiqB,EAAKhJ,QAAO,SAAUkJ,EAAKC,GAAW,OAAa,IAAND,EAAYC,CAAS,GAAG,GAEzEX,EAAMG,cAAcK,EAAM,EAAGA,EAAKjqB,WAC7C,EAOAypB,EAAMoB,WAAa,SAAUZ,GACzB,IAAIrlB,EAAI,IAAI6lB,SAASR,EAAK3lB,OAAQ2lB,EAAK1lB,WAAY0lB,EAAKjqB,YACxD,OAAQiqB,EAAKjqB,YACT,KAAK,EACD,OAAO4E,EAAEkmB,QAAQ,GACrB,KAAK,EACD,OAAOlmB,EAAEmmB,SAAS,GACtB,KAAK,EACD,OAAOnmB,EAAEomB,SAAS,GACtB,QACI,OAAOpP,IAEnB,EAOA6N,EAAMwB,UAAY,SAAUhB,GACxB,IAAIrlB,EAAI,IAAI6lB,SAASR,EAAK3lB,OAAQ2lB,EAAK1lB,WAAY0lB,EAAKjqB,YACxD,OAAQiqB,EAAKjqB,YACT,KAAK,EACD,OAAO4E,EAAEsmB,WAAW,GACxB,KAAK,EACD,OAAOtmB,EAAEumB,WAAW,GACxB,QACI,OAAOvP,IAEnB,EAOA6N,EAAM2B,SAAW,SAAUnB,GACvB,IAAIrlB,EAAI,IAAI6lB,SAASR,EAAK3lB,OAAQ2lB,EAAK1lB,WAAY0lB,EAAKjqB,YACxD,OAAQiqB,EAAKjqB,YACT,KAAK,EACD,OAAO,IAAIqrB,KAAKzmB,EAAE8lB,SAAS,IAC/B,KAAK,EACD,OAAO,IAAIW,KAAKzmB,EAAE+lB,UAAU,IAChC,KAAK,EACD,OAAO,IAAIU,KAAKzmB,EAAEgmB,UAAU,IAChC,KAAK,EACD,OAAO,IAAIS,KAAKxjB,OAAOI,SAASwhB,EAAMG,cAAcK,GAAO,KAC/D,QACI,OAAO,IAAIoB,KAAK,GAE5B,EAQA5B,EAAM6B,gBAAkB,SAAUlK,EAAQhc,GACtC,IAKI5B,EALA0B,EAAOkc,EAAOlc,KAAMqN,EAAO6O,EAAO7O,KAClCgZ,EAAQnK,EAAOmK,MACftW,EAAcmM,EAAOnM,cAAe,EACpCD,EAAWoM,EAAOpM,WAAY,EAC9BwW,EAAU,KAEd,OAAQtmB,GACJ,IAAK,IACD1B,EAAQimB,EAAMe,aAAaplB,GAC3B,MACJ,IAAK,IACD5B,EAAQimB,EAAMwB,UAAU7lB,GACxB,MACJ,IAAK,IACD5B,EAAQimB,EAAMoB,WAAWzlB,GACzB,MACJ,IAAK,IACD5B,EAAQ6D,OAAOuC,aAAaC,MAAMxC,OAAQjC,GAC1C,MACJ,IAAK,IACD5B,EAAQimB,EAAMa,SAASllB,GACvB,MACJ,IAAK,IACD5B,EAAQimB,EAAM2B,SAAShmB,GAK/B,GAAa,gBAATmN,GAAmC,UAATA,EAAkB,CAC5C,IAAIqR,EAAI,EACJ4C,EAAKiD,EAAMzI,SAAS5b,EAAMwe,GAAI6H,EAAWjF,EAAGtlB,OAChD0iB,GAAK6H,EACLF,EAF+D/E,EAAGhjB,MAGlEA,EAAQimB,EAAMoB,WAAWzlB,EAAKqI,SAASmW,EAAGA,EAAI,IAC9CA,GAAK,EACQ,gBAATrR,IACAyC,EAAW0W,QAA6B,IAArBtmB,EAAKqmB,EAAW,IACnCxW,EAAcyW,QAA6B,EAArBtmB,EAAKqmB,EAAW,KAE1C7H,GAAK,EACL4H,EAAUpmB,EAAKqI,SAASmW,EAC5B,CACA,OAAOsF,EAASA,EAAS,CAAC,EAAG9H,GAAS,CAAEhc,KAAMA,EAAM6P,YAAaA,EAAaD,SAAUA,EAAUwW,QAASA,EAASD,MAAOA,EAAO/nB,MAAOA,GAC7I,EACOimB,CACX,CAhP0B,GAiP1B1pB,EAAA,QAAkB0pB,C,8BCvQlBzmB,OAAOuH,eAAexK,EAAS,aAAc,CAAEyD,OAAO,IACtDzD,EAAQkiB,wBAA0BliB,EAAQ4rB,kBAAoB5rB,EAAQ6rB,gBAAkB7rB,EAAQ8rB,iBAAmB9rB,EAAQ+rB,oBAAsB/rB,EAAQmL,OAASnL,EAAQgsB,mBAAqBhsB,EAAQisB,eAAiBjsB,EAAQksB,cAAgBlsB,EAAQmsB,qBAAuBnsB,EAAQosB,gBAAkBpsB,EAAQknB,6BAA+BlnB,EAAQqsB,gBAAkBrsB,EAAQqjB,UAAYrjB,EAAQssB,UAAYtsB,EAAQ0mB,UAAY1mB,EAAQ8pB,UAAY9pB,EAAQihB,SAAWjhB,EAAQyC,YAAS,EAE9d,IAAI4c,EAAiB,EAAQ,MACzB4J,EAAgB,EAAQ,MACxBsD,EAAU,EAAQ,MAClBC,EAAe,EAAQ,KACvBC,EAAS,EAAQ,MA+DrB,SAASL,EAAgBM,EAAQtM,GAC7B,IAAIuM,EAAY,IAAI3sB,EAAQyC,OAAO,GAEnC,OADAkqB,EAAUlc,cAAc2P,EAAMngB,WAAY,GACnCkL,EAAO,CACV,IAAInL,EAAQyC,OAAOiqB,EAAOvkB,OAAO,EAAG,GAAI,SACxCwkB,EACAvM,EACA,IAAIpgB,EAAQyC,OAAO2d,EAAMngB,WAAa,GAAM,EAAI,EAAI,IAE5D,CAqPA,SAASisB,EAAcU,EAAQC,GAG3B,IAFA,IACI5qB,GAAS,EACJxB,EAAI,EAAGA,EAAIosB,EAAS1rB,OAAQV,IAAK,CACtC,IAAIqsB,EAAUD,EAASpsB,GACvB,GAAIqsB,EAAQta,OAASoa,EAAQ,CAEzB,GAAqB,MAAjBE,EAAQ3nB,KAeR,YADA0nB,EAASE,OAAOtsB,EAAG,GAbnB,GAAKqsB,EAAQ/K,MAGR,CAED,IAAc,GAAV9f,EACA,MAAM,IAAIF,MAAM,YAAYoJ,OAAOyhB,EAAQ,8CAE/C,YADAC,EAASE,OAAO9qB,EAAOxB,EAAIwB,EAAQ,EAEvC,CARIA,EAAQxB,CAepB,CACJ,CACJ,CAQA,SAASwrB,EAAeW,EAAQC,GAG5B,IAFA,IAAIG,EAAS,GACT/qB,GAAS,EACJxB,EAAI,EAAGA,EAAIosB,EAAS1rB,OAAQV,IAAK,CACtC,IAAIqsB,EAAUD,EAASpsB,GACvB,GAAIqsB,EAAQta,OAASoa,EAAQ,CAEzB,GAAqB,MAAjBE,EAAQ3nB,KAYP,CAED6nB,EAAOxrB,KAAKqrB,EAASpsB,IACrB,KACJ,CAfI,GAAKqsB,EAAQ/K,MAGR,CAED,IAAc,GAAV9f,EACA,MAAM,IAAIF,MAAM,YAAYoJ,OAAOyhB,EAAQ,8CAC/CI,EAASH,EAAS9oB,MAAM9B,EAAOxB,EAAI,GACnC,KACJ,CARIwB,EAAQxB,CAepB,CACJ,CACA,OAAOusB,CACX,CA2EA,SAASC,EAAkBC,GACvB,IAAIC,EAAW,IAAIlE,EAAcD,QACjC,OAAOkE,EAAgBhM,QAAO,SAAUyB,EAAKX,GAAO,OAAOW,EAAIxX,OAAOgiB,EAAS3K,OAAO,CAACR,IAAQ,GAAG,IAAId,QAAO,SAAUC,EAAGne,GAAO,OAAOme,EAAIne,EAAI/C,UAAY,GAAG,EACnK,CACA,SAASmtB,EAAeC,EAAYC,EAAUC,GAC1C,IAAInH,EAAWmH,EAAKnH,SAAUoH,EAAcD,EAAKC,YAAazI,EAAOwI,EAAKxI,KACtE0I,EAAYJ,EAAWtpB,MAAM,GACjC,GAAwB,iBAAbqiB,EAAuB,CAE9B,IAAIsH,GAAe,EACnBD,EAAU1G,SAAQ,SAAU/E,GACP,MAAbA,EAAI7c,MAA6B,aAAb6c,EAAIxP,OACxBkb,GAAe,EACf1L,EAAI3c,KAAOumB,EAAkBxF,EAAU,GAE/C,IACKsH,GACDC,EAAUF,EAAW,OAAQ,CAAC,CAAEjb,KAAM,WAAYrN,KAAM,IAAKE,KAAMumB,EAAkBxF,EAAU,KAEvG,CACIvkB,MAAMuD,QAAQ2f,IACd4I,EAAUF,EAAW,OAuD7B,SAAoBG,EAAUN,GAC1B,IAAIvI,EAAO,GAWX,OAVA6I,EAAS7G,SAAQ,SAAUN,GACvB,IAAII,EAAWJ,EAAGI,SAAUC,EAAqBL,EAAGK,mBAAoBF,EAAUH,EAAGG,QACrF7B,EAAKvjB,KAAK,CAAEgR,KAAM,WAAYrN,KAAM,IAAK4c,OAAO,IAChDgD,EAAKvjB,KAAK,CAAEgR,KAAM,UAAWrN,KAAM,IAAKE,KAAMymB,EAAiBlF,KAC/D7B,EAAKvjB,KAAK,CAAEgR,KAAM,oBAAqBrN,KAAM,IAAK4c,OAAO,IACzDgD,EAAKvjB,KAAK,CAAEgR,KAAM,WAAYrN,KAAM,IAAKE,KAAMymB,EAAiBjF,KAChE9B,EAAKvjB,KAAK,CAAEgR,KAAM,qBAAsBrN,KAAM,IAAKE,KAAMymB,EAAiBhF,EAAqBwG,KAC/FvI,EAAKvjB,KAAK,CAAEgR,KAAM,oBAAqBrN,KAAM,IAAK4c,OAAO,IACzDgD,EAAKvjB,KAAK,CAAEgR,KAAM,WAAYrN,KAAM,IAAK4c,OAAO,GACpD,IACOgD,CACX,CApEqC8I,CAAW9I,EAAMuI,IAElD,IAAIQ,EAAoB,GAexB,OAdIjsB,MAAMuD,QAAQooB,KACdljB,QAAQuO,KAAK,sEACbiV,EAuCR,SAAmCN,EAAaF,GAC5C,IAAIS,EAAQ,GAQZ,OAPAP,EAAYzG,SAAQ,SAAU9kB,GAC1B8rB,EAAMvsB,KAAK,CAAEgR,KAAM,OAAQrN,KAAM,IAAK4c,OAAO,IAE7CgM,EAAMvsB,KAAK,CAAEgR,KAAM,SAAUrN,KAAM,IAAKE,KAAM,IAAIrF,EAAQyC,OAAO,CAAC,GAAM,GAAM,IAAM,QACpFsrB,EAAMvsB,KAAK,CAAEgR,KAAM,eAAgBrN,KAAM,IAAKE,KAAMymB,EAAiB7pB,EAAQqrB,KAC7ES,EAAMvsB,KAAK,CAAEgR,KAAM,OAAQrN,KAAM,IAAK4c,OAAO,GACjD,IACOgM,CACX,CAjD4BC,CAA0BR,EAAaF,IAW/DK,EAAUF,EAAW,WAAYK,GAAmB,GAC7CL,CACX,CAmDA,SAASE,EAAUF,EAAWzK,EAASM,EAAU2K,QAC1B,IAAfA,IAAyBA,GAAa,GAG1C,IADA,IAAIC,GAAO,EACFztB,EAAI,EAAGA,EAAIgtB,EAAUtsB,OAAQV,IAAK,CACvC,IAAIuhB,EAAMyL,EAAUhtB,GACpB,GAAiB,MAAbuhB,EAAI7c,MAAgB6c,EAAIxP,OAASwQ,IAAyB,IAAdhB,EAAID,MAAiB,CACjEmM,EAAMztB,EACN,KACJ,CACJ,CACIytB,GAAO,EAEPrsB,MAAMsB,UAAU4pB,OAAOjjB,MAAM2jB,EAAW,CAACS,EAAM,EAAG,GAAG/iB,OAAOmY,IAEvD2K,EACL,GAAG9iB,OAAO,CAAC,CAAEqH,KAAMwQ,EAAS7d,KAAM,IAAK4c,OAAO,IAAUuB,EAAU,CAAC,CAAE9Q,KAAMwQ,EAAS7d,KAAM,IAAK4c,OAAO,KAASoM,UAAUpH,SAAQ,SAAU/E,GAAOyL,EAAUhV,QAAQuJ,EAAM,KAK1KyL,EAAUjsB,KAAK,CAAEgR,KAAMwQ,EAAS7d,KAAM,IAAK4c,OAAO,IAClDuB,EAASyD,SAAQ,SAAU/E,GAAOyL,EAAUjsB,KAAKwgB,EAAM,IACvDyL,EAAUjsB,KAAK,CAAEgR,KAAMwQ,EAAS7d,KAAM,IAAK4c,OAAO,IAE1D,CACA,SAAS5W,EAAOC,GACZ,OAAOpL,EAAQyC,OAAO0I,OAAOC,EACjC,CAiCA,SAAS0gB,EAAiBroB,GAItB,IADA,IAAImJ,EAAQ,EACLnJ,GAASwF,KAAKgG,IAAI,EAAG,EAAIrC,GAAQA,KACxC,GAAIA,GAAS,EAET,OADAtC,QAAQuO,KAAK,2CACN,IAAIwG,EAAe+O,SAAS3qB,GAAO0a,WAE9C,IAAI9Y,EAAO,IAAIrF,EAAQyC,OAAOmK,GAE9B,OADAvH,EAAK4K,YAAYxM,EAAO,EAAGmJ,GACpBvH,CACX,CAEA,SAASwmB,EAAgBpoB,GAIrB,IADA,IAAImJ,EAAQ,EACLnJ,GAASwF,KAAKgG,IAAI,EAAG,EAAIrC,GAAQA,KACxC,GAAIA,GAAS,EAET,OADAtC,QAAQuO,KAAK,2CACN,IAAIwG,EAAe8C,QAAQ1e,GAAO0a,WAE7C,IAAI9Y,EAAO,IAAIrF,EAAQyC,OAAOmK,GAE9B,OADAvH,EAAK4L,WAAWxN,EAAO,EAAGmJ,GACnBvH,CACX,CAEA,SAASumB,EAAkBnoB,EAAOmJ,GAM1B,IAMIvH,EARR,QAHc,IAAVuH,IAAoBA,EAAQ,GAGlB,IAAVA,EAIA,OAFIvH,EAAO,IAAIrF,EAAQyC,OAAO,IACzBmP,cAAcnO,EAAO,GACnB4B,EAEN,GAAc,IAAVuH,EAIL,OAFIvH,EAAO,IAAIrF,EAAQyC,OAAO,IACzBiP,aAAajO,EAAO,GAClB4B,EAGP,MAAM,IAAItD,MAAM,wCAExB,CA1oBA/B,EAAQyC,OAAS8pB,EAAQ9pB,OACzBzC,EAAQihB,SAAWuL,EAAaxD,QAAQ/H,SACxCjhB,EAAQ8pB,UAAY0C,EAAaxD,QAAQc,UACzC9pB,EAAQ0mB,UAAY+F,EAIpBzsB,EAAQssB,UAHR,SAAmBtpB,GACf,OAAO,EAAIhD,EAAQ0mB,WAAW,IAAI1mB,EAAQyC,OAAOO,GACrD,EAeAhD,EAAQqjB,UAVR,SAAmBF,EAAOC,EAAStB,GAE/B,YADoB,IAAhBA,IAA0BA,GAAc,GACrC3W,EAAO,CACVgY,EACArB,EACI,IAAI9hB,EAAQyC,OAAO,mBAAoB,QACvC,EAAIzC,EAAQ8pB,WAAW1G,EAAQjiB,QACnCiiB,GAER,EAyBApjB,EAAQqsB,gBApBR,SAAyB5J,GACrB,OAAOA,EAAKvB,QAAO,SAAUyB,EAAKX,GAC9B,MAAiB,MAAbA,EAAI7c,MAGS,gBAAb6c,EAAIxP,KAFGmQ,GAKH,EAAI3iB,EAAQ0mB,WAAW1E,EAAI3c,MACnB+P,OAAOiZ,MAAK,SAAUrH,GAGlC,MAAqB,WADLA,EAAMjjB,MAAM,EAAG,GAAG4B,SAAS,MAE/C,IAIOgd,EAAIxX,OAAO6W,GAFPW,CAGf,GAAG,GACP,EAcA3iB,EAAQknB,6BARR,SAAsCF,GAClC,IAAIsH,EAAWlC,EAAgB,OAAQpF,GAKvC,OAAOoF,EAAgB,OAJPjhB,EAAO,CACnB,IAAInL,EAAQyC,OAAO,OAAQ,SAC3B6rB,IAGR,EAeAtuB,EAAQosB,gBAAkBA,EA8N1BpsB,EAAQmsB,qBAvHR,SAA8BoC,EAAkBnI,EAAUoI,GAEtD,IAAIC,EAASxC,EAAe,OAAQsC,GAMhCG,EALazB,EAAkBwB,GAKO,GAGtCE,EAAuBJ,EAAiBA,EAAiBptB,OAAS,GAAGygB,QAAU8M,EAI/EnB,EAAOtB,EAAe,OAAQsC,GAClCrC,EAAc,WAAYqB,GAC1BA,EAAKR,OAAO,EAAG,EAAG,CAAEva,KAAM,WAAYrN,KAAM,IAAKE,KAAMumB,EAAkBxF,EAAU,KAmFnF,IAlFA,IAAIwI,EAAW3B,EAAkBM,GAI7BsB,EAAS5C,EAAe,SAAUsC,GAClCO,EAAa7B,EAAkB4B,GAG/BE,EAAe,GACfC,EAAW,GACXC,EAAW,EAAsB,GAAlBT,EAASrtB,OACxB4jB,EAAO,GACPmK,GAAsB,EAKtBC,EAAU,SAAU1uB,GAEpB,IAAI2uB,EAAYL,EACZM,EAAcD,EAAYR,EAC1BU,EAAYD,EAAcP,EAG1BS,EAFkBD,EAAYL,EAEKN,EAgDvC,IA1CAK,EAAW,IACFxtB,KAAK,CAAEgR,KAAM,WAAYrN,KAAM,IAAK4c,OAAO,IACpDiN,EAASxtB,KAAK,CAAEgR,KAAM,OAAQrN,KAAM,IAAK4c,OAAO,IAChDiN,EAASxtB,KAAK,CAAEgR,KAAM,SAAUrN,KAAM,IAAKE,KAAM,IAAIrF,EAAQyC,OAAO,CAAC,GAAM,GAAM,IAAM,QACvFusB,EAASxtB,KAAK,CAAEgR,KAAM,eAAgBrN,KAAM,IAAKE,KAAMymB,EAAiBsD,KACxEJ,EAASxtB,KAAK,CAAEgR,KAAM,OAAQrN,KAAM,IAAK4c,OAAO,IAChDiN,EAASxtB,KAAK,CAAEgR,KAAM,OAAQrN,KAAM,IAAK4c,OAAO,IAChDiN,EAASxtB,KAAK,CAAEgR,KAAM,SAAUrN,KAAM,IAAKE,KAAM,IAAIrF,EAAQyC,OAAO,CAAC,GAAM,GAAM,IAAM,QACvFusB,EAASxtB,KAAK,CAAEgR,KAAM,eAAgBrN,KAAM,IAAKE,KAAMymB,EAAiBuD,KACxEL,EAASxtB,KAAK,CAAEgR,KAAM,OAAQrN,KAAM,IAAK4c,OAAO,IAChDiN,EAASxtB,KAAK,CAAEgR,KAAM,OAAQrN,KAAM,IAAK4c,OAAO,IAChDiN,EAASxtB,KAAK,CAAEgR,KAAM,SAAUrN,KAAM,IAAKE,KAAM,IAAIrF,EAAQyC,OAAO,CAAC,GAAM,GAAM,IAAM,QACvFusB,EAASxtB,KAAK,CAAEgR,KAAM,eAAgBrN,KAAM,IAAKE,KAAMymB,EAAiBwD,KACxEN,EAASxtB,KAAK,CAAEgR,KAAM,OAAQrN,KAAM,IAAK4c,OAAO,IAChDiN,EAASxtB,KAAK,CAAEgR,KAAM,WAAYrN,KAAM,IAAK4c,OAAO,IACpDgN,EAAe9B,EAAkB+B,IAIjCjK,EAAO,IACFvjB,KAAK,CAAEgR,KAAM,OAAQrN,KAAM,IAAK4c,OAAO,IAC5CyM,EAASzH,SAAQ,SAAUN,GACvB,IAAII,EAAWJ,EAAGI,SAAUC,EAAqBL,EAAGK,mBAAoBF,EAAUH,EAAGG,QACrF7B,EAAKvjB,KAAK,CAAEgR,KAAM,WAAYrN,KAAM,IAAK4c,OAAO,IAChDgD,EAAKvjB,KAAK,CAAEgR,KAAM,UAAWrN,KAAM,IAAKE,KAAMymB,EAAiBlF,KAC/D7B,EAAKvjB,KAAK,CAAEgR,KAAM,oBAAqBrN,KAAM,IAAK4c,OAAO,IACzDgD,EAAKvjB,KAAK,CAAEgR,KAAM,WAAYrN,KAAM,IAAKE,KAAMymB,EAAiBjF,KAGhEC,GAAsB4H,EAEtB5H,GAAsByI,EACtBxK,EAAKvjB,KAAK,CAAEgR,KAAM,qBAAsBrN,KAAM,IAAKE,KAAMymB,EAAiBhF,KAC1E/B,EAAKvjB,KAAK,CAAEgR,KAAM,oBAAqBrN,KAAM,IAAK4c,OAAO,IACzDgD,EAAKvjB,KAAK,CAAEgR,KAAM,WAAYrN,KAAM,IAAK4c,OAAO,GACpD,IACAgD,EAAKvjB,KAAK,CAAEgR,KAAM,OAAQrN,KAAM,IAAK4c,OAAO,IAC5CkN,EAAWhC,EAAkBlI,GAKzBmK,IAAuBK,EAOvB,MAAO,QALP,GADAL,EAAqBK,EACXC,IAAN/uB,EACA,MAAM,IAAIsB,MAAM,+CAM5B,EACStB,EAAI,EAAGA,EAlEI,GAkEeA,IAAK,CAEpC,GAAgB,UADF0uB,EAAQ1uB,GAElB,KACR,CACA,IAAIgvB,EAAgB,GAAGtkB,OAAOrB,MAAM,GAAI,CACpC2kB,EACA,CAAEjc,KAAM,UAAWrN,KAAM,IAAK4c,OAAO,EAAOD,aAAa,GACzDkN,EACAzB,EACAsB,EACA9J,IAMJ,OAJa,IAAIkE,EAAcD,SAAUxG,OAAOiN,EAKpD,EAkDAzvB,EAAQksB,cAAgBA,EAmCxBlsB,EAAQisB,eAAiBA,EAwEzBjsB,EAAQgsB,mBA9DR,SAA4Ba,EAAUU,GAC9B1rB,MAAMuD,QAAQmoB,EAAKK,YAAc/rB,MAAMuD,QAAQmoB,EAAKxI,QACpDza,QAAQuO,KAAK,kFACb0U,EAAKxI,KAAOwI,EAAKK,UAIrB,IAFA,IAAI8B,EAAO,GACPjE,EAAU,GACLkE,EAAM,EAAGA,EAAM9C,EAAS1rB,OAAQwuB,IAAO,CAC5C,IAAI3N,EAAM6K,EAAS8C,GACnB,GAAiB,MAAb3N,EAAI7c,MAA6B,YAAb6c,EAAIxP,KAAoB,CAG5C,GAFAkd,EAAO7C,EAAS9oB,MAAM,EAAG4rB,GACzBlE,EAAUoB,EAAS9oB,MAAM4rB,GACrB3N,EAAIF,YAAa,CACjB2J,EAAQ/Q,QACR,KACJ,CACA,MAAM,IAAI3Y,MAAM,2CACpB,CACJ,CAaA,KAAM0pB,EAAQA,EAAQtqB,OAAS,GAAGygB,QAAU,GACxC,MAAM,IAAI7f,MAAM,qCAEpB,IAaItB,EAbAmvB,EAA2BnE,EAAQA,EAAQtqB,OAAS,GAAGygB,QACvDiO,EAAWH,EAAKA,EAAKvuB,OAAS,GAAGygB,QAEjCkO,GADkB,IAAI7G,EAAcD,SAAUxG,OAAOkN,GAAMzvB,WAC5B4vB,EAC/BE,EAAcH,EAA2BnE,EAAQ,GAAGlK,SAGpDyO,GAFcvE,EAAQ,GAAGlK,SACTkK,EAAQ,GAAGlK,SACX,IAAIvhB,EAAQyC,OAAO,CAAC,GAAM,GAAM,IAAM,OACtDwtB,EAAiB,IAAIjwB,EAAQyC,OAAO,mBAAoB,OACxDytB,EAAeF,EAAc/vB,WAAagwB,EAAehwB,WACzDkwB,EAAiBJ,EAIrB,IAAKtvB,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACrB,IAGI2vB,EAAUhD,EAAe3B,EADdqE,GAFWD,EAAWK,EAAeC,EACVP,GAEMrC,GAC5C8C,GAAoB,IAAIpH,EAAcD,SAAUxG,OAAO4N,GAASnwB,WACpE,GAAIowB,IAAsBF,EAEtB,OAAO,IAAIlH,EAAcD,SAAUxG,OAAO,GAAGrX,OAAOukB,EAAM,CAAC,CAAEvqB,KAAM,IAAKqN,KAAM,UAAWuP,OAAO,EAAOD,aAAa,IAASsO,IAEjID,EAAiBE,CACrB,CACA,MAAM,IAAItuB,MAAM,gEAAkEtB,EAAI,eAC1F,EA0HAT,EAAQmL,OAASA,EA+BjBnL,EAAQ+rB,oBA9BR,SAA6B/J,GACzB,IAAI3c,EAAO,IAAIrF,EAAQyC,OAAO,GAC9B,GAAiB,MAAbuf,EAAI7c,KACJ,OAAO6c,EAEX,OAAQA,EAAI7c,MACR,IAAK,IACDE,EAAOymB,EAAiB9J,EAAIve,OAC5B,MACJ,IAAK,IACD4B,EAAOwmB,EAAgB7J,EAAIve,OAC3B,MACJ,IAAK,IACD4B,EAAOumB,EAAkB5J,EAAIve,OAC7B,MACJ,IAAK,IACD4B,EAAO,IAAIrF,EAAQyC,OAAOuf,EAAIve,MAAO,SACrC,MACJ,IAAK,IACD4B,EAAO,IAAIrF,EAAQyC,OAAOuf,EAAIve,MAAO,QACrC,MACJ,IAAK,IACD4B,EAAO2c,EAAIve,MACX,MACJ,IAAK,IACD4B,EAAO,IAAIga,EAAe8C,QAAQH,EAAIve,MAAM6sB,UAAU3qB,YAAYwY,WAG1E,OAAOlb,OAAOgf,OAAO,CAAC,EAAGD,EAAK,CAAE3c,KAAMA,GAC1C,EAeArF,EAAQ8rB,iBAAmBA,EAc3B9rB,EAAQ6rB,gBAAkBA,EAqB1B7rB,EAAQ4rB,kBAAoBA,EAO5B5rB,EAAQkiB,wBANR,SAAiCqO,GAC7B,OAAIA,aAAoBjF,KACbiF,EAEJ,IAAIjF,KAAK,IAAIA,KAAK,4BAA4BgF,UAAaxoB,OAAOyoB,GAAY,IAAO,IAChG,C,oCCzpBA,IAAIC,EAAarqB,MAAQA,KAAKqqB,WAAc,SAAUC,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAI7Z,WAAU,SAAUC,EAASC,GAC/C,SAAS6Z,EAAUptB,GAAS,IAAMqtB,EAAKF,EAAUG,KAAKttB,GAAkC,CAAvB,MAAO2G,GAAK4M,EAAO5M,EAAI,CAAE,CAC1F,SAAS4mB,EAASvtB,GAAS,IAAMqtB,EAAKF,EAAiB,MAAEntB,GAAkC,CAAvB,MAAO2G,GAAK4M,EAAO5M,EAAI,CAAE,CAC7F,SAAS0mB,EAAK9D,GAJlB,IAAevpB,EAIaupB,EAAOiE,KAAOla,EAAQiW,EAAOvpB,QAJ1CA,EAIyDupB,EAAOvpB,MAJhDA,aAAiBktB,EAAIltB,EAAQ,IAAIktB,GAAE,SAAU5Z,GAAWA,EAAQtT,EAAQ,KAIjBytB,KAAKL,EAAWG,EAAW,CAC7GF,GAAMF,EAAYA,EAAU9mB,MAAM2mB,EAASC,GAAc,KAAKK,OAClE,GACJ,EACII,EAAehrB,MAAQA,KAAKgrB,aAAgB,SAAUV,EAASW,GAC/D,IAAsGC,EAAGnmB,EAAGke,EAAGkI,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPrI,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGsI,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEP,KAAMa,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,mBAAXpvB,SAA0B8uB,EAAE9uB,OAAOqvB,UAAY,WAAa,OAAO1rB,IAAM,GAAImrB,EACvJ,SAASM,EAAKjrB,GAAK,OAAO,SAAUiP,GAAK,OACzC,SAAckc,GACV,GAAIT,EAAG,MAAM,IAAI/tB,UAAU,mCAC3B,KAAOiuB,OACH,GAAIF,EAAI,EAAGnmB,IAAMke,EAAY,EAAR0I,EAAG,GAAS5mB,EAAU,OAAI4mB,EAAG,GAAK5mB,EAAS,SAAOke,EAAIle,EAAU,SAAMke,EAAEniB,KAAKiE,GAAI,GAAKA,EAAE6lB,SAAW3H,EAAIA,EAAEniB,KAAKiE,EAAG4mB,EAAG,KAAKb,KAAM,OAAO7H,EAE3J,OADIle,EAAI,EAAGke,IAAG0I,EAAK,CAAS,EAARA,EAAG,GAAQ1I,EAAE3lB,QACzBquB,EAAG,IACP,KAAK,EAAG,KAAK,EAAG1I,EAAI0I,EAAI,MACxB,KAAK,EAAc,OAAXP,EAAEC,QAAgB,CAAE/tB,MAAOquB,EAAG,GAAIb,MAAM,GAChD,KAAK,EAAGM,EAAEC,QAAStmB,EAAI4mB,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKP,EAAEI,IAAI/W,MAAO2W,EAAEG,KAAK9W,MAAO,SACxC,QACI,KAAMwO,EAAImI,EAAEG,MAAMtI,EAAIA,EAAEjoB,OAAS,GAAKioB,EAAEA,EAAEjoB,OAAS,KAAkB,IAAV2wB,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEP,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVO,EAAG,MAAc1I,GAAM0I,EAAG,GAAK1I,EAAE,IAAM0I,EAAG,GAAK1I,EAAE,IAAM,CAAEmI,EAAEC,MAAQM,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYP,EAAEC,MAAQpI,EAAE,GAAI,CAAEmI,EAAEC,MAAQpI,EAAE,GAAIA,EAAI0I,EAAI,KAAO,CACpE,GAAI1I,GAAKmI,EAAEC,MAAQpI,EAAE,GAAI,CAAEmI,EAAEC,MAAQpI,EAAE,GAAImI,EAAEI,IAAInwB,KAAKswB,GAAK,KAAO,CAC9D1I,EAAE,IAAImI,EAAEI,IAAI/W,MAChB2W,EAAEG,KAAK9W,MAAO,SAEtBkX,EAAKV,EAAKnqB,KAAKwpB,EAASc,GAC1B,MAAOnnB,GAAK0nB,EAAK,CAAC,EAAG1nB,GAAIc,EAAI,CAAG,CAAE,QAAUmmB,EAAIjI,EAAI,CAAG,CACzD,GAAY,EAAR0I,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEruB,MAAOquB,EAAG,GAAKA,EAAG,QAAK,EAAQb,MAAM,EAC9E,CAtBgDH,CAAK,CAACnqB,EAAGiP,GAAK,CAAG,CAuBrE,EACA3S,OAAOuH,eAAexK,EAAS,aAAc,CAAEyD,OAAO,IACtD,IAAIsuB,EAAS,EAAQ,MAkDrB/xB,EAAA,QA1CA,SAAyBgyB,GACrB,OAAOxB,EAAUrqB,UAAM,OAAQ,GAAQ,WACnC,IAAI8rB,EAASxd,EAAQyd,EAAYC,EAAY1L,EAAIwK,EAAMxtB,EAAOgf,EAAM2P,EAAoBC,EAAqBC,EAC7G,OAAOnB,EAAYhrB,MAAM,SAAUosB,GAC/B,OAAQA,EAAGf,OACP,KAAK,EACD,IAAKQ,EACD,MAAMjwB,MAAM,2CAEhBkwB,EAAU,IAAIF,EAAOjJ,QACrBrU,EAAS,IAAIsd,EAAOnJ,OACpBsJ,EAAaF,EAAKQ,SAClBL,EAAaD,EAAWO,YACxBF,EAAGf,MAAQ,EACf,KAAK,EAED,MAAO,CAAC,EAAaW,EAAW5qB,QACpC,KAAK,EAED,OADAkf,EAAK8L,EAAGd,OAAQR,EAAOxK,EAAGwK,KAAMxtB,EAAQgjB,EAAGhjB,MACvCwtB,GACAxc,EAAOwR,OACA,CAAC,EAAa,MAKzBxD,EAAOA,OAHPA,EAAOwP,EAAQ9R,OAAO1c,SAGoB,EAASgf,EAAKiQ,QAAO,SAAU1Q,GAAO,MAAoB,YAAbA,EAAI7c,IAAoB,KAC1G4hB,SAAQ,SAAU/E,GACnBvN,EAAOlN,KAAKya,EAChB,IACAve,EAAQ,KACD,CAAC,EAAa,IACzB,KAAK,EAKD,OAJA2uB,EAAqBL,EAAOxS,MAAM4M,qBAAqB1X,EAAOqQ,UAAWrQ,EAAO2R,SAAU3R,EAAOsQ,MACjGsN,EAAsB,IAAIjL,KAAK,CAACgL,GAAqB,CAAEjtB,KAAM6sB,EAAK7sB,OAClEmtB,EAA+BN,EAAKjuB,MAAM0Q,EAAOoQ,cAE1C,CAAC,EADI,IAAIuC,KAAK,CAACiL,EAAqBC,GAA+B,CAAEntB,KAAM6sB,EAAK7sB,QAGnG,GACJ,GACJ,C","sources":["webpack://tinode-webapp/./node_modules/base64-js/index.js","webpack://tinode-webapp/./node_modules/buffer/index.js","webpack://tinode-webapp/./node_modules/ebml-block/index.js","webpack://tinode-webapp/./node_modules/ebml-block/lib/buffer-reader.js","webpack://tinode-webapp/./node_modules/ebml-block/lib/vint.js","webpack://tinode-webapp/./node_modules/events/events.js","webpack://tinode-webapp/./node_modules/ieee754/index.js","webpack://tinode-webapp/./node_modules/int64-buffer/int64-buffer.js","webpack://tinode-webapp/./node_modules/webm-duration-fix/lib/ebml/EBML.js","webpack://tinode-webapp/./node_modules/webm-duration-fix/lib/ebml/EBMLDecoder.js","webpack://tinode-webapp/./node_modules/webm-duration-fix/lib/ebml/EBMLEncoder.js","webpack://tinode-webapp/./node_modules/webm-duration-fix/lib/ebml/EBMLReader.js","webpack://tinode-webapp/./node_modules/webm-duration-fix/lib/ebml/ebmlID.js","webpack://tinode-webapp/./node_modules/webm-duration-fix/lib/ebml/index.js","webpack://tinode-webapp/./node_modules/webm-duration-fix/lib/ebml/tools-ebml.js","webpack://tinode-webapp/./node_modules/webm-duration-fix/lib/ebml/tools.js","webpack://tinode-webapp/./node_modules/webm-duration-fix/lib/index.js"],"sourcesContent":["'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","var BufferReader = require('./lib/buffer-reader')\n\nvar XIPH_LACING = 1\nvar EBML_LACING = 3\nvar FIXED_SIZE_LACING = 2\n\nmodule.exports = function (buffer) {\n var block = {}\n var reader = new BufferReader(buffer)\n\n block.trackNumber = reader.nextUIntV()\n block.timecode = reader.nextInt16BE()\n\n var flags = reader.nextUInt8()\n\n block.invisible = !!(flags & 0x8)\n\n // only valid for SimpleBlock\n block.keyframe = !!(flags & 0x80)\n block.discardable = !!(flags & 0x1)\n\n var lacing = (flags & 0x6) >> 1\n\n block.frames = readLacedData(reader, lacing)\n\n return block\n}\n\nfunction readLacedData (reader, lacing) {\n if (!lacing) return [reader.nextBuffer()]\n\n var i, frameSize\n var frames = []\n var framesNum = reader.nextUInt8() + 1 // number of frames\n\n if (lacing === FIXED_SIZE_LACING) {\n // remaining data should be divisible by the number of frames\n if (reader.length % framesNum !== 0) throw new Error('Fixed-Size Lacing Error')\n\n frameSize = reader.length / framesNum\n for (i = 0; i < framesNum; i++) {\n frames.push(reader.nextBuffer(frameSize))\n }\n return frames\n }\n\n var frameSizes = []\n\n if (lacing === XIPH_LACING) {\n for (i = 0; i < framesNum - 1; i++) {\n var val\n frameSize = 0\n do {\n val = reader.nextUInt8()\n frameSize += val\n } while (val === 0xff)\n frameSizes.push(frameSize)\n }\n } else if (lacing === EBML_LACING) {\n // first frame\n frameSize = reader.nextUIntV()\n frameSizes.push(frameSize)\n\n // middle frames\n for (i = 1; i < framesNum - 1; i++) {\n frameSize += reader.nextIntV()\n frameSizes.push(frameSize)\n }\n }\n\n for (i = 0; i < framesNum - 1; i++) {\n frames.push(reader.nextBuffer(frameSizes[i]))\n }\n\n // last frame (remaining buffer)\n frames.push(reader.nextBuffer())\n\n return frames\n}\n","var vint = require('./vint')\n\nfunction BufferReader (buffer) {\n this.buffer = buffer\n this.offset = 0\n}\n\n// a super limited subset of the node buffer API\nBufferReader.prototype.nextInt16BE = function () {\n var value = this.buffer.readInt16BE(this.offset)\n this.offset += 2\n return value\n}\n\nBufferReader.prototype.nextUInt8 = function () {\n var value = this.buffer.readUInt8(this.offset)\n this.offset += 1\n return value\n}\n\n// EBML variable sized integers\nBufferReader.prototype.nextUIntV = function () {\n var v = vint(this.buffer, this.offset)\n this.offset += v.length\n return v.value\n}\n\nBufferReader.prototype.nextIntV = function () {\n var v = vint(this.buffer, this.offset, true)\n this.offset += v.length\n return v.value\n}\n\n// buffer slice\nBufferReader.prototype.nextBuffer = function (length) {\n var buffer = length\n ? this.buffer.slice(this.offset, this.offset + length)\n : this.buffer.slice(this.offset)\n this.offset += length || this.length\n return buffer\n}\n\n// remaining bytes to read\nObject.defineProperty(BufferReader.prototype, 'length', {\n get: function () { return this.buffer.length - this.offset }\n})\n\nmodule.exports = BufferReader\n","// https://github.com/themasch/node-ebml/blob/master/lib/ebml/tools.js\nmodule.exports = function (buffer, start, signed) {\n start = start || 0\n for (var length = 1; length <= 8; length++) {\n if (buffer[start] >= Math.pow(2, 8 - length)) {\n break\n }\n }\n if (length > 8) {\n throw new Error('Unrepresentable length: ' + length + ' ' +\n buffer.toString('hex', start, start + length))\n }\n if (start + length > buffer.length) {\n return null\n }\n var i\n var value = buffer[start] & (1 << (8 - length)) - 1\n for (i = 1; i < length; i++) {\n if (i === 7) {\n if (value >= Math.pow(2, 53 - 8) && buffer[start + 7] > 0) {\n return {\n length: length,\n value: -1\n }\n }\n }\n value *= Math.pow(2, 8)\n value += buffer[start + i]\n }\n if (signed) {\n value -= Math.pow(2, length * 7 - 1) - 1\n }\n return {\n length: length,\n value: value\n }\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","// int64-buffer.js\n\n/*jshint -W018 */ // Confusing use of '!'.\n/*jshint -W030 */ // Expected an assignment or function call and instead saw an expression.\n/*jshint -W093 */ // Did you mean to return a conditional instead of an assignment?\n\nvar Uint64BE, Int64BE, Uint64LE, Int64LE;\n\n!function(exports) {\n // constants\n\n var UNDEFINED = \"undefined\";\n var BUFFER = (UNDEFINED !== typeof Buffer) && Buffer;\n var UINT8ARRAY = (UNDEFINED !== typeof Uint8Array) && Uint8Array;\n var ARRAYBUFFER = (UNDEFINED !== typeof ArrayBuffer) && ArrayBuffer;\n var ZERO = [0, 0, 0, 0, 0, 0, 0, 0];\n var isArray = Array.isArray || _isArray;\n var BIT32 = 4294967296;\n var BIT24 = 16777216;\n\n // storage class\n\n var storage; // Array;\n\n // generate classes\n\n Uint64BE = factory(\"Uint64BE\", true, true);\n Int64BE = factory(\"Int64BE\", true, false);\n Uint64LE = factory(\"Uint64LE\", false, true);\n Int64LE = factory(\"Int64LE\", false, false);\n\n // class factory\n\n function factory(name, bigendian, unsigned) {\n var posH = bigendian ? 0 : 4;\n var posL = bigendian ? 4 : 0;\n var pos0 = bigendian ? 0 : 3;\n var pos1 = bigendian ? 1 : 2;\n var pos2 = bigendian ? 2 : 1;\n var pos3 = bigendian ? 3 : 0;\n var fromPositive = bigendian ? fromPositiveBE : fromPositiveLE;\n var fromNegative = bigendian ? fromNegativeBE : fromNegativeLE;\n var proto = Int64.prototype;\n var isName = \"is\" + name;\n var _isInt64 = \"_\" + isName;\n\n // properties\n proto.buffer = void 0;\n proto.offset = 0;\n proto[_isInt64] = true;\n\n // methods\n proto.toNumber = toNumber;\n proto.toString = toString;\n proto.toJSON = toNumber;\n proto.toArray = toArray;\n\n // add .toBuffer() method only when Buffer available\n if (BUFFER) proto.toBuffer = toBuffer;\n\n // add .toArrayBuffer() method only when Uint8Array available\n if (UINT8ARRAY) proto.toArrayBuffer = toArrayBuffer;\n\n // isUint64BE, isInt64BE\n Int64[isName] = isInt64;\n\n // CommonJS\n exports[name] = Int64;\n\n return Int64;\n\n // constructor\n function Int64(buffer, offset, value, raddix) {\n if (!(this instanceof Int64)) return new Int64(buffer, offset, value, raddix);\n return init(this, buffer, offset, value, raddix);\n }\n\n // isUint64BE, isInt64BE\n function isInt64(b) {\n return !!(b && b[_isInt64]);\n }\n\n // initializer\n function init(that, buffer, offset, value, raddix) {\n if (UINT8ARRAY && ARRAYBUFFER) {\n if (buffer instanceof ARRAYBUFFER) buffer = new UINT8ARRAY(buffer);\n if (value instanceof ARRAYBUFFER) value = new UINT8ARRAY(value);\n }\n\n // Int64BE() style\n if (!buffer && !offset && !value && !storage) {\n // shortcut to initialize with zero\n that.buffer = newArray(ZERO, 0);\n return;\n }\n\n // Int64BE(value, raddix) style\n if (!isValidBuffer(buffer, offset)) {\n var _storage = storage || Array;\n raddix = offset;\n value = buffer;\n offset = 0;\n buffer = (storage === BUFFER) ? BUFFER.alloc(8) : new _storage(8);\n }\n\n that.buffer = buffer;\n that.offset = offset |= 0;\n\n // Int64BE(buffer, offset) style\n if (UNDEFINED === typeof value) return;\n\n // Int64BE(buffer, offset, value, raddix) style\n if (\"string\" === typeof value) {\n fromString(buffer, offset, value, raddix || 10);\n } else if (isValidBuffer(value, raddix)) {\n fromArray(buffer, offset, value, raddix);\n } else if (\"number\" === typeof raddix) {\n writeInt32(buffer, offset + posH, value); // high\n writeInt32(buffer, offset + posL, raddix); // low\n } else if (value > 0) {\n fromPositive(buffer, offset, value); // positive\n } else if (value < 0) {\n fromNegative(buffer, offset, value); // negative\n } else {\n fromArray(buffer, offset, ZERO, 0); // zero, NaN and others\n }\n }\n\n function fromString(buffer, offset, str, raddix) {\n var pos = 0;\n var len = str.length;\n var high = 0;\n var low = 0;\n if (str[0] === \"-\") pos++;\n var sign = pos;\n while (pos < len) {\n var chr = parseInt(str[pos++], raddix);\n if (!(chr >= 0)) break; // NaN\n low = low * raddix + chr;\n high = high * raddix + Math.floor(low / BIT32);\n low %= BIT32;\n }\n if (sign) {\n high = ~high;\n if (low) {\n low = BIT32 - low;\n } else {\n high++;\n }\n }\n writeInt32(buffer, offset + posH, high);\n writeInt32(buffer, offset + posL, low);\n }\n\n function toNumber() {\n var buffer = this.buffer;\n var offset = this.offset;\n var high = readInt32(buffer, offset + posH);\n var low = readInt32(buffer, offset + posL);\n if (!unsigned) high |= 0; // a trick to get signed\n return high ? (high * BIT32 + low) : low;\n }\n\n function toString(radix) {\n var buffer = this.buffer;\n var offset = this.offset;\n var high = readInt32(buffer, offset + posH);\n var low = readInt32(buffer, offset + posL);\n var str = \"\";\n var sign = !unsigned && (high & 0x80000000);\n if (sign) {\n high = ~high;\n low = BIT32 - low;\n }\n radix = radix || 10;\n while (1) {\n var mod = (high % radix) * BIT32 + low;\n high = Math.floor(high / radix);\n low = Math.floor(mod / radix);\n str = (mod % radix).toString(radix) + str;\n if (!high && !low) break;\n }\n if (sign) {\n str = \"-\" + str;\n }\n return str;\n }\n\n function writeInt32(buffer, offset, value) {\n buffer[offset + pos3] = value & 255;\n value = value >> 8;\n buffer[offset + pos2] = value & 255;\n value = value >> 8;\n buffer[offset + pos1] = value & 255;\n value = value >> 8;\n buffer[offset + pos0] = value & 255;\n }\n\n function readInt32(buffer, offset) {\n return (buffer[offset + pos0] * BIT24) +\n (buffer[offset + pos1] << 16) +\n (buffer[offset + pos2] << 8) +\n buffer[offset + pos3];\n }\n }\n\n function toArray(raw) {\n var buffer = this.buffer;\n var offset = this.offset;\n storage = null; // Array\n\n if (raw !== false && isArray(buffer)) {\n return (buffer.length === 8) ? buffer : buffer.slice(offset, offset + 8);\n }\n\n return newArray(buffer, offset);\n }\n\n function toBuffer(raw) {\n var buffer = this.buffer;\n var offset = this.offset;\n storage = BUFFER;\n\n if (raw !== false && BUFFER.isBuffer(buffer)) {\n return (buffer.length === 8) ? buffer : buffer.slice(offset, offset + 8);\n }\n\n // Buffer.from(arraybuffer) available since Node v4.5.0\n // https://nodejs.org/en/blog/release/v4.5.0/\n return BUFFER.from(toArrayBuffer.call(this, raw));\n }\n\n function toArrayBuffer(raw) {\n var buffer = this.buffer;\n var offset = this.offset;\n var arrbuf = buffer.buffer;\n storage = UINT8ARRAY;\n\n // arrbuf.slice() ignores buffer.offset until Node v8.0.0\n if (raw !== false && !buffer.offset && (arrbuf instanceof ARRAYBUFFER)) {\n return (arrbuf.byteLength === 8) ? arrbuf : arrbuf.slice(offset, offset + 8);\n }\n\n var dest = new UINT8ARRAY(8);\n fromArray(dest, 0, buffer, offset);\n return dest.buffer;\n }\n\n function isValidBuffer(buffer, offset) {\n var len = buffer && buffer.length;\n offset |= 0;\n return len && (offset + 8 <= len) && (\"string\" !== typeof buffer[offset]);\n }\n\n function fromArray(destbuf, destoff, srcbuf, srcoff) {\n destoff |= 0;\n srcoff |= 0;\n for (var i = 0; i < 8; i++) {\n destbuf[destoff++] = srcbuf[srcoff++] & 255;\n }\n }\n\n function newArray(buffer, offset) {\n return Array.prototype.slice.call(buffer, offset, offset + 8);\n }\n\n function fromPositiveBE(buffer, offset, value) {\n var pos = offset + 8;\n while (pos > offset) {\n buffer[--pos] = value & 255;\n value /= 256;\n }\n }\n\n function fromNegativeBE(buffer, offset, value) {\n var pos = offset + 8;\n value++;\n while (pos > offset) {\n buffer[--pos] = ((-value) & 255) ^ 255;\n value /= 256;\n }\n }\n\n function fromPositiveLE(buffer, offset, value) {\n var end = offset + 8;\n while (offset < end) {\n buffer[offset++] = value & 255;\n value /= 256;\n }\n }\n\n function fromNegativeLE(buffer, offset, value) {\n var end = offset + 8;\n value++;\n while (offset < end) {\n buffer[offset++] = ((-value) & 255) ^ 255;\n value /= 256;\n }\n }\n\n // https://github.com/retrofox/is-array\n function _isArray(val) {\n return !!val && \"[object Array]\" == Object.prototype.toString.call(val);\n }\n\n}(typeof exports === 'object' && typeof exports.nodeName !== 'string' ? exports : (this || {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar int64_buffer_1 = require(\"int64-buffer\");\nvar tools_1 = require(\"./tools\");\nvar tools = require(\"./tools\");\nvar ebmlID_1 = require(\"./ebmlID\");\nvar State;\n(function (State) {\n State[State[\"STATE_TAG\"] = 1] = \"STATE_TAG\";\n State[State[\"STATE_SIZE\"] = 2] = \"STATE_SIZE\";\n State[State[\"STATE_CONTENT\"] = 3] = \"STATE_CONTENT\";\n})(State || (State = {}));\nvar EBMLDecoder = /** @class */ (function () {\n function EBMLDecoder() {\n this._buffer = new tools_1.Buffer(0);\n this._tag_stack = [];\n this._state = State.STATE_TAG;\n this._cursor = 0;\n this._total = 0;\n this._schema = ebmlID_1.byEbmlID;\n this._result = [];\n }\n EBMLDecoder.prototype.decode = function (chunk) {\n this.readChunk(chunk);\n var diff = this._result;\n this._result = [];\n return diff;\n };\n EBMLDecoder.prototype.readChunk = function (chunk) {\n // 読みかけの(読めなかった) this._buffer と 新しい chunk を合わせて読み直す\n this._buffer = tools.concat([this._buffer, new tools_1.Buffer(chunk)]);\n while (this._cursor < this._buffer.length) {\n // console.log(this._cursor, this._total, this._tag_stack);\n if (this._state === State.STATE_TAG && !this.readTag()) {\n break;\n }\n if (this._state === State.STATE_SIZE && !this.readSize()) {\n break;\n }\n if (this._state === State.STATE_CONTENT && !this.readContent()) {\n break;\n }\n }\n };\n EBMLDecoder.prototype.getSchemaInfo = function (tagNum) {\n return this._schema[tagNum] || {\n name: \"unknown\",\n level: -1,\n type: \"unknown\",\n description: \"unknown\"\n };\n };\n /**\n * vint された parsing tag\n * @return - return false when waiting for more data\n */\n EBMLDecoder.prototype.readTag = function () {\n // tag.length が buffer の外にある\n if (this._cursor >= this._buffer.length) {\n return false;\n }\n // read ebml id vint without first byte\n var tag = (0, tools_1.readVint)(this._buffer, this._cursor);\n // tag が読めなかった\n if (tag == null) {\n return false;\n }\n // >>>>>>>>>\n // tag 識別子\n //const tagStr = this._buffer.toString(\"hex\", this._cursor, this._cursor + tag.length);\n //const tagNum = parseInt(tagStr, 16);\n // 上と等価\n var buf = this._buffer.slice(this._cursor, this._cursor + tag.length);\n var tagNum = buf.reduce(function (o, v, i, arr) { return o + v * Math.pow(16, 2 * (arr.length - 1 - i)); }, 0);\n var schema = this.getSchemaInfo(tagNum);\n var tagObj = {\n EBML_ID: tagNum.toString(16),\n schema: schema,\n type: schema.type,\n name: schema.name,\n level: schema.level,\n tagStart: this._total,\n tagEnd: this._total + tag.length,\n sizeStart: this._total + tag.length,\n sizeEnd: null,\n dataStart: null,\n dataEnd: null,\n dataSize: null,\n data: null\n };\n // | tag: vint | size: vint | data: Buffer(size) |\n this._tag_stack.push(tagObj);\n // <<<<<<<<\n // ポインタを進める\n this._cursor += tag.length;\n this._total += tag.length;\n // 読み込み状態変更\n this._state = State.STATE_SIZE;\n return true;\n };\n /**\n * vint された現在のタグの内容の大きさを読み込む\n * @return - return false when waiting for more data\n */\n EBMLDecoder.prototype.readSize = function () {\n // tag.length が buffer の外にある\n if (this._cursor >= this._buffer.length) {\n return false;\n }\n // read ebml datasize vint without first byte\n var size = (0, tools_1.readVint)(this._buffer, this._cursor);\n // まだ読めない\n if (size == null) {\n return false;\n }\n // >>>>>>>>>\n // current tag の data size 決定\n var tagObj = this._tag_stack[this._tag_stack.length - 1];\n tagObj.sizeEnd = tagObj.sizeStart + size.length;\n tagObj.dataStart = tagObj.sizeEnd;\n tagObj.dataSize = size.value;\n if (size.value === -1) {\n // unknown size\n tagObj.dataEnd = -1;\n if (tagObj.type === \"m\") {\n tagObj.unknownSize = true;\n }\n }\n else {\n tagObj.dataEnd = tagObj.sizeEnd + size.value;\n }\n // <<<<<<<<\n // ポインタを進める\n this._cursor += size.length;\n this._total += size.length;\n this._state = State.STATE_CONTENT;\n return true;\n };\n /**\n * データ読み込み\n */\n EBMLDecoder.prototype.readContent = function () {\n var tagObj = this._tag_stack[this._tag_stack.length - 1];\n // master element は子要素を持つので生データはない\n if (tagObj.type === 'm') {\n // console.log('content should be tags');\n tagObj.isEnd = false;\n this._result.push(tagObj);\n this._state = State.STATE_TAG;\n // この Mastert Element は空要素か\n if (tagObj.dataSize === 0) {\n // 即座に終了タグを追加\n var elm = Object.assign({}, tagObj, { isEnd: true });\n this._result.push(elm);\n this._tag_stack.pop(); // スタックからこのタグを捨てる\n }\n return true;\n }\n // waiting for more data\n if (this._buffer.length < this._cursor + tagObj.dataSize) {\n return false;\n }\n // タグの中身の生データ\n var data = this._buffer.slice(this._cursor, this._cursor + tagObj.dataSize);\n // 読み終わったバッファを捨てて読み込んでいる部分のバッファのみ残す\n this._buffer = this._buffer.slice(this._cursor + tagObj.dataSize);\n tagObj.data = data;\n // >>>>>>>>>\n switch (tagObj.type) {\n //case \"m\": break;\n // Master-Element - contains other EBML sub-elements of the next lower level\n case \"u\":\n tagObj.value = data.readUIntBE(0, data.length);\n break;\n // Unsigned Integer - Big-endian, any size from 1 to 8 octets\n case \"i\":\n tagObj.value = data.readIntBE(0, data.length);\n break;\n // Signed Integer - Big-endian, any size from 1 to 8 octets\n case \"f\":\n tagObj.value = tagObj.dataSize === 4 ? data.readFloatBE(0) :\n tagObj.dataSize === 8 ? data.readDoubleBE(0) :\n (console.warn(\"cannot read \".concat(tagObj.dataSize, \" octets float. failback to 0\")), 0);\n break;\n // Float - Big-endian, defined for 4 and 8 octets (32, 64 bits)\n case \"s\":\n tagObj.value = data.toString(\"ascii\");\n break; // ascii\n // Printable ASCII (0x20 to 0x7E), zero-padded when needed\n case \"8\":\n tagObj.value = data.toString(\"utf8\");\n break;\n // Unicode string, zero padded when needed (RFC 2279)\n case \"b\":\n tagObj.value = data;\n break;\n // Binary - not interpreted by the parser\n case \"d\":\n tagObj.value = (0, tools_1.convertEBMLDateToJSDate)(new int64_buffer_1.Int64BE(data).toNumber());\n break;\n // nano second; Date.UTC(2001,1,1,0,0,0,0) === 980985600000\n // Date - signed 8 octets integer in nanoseconds with 0 indicating \n // the precise beginning of the millennium (at 2001-01-01T00:00:00,000000000 UTC)\n }\n if (tagObj.value === null) {\n throw new Error(\"unknown tag type:\" + tagObj.type);\n }\n this._result.push(tagObj);\n // <<<<<<<<\n // ポインタを進める\n this._total += tagObj.dataSize;\n // タグ待ちモードに変更\n this._state = State.STATE_TAG;\n this._cursor = 0;\n this._tag_stack.pop(); // remove the object from the stack\n while (this._tag_stack.length > 0) {\n var topEle = this._tag_stack[this._tag_stack.length - 1];\n // 親が不定長サイズなので閉じタグは期待できない\n if (topEle.dataEnd < 0) {\n this._tag_stack.pop(); // 親タグを捨てる\n return true;\n }\n // 閉じタグの来るべき場所まで来たかどうか\n if (this._total < topEle.dataEnd) {\n break;\n }\n // 閉じタグを挿入すべきタイミングが来た\n if (topEle.type !== \"m\") {\n throw new Error(\"parent element is not master element\");\n }\n var elm = Object.assign({}, topEle, { isEnd: true });\n this._result.push(elm);\n this._tag_stack.pop();\n }\n return true;\n };\n return EBMLDecoder;\n}());\nexports.default = EBMLDecoder;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tools = require(\"./tools\");\nvar tools_1 = require(\"./tools\");\nvar ebmlID_1 = require(\"./ebmlID\");\nvar EBMLEncoder = /** @class */ (function () {\n function EBMLEncoder() {\n this._schema = ebmlID_1.byEbmlID;\n this._buffers = [];\n this._stack = [];\n }\n EBMLEncoder.prototype.encode = function (elms) {\n var _this = this;\n return tools.concat(elms.reduce(function (lst, elm) {\n return lst.concat(_this.encodeChunk(elm));\n }, [])).buffer;\n };\n EBMLEncoder.prototype.encodeChunk = function (elm) {\n if (elm.type === \"m\") {\n if (!elm.isEnd) {\n this.startTag(elm);\n }\n else {\n this.endTag(elm);\n }\n }\n else {\n // ensure that we are working with an internal `Buffer` instance\n elm.data = tools_1.Buffer.from(elm.data);\n this.writeTag(elm);\n }\n return this.flush();\n };\n EBMLEncoder.prototype.flush = function () {\n var ret = this._buffers;\n this._buffers = [];\n return ret;\n };\n EBMLEncoder.prototype.getSchemaInfo = function (tagName) {\n var tagNums = Object.keys(this._schema).map(Number);\n for (var i = 0; i < tagNums.length; i++) {\n var tagNum = tagNums[i];\n if (this._schema[tagNum].name === tagName) {\n return new tools_1.Buffer(tagNum.toString(16), 'hex');\n }\n }\n return null;\n };\n EBMLEncoder.prototype.writeTag = function (elm) {\n var tagName = elm.name;\n var tagId = this.getSchemaInfo(tagName);\n var tagData = elm.data;\n if (tagId == null) {\n throw new Error('No schema entry found for ' + tagName);\n }\n var data = tools.encodeTag(tagId, tagData);\n /**\n * 親要素が閉じタグあり(isEnd)なら閉じタグが来るまで待つ(children queに入る)\n */\n if (this._stack.length > 0) {\n var last = this._stack[this._stack.length - 1];\n last.children.push({\n tagId: tagId,\n elm: elm,\n children: [],\n data: data\n });\n return;\n }\n this._buffers = this._buffers.concat(data);\n return;\n };\n EBMLEncoder.prototype.startTag = function (elm) {\n var tagName = elm.name;\n var tagId = this.getSchemaInfo(tagName);\n if (tagId == null) {\n throw new Error('No schema entry found for ' + tagName);\n }\n /**\n * 閉じタグ不定長の場合はスタックに積まずに即時バッファに書き込む\n */\n if (elm.unknownSize) {\n var data = tools.encodeTag(tagId, new tools_1.Buffer(0), elm.unknownSize);\n this._buffers = this._buffers.concat(data);\n return;\n }\n var tag = {\n tagId: tagId,\n elm: elm,\n children: [],\n data: null\n };\n if (this._stack.length > 0) {\n this._stack[this._stack.length - 1].children.push(tag);\n }\n this._stack.push(tag);\n };\n EBMLEncoder.prototype.endTag = function (elm) {\n var tagName = elm.name;\n var tag = this._stack.pop();\n if (tag == null) {\n throw new Error(\"EBML structure is broken\");\n }\n if (tag.elm.name !== elm.name) {\n throw new Error(\"EBML structure is broken\");\n }\n var childTagDataBuffers = tag.children.reduce(function (lst, child) {\n if (child.data === null) {\n throw new Error(\"EBML structure is broken\");\n }\n return lst.concat(child.data);\n }, []);\n var childTagDataBuffer = tools.concat(childTagDataBuffers);\n if (tag.elm.type === \"m\") {\n tag.data = tools.encodeTag(tag.tagId, childTagDataBuffer, tag.elm.unknownSize);\n }\n else {\n tag.data = tools.encodeTag(tag.tagId, childTagDataBuffer);\n }\n if (this._stack.length < 1) {\n this._buffers = this._buffers.concat(tag.data);\n }\n };\n return EBMLEncoder;\n}());\nexports.default = EBMLEncoder;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar events_1 = require(\"events\");\nvar tools = require(\"./tools\");\n/**\n * This is an informal code for reference.\n * EBMLReader is a class for getting information to enable seeking Webm recorded by MediaRecorder.\n * So please do not use for regular WebM files.\n */\nvar EBMLReader = /** @class */ (function (_super) {\n __extends(EBMLReader, _super);\n function EBMLReader() {\n var _this = _super.call(this) || this;\n _this.logGroup = \"\";\n _this.hasLoggingStarted = false;\n _this.metadataloaded = false;\n _this.chunks = [];\n _this.stack = [];\n _this.segmentOffset = 0;\n _this.last2SimpleBlockVideoTrackTimecode = [0, 0];\n _this.last2SimpleBlockAudioTrackTimecode = [0, 0];\n _this.lastClusterTimecode = 0;\n _this.lastClusterPosition = 0;\n _this.timecodeScale = 1000000; // webm default TimecodeScale is 1ms\n _this.metadataSize = 0;\n _this.metadatas = [];\n _this.cues = [];\n _this.firstVideoBlockRead = false;\n _this.firstAudioBlockRead = false;\n _this.currentTrack = { TrackNumber: -1, TrackType: -1, DefaultDuration: null, CodecDelay: null };\n _this.trackTypes = [];\n _this.trackDefaultDuration = [];\n _this.trackCodecDelay = [];\n _this.trackInfo = { type: \"nothing\" };\n _this.ended = false;\n _this.logging = false;\n _this.use_duration_every_simpleblock = false;\n _this.use_webp = false;\n _this.use_segment_info = true;\n _this.drop_default_duration = true;\n return _this;\n }\n /**\n * emit final state.\n */\n EBMLReader.prototype.stop = function () {\n this.ended = true;\n this.emit_segment_info();\n // clean up any unclosed Master Elements at the end of the stream.\n while (this.stack.length) {\n this.stack.pop();\n if (this.logging) {\n console.groupEnd();\n }\n }\n // close main group if set, logging is enabled, and has actually logged anything.\n if (this.logging && this.hasLoggingStarted && this.logGroup) {\n console.groupEnd();\n }\n };\n /**\n * emit chunk info\n */\n EBMLReader.prototype.emit_segment_info = function () {\n var data = this.chunks;\n this.chunks = [];\n if (!this.metadataloaded) {\n this.metadataloaded = true;\n this.metadatas = data;\n var videoTrackNum = this.trackTypes.indexOf(1); // find first video track\n var audioTrackNum = this.trackTypes.indexOf(2); // find first audio track\n this.trackInfo = videoTrackNum >= 0 && audioTrackNum >= 0 ? { type: \"both\", trackNumber: videoTrackNum }\n : videoTrackNum >= 0 ? { type: \"video\", trackNumber: videoTrackNum }\n : audioTrackNum >= 0 ? { type: \"audio\", trackNumber: audioTrackNum }\n : { type: \"nothing\" };\n if (!this.use_segment_info) {\n return;\n }\n this.emit(\"metadata\", { data: data, metadataSize: this.metadataSize });\n }\n else {\n if (!this.use_segment_info) {\n return;\n }\n var timecode = this.lastClusterTimecode;\n var duration = this.duration;\n var timecodeScale = this.timecodeScale;\n this.emit(\"cluster\", { timecode: timecode, data: data });\n this.emit(\"duration\", { timecodeScale: timecodeScale, duration: duration });\n }\n };\n EBMLReader.prototype.read = function (elm) {\n var _this = this;\n var drop = false;\n if (this.ended) {\n // reader is finished\n return;\n }\n if (elm.type === \"m\") {\n // 閉じタグの自動挿入\n if (elm.isEnd) {\n this.stack.pop();\n }\n else {\n var parent_1 = this.stack[this.stack.length - 1];\n if (parent_1 != null && parent_1.level >= elm.level) {\n // 閉じタグなしでレベルが下がったら閉じタグを挿入\n this.stack.pop();\n // From http://w3c.github.io/media-source/webm-byte-stream-format.html#webm-media-segments\n // This fixes logging for webm streams with Cluster of unknown length and no Cluster closing elements.\n if (this.logging) {\n console.groupEnd();\n }\n parent_1.dataEnd = elm.dataEnd;\n parent_1.dataSize = elm.dataEnd - parent_1.dataStart;\n parent_1.unknownSize = false;\n var o = Object.assign({}, parent_1, { name: parent_1.name, type: parent_1.type, isEnd: true });\n this.chunks.push(o);\n }\n this.stack.push(elm);\n }\n }\n if (elm.type === \"m\" && elm.name == \"Segment\") {\n if (this.segmentOffset != 0) {\n console.warn(\"Multiple segments detected!\");\n }\n this.segmentOffset = elm.dataStart;\n this.emit(\"segment_offset\", this.segmentOffset);\n }\n else if (elm.type === \"b\" && elm.name === \"SimpleBlock\") {\n var _a = tools.ebmlBlock(elm.data), timecode = _a.timecode, trackNumber = _a.trackNumber, frames_1 = _a.frames;\n if (this.trackTypes[trackNumber] === 1) { // trackType === 1 => video track\n if (!this.firstVideoBlockRead) {\n this.firstVideoBlockRead = true;\n if (this.trackInfo.type === \"both\" || this.trackInfo.type === \"video\") {\n var CueTime = this.lastClusterTimecode + timecode;\n this.cues.push({ CueTrack: trackNumber, CueClusterPosition: this.lastClusterPosition, CueTime: CueTime });\n this.emit(\"cue_info\", { CueTrack: trackNumber, CueClusterPosition: this.lastClusterPosition, CueTime: this.lastClusterTimecode });\n this.emit(\"cue\", { CueTrack: trackNumber, CueClusterPosition: this.lastClusterPosition, CueTime: CueTime });\n }\n }\n this.last2SimpleBlockVideoTrackTimecode = [this.last2SimpleBlockVideoTrackTimecode[1], timecode];\n }\n else if (this.trackTypes[trackNumber] === 2) { // trackType === 2 => audio track\n if (!this.firstAudioBlockRead) {\n this.firstAudioBlockRead = true;\n if (this.trackInfo.type === \"audio\") {\n var CueTime = this.lastClusterTimecode + timecode;\n this.cues.push({ CueTrack: trackNumber, CueClusterPosition: this.lastClusterPosition, CueTime: CueTime });\n this.emit(\"cue_info\", { CueTrack: trackNumber, CueClusterPosition: this.lastClusterPosition, CueTime: this.lastClusterTimecode });\n this.emit(\"cue\", { CueTrack: trackNumber, CueClusterPosition: this.lastClusterPosition, CueTime: CueTime });\n }\n }\n this.last2SimpleBlockAudioTrackTimecode = [this.last2SimpleBlockAudioTrackTimecode[1], timecode];\n }\n if (this.use_duration_every_simpleblock) {\n this.emit(\"duration\", { timecodeScale: this.timecodeScale, duration: this.duration });\n }\n if (this.use_webp) {\n frames_1.forEach(function (frame) {\n var startcode = frame.slice(3, 6).toString(\"hex\");\n if (startcode !== \"9d012a\") {\n return;\n }\n ; // VP8 の場合\n var webpBuf = tools.VP8BitStreamToRiffWebPBuffer(frame);\n var webp = new Blob([webpBuf], { type: \"image/webp\" });\n var currentTime = _this.duration;\n _this.emit(\"webp\", { currentTime: currentTime, webp: webp });\n });\n }\n }\n else if (elm.type === \"m\" && elm.name === \"Cluster\" && elm.isEnd === false) {\n this.firstVideoBlockRead = false;\n this.firstAudioBlockRead = false;\n this.emit_segment_info();\n this.emit(\"cluster_ptr\", elm.tagStart);\n this.lastClusterPosition = elm.tagStart;\n }\n else if (elm.type === \"u\" && elm.name === \"Timecode\") {\n this.lastClusterTimecode = elm.value;\n }\n else if (elm.type === \"u\" && elm.name === \"TimecodeScale\") {\n this.timecodeScale = elm.value;\n }\n else if (elm.type === \"m\" && elm.name === \"TrackEntry\") {\n if (elm.isEnd) {\n this.trackTypes[this.currentTrack.TrackNumber] = this.currentTrack.TrackType;\n this.trackDefaultDuration[this.currentTrack.TrackNumber] = this.currentTrack.DefaultDuration;\n this.trackCodecDelay[this.currentTrack.TrackNumber] = this.currentTrack.CodecDelay;\n }\n else {\n this.currentTrack = { TrackNumber: -1, TrackType: -1, DefaultDuration: null, CodecDelay: null };\n }\n }\n else if (elm.type === \"u\" && elm.name === \"TrackType\") {\n this.currentTrack.TrackType = elm.value;\n }\n else if (elm.type === \"u\" && elm.name === \"TrackNumber\") {\n this.currentTrack.TrackNumber = elm.value;\n }\n else if (elm.type === \"u\" && elm.name === \"CodecDelay\") {\n this.currentTrack.CodecDelay = elm.value;\n }\n else if (elm.type === \"u\" && elm.name === \"DefaultDuration\") {\n // media source api は DefaultDuration を計算するとバグる。\n // https://bugs.chromium.org/p/chromium/issues/detail?id=606000#c22\n // chrome 58 ではこれを回避するために DefaultDuration 要素を抜き取った。\n // chrome 58 以前でもこのタグを抜き取ることで回避できる\n if (this.drop_default_duration) {\n console.warn(\"DefaultDuration detected!, remove it\");\n drop = true;\n }\n else {\n this.currentTrack.DefaultDuration = elm.value;\n }\n }\n else if (elm.name === \"unknown\") {\n console.warn(elm);\n }\n if (!this.metadataloaded && elm.dataEnd > 0) {\n this.metadataSize = elm.dataEnd;\n }\n if (!drop) {\n this.chunks.push(elm);\n }\n if (this.logging) {\n this.put(elm);\n }\n };\n Object.defineProperty(EBMLReader.prototype, \"duration\", {\n /**\n * DefaultDuration が定義されている場合は最後のフレームのdurationも考慮する\n * 単位 timecodeScale\n *\n * !!! if you need duration with seconds !!!\n * ```js\n * const nanosec = reader.duration * reader.timecodeScale;\n * const sec = nanosec / 1000 / 1000 / 1000;\n * ```\n */\n get: function () {\n if (this.trackInfo.type === \"nothing\") {\n console.warn(\"no video, no audio track\");\n return 0;\n }\n // defaultDuration は 生の nano sec\n var defaultDuration = 0;\n // nanoseconds\n var codecDelay = 0;\n var lastTimecode = 0;\n var _defaultDuration = this.trackDefaultDuration[this.trackInfo.trackNumber];\n if (typeof _defaultDuration === \"number\") {\n defaultDuration = _defaultDuration;\n }\n else {\n // https://bugs.chromium.org/p/chromium/issues/detail?id=606000#c22\n // default duration がないときに使う delta\n if (this.trackInfo.type === \"both\") {\n if (this.last2SimpleBlockAudioTrackTimecode[1] > this.last2SimpleBlockVideoTrackTimecode[1]) {\n // audio diff\n defaultDuration = (this.last2SimpleBlockAudioTrackTimecode[1] - this.last2SimpleBlockAudioTrackTimecode[0]) * this.timecodeScale;\n // audio delay\n var delay = this.trackCodecDelay[this.trackTypes.indexOf(2)]; // 2 => audio\n if (typeof delay === \"number\") {\n codecDelay = delay;\n }\n // audio timecode\n lastTimecode = this.last2SimpleBlockAudioTrackTimecode[1];\n }\n else {\n // video diff\n defaultDuration = (this.last2SimpleBlockVideoTrackTimecode[1] - this.last2SimpleBlockVideoTrackTimecode[0]) * this.timecodeScale;\n // video delay\n var delay = this.trackCodecDelay[this.trackTypes.indexOf(1)]; // 1 => video\n if (typeof delay === \"number\") {\n codecDelay = delay;\n }\n // video timecode\n lastTimecode = this.last2SimpleBlockVideoTrackTimecode[1];\n }\n }\n else if (this.trackInfo.type === \"video\") {\n defaultDuration = (this.last2SimpleBlockVideoTrackTimecode[1] - this.last2SimpleBlockVideoTrackTimecode[0]) * this.timecodeScale;\n var delay = this.trackCodecDelay[this.trackInfo.trackNumber]; // 2 => audio\n if (typeof delay === \"number\") {\n codecDelay = delay;\n }\n lastTimecode = this.last2SimpleBlockVideoTrackTimecode[1];\n }\n else if (this.trackInfo.type === \"audio\") {\n defaultDuration = (this.last2SimpleBlockAudioTrackTimecode[1] - this.last2SimpleBlockAudioTrackTimecode[0]) * this.timecodeScale;\n var delay = this.trackCodecDelay[this.trackInfo.trackNumber]; // 1 => video\n if (typeof delay === \"number\") {\n codecDelay = delay;\n }\n lastTimecode = this.last2SimpleBlockAudioTrackTimecode[1];\n } // else { not reached }\n }\n // convert to timecodescale\n var duration_nanosec = ((this.lastClusterTimecode + lastTimecode) * this.timecodeScale) + defaultDuration - codecDelay;\n var duration = duration_nanosec / this.timecodeScale;\n return Math.floor(duration);\n },\n enumerable: false,\n configurable: true\n });\n EBMLReader.prototype.addListener = function (event, listener) {\n return _super.prototype.addListener.call(this, event, listener);\n };\n EBMLReader.prototype.put = function (elm) {\n if (!this.hasLoggingStarted) {\n this.hasLoggingStarted = true;\n if (this.logging && this.logGroup) {\n console.groupCollapsed(this.logGroup);\n }\n }\n if (elm.type === \"m\") {\n if (elm.isEnd) {\n console.groupEnd();\n }\n else {\n console.group(elm.name + \":\" + elm.tagStart);\n }\n }\n else if (elm.type === \"b\") {\n // for debug\n //if(elm.name === \"SimpleBlock\"){\n //const o = EBML.tools.ebmlBlock(elm.value);\n //console.log(elm.name, elm.type, o.trackNumber, o.timecode);\n //}else{\n console.log(elm.name, elm.type);\n //}\n }\n else {\n console.log(elm.name, elm.tagStart, elm.type, elm.value);\n }\n };\n return EBMLReader;\n}(events_1.EventEmitter));\nexports.default = EBMLReader;\n;\n;\n;\n;\n","\"use strict\";\n// source: https://www.matroska.org/technical/elements.html\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.byEbmlID = void 0;\nexports.byEbmlID = {\n 0x80: {\n name: \"ChapterDisplay\",\n level: 4,\n type: \"m\",\n multiple: true,\n minver: 1,\n webm: true,\n description: \"Contains all possible strings to use for the chapter display.\"\n },\n 0x83: {\n name: \"TrackType\",\n level: 3,\n type: \"u\",\n mandatory: true,\n minver: 1,\n range: \"1-254\",\n description: \"A set of track types coded on 8 bits (1: video, 2: audio, 3: complex, 0x10: logo, 0x11: subtitle, 0x12: buttons, 0x20: control).\"\n },\n 0x85: {\n name: \"ChapString\",\n cppname: \"ChapterString\",\n level: 5,\n type: \"8\",\n mandatory: true,\n minver: 1,\n webm: true,\n description: \"Contains the string to use as the chapter atom.\"\n },\n 0x86: {\n name: \"CodecID\",\n level: 3,\n type: \"s\",\n mandatory: true,\n minver: 1,\n description: \"An ID corresponding to the codec, see the codec page for more info.\"\n },\n 0x88: {\n name: \"FlagDefault\",\n cppname: \"TrackFlagDefault\",\n level: 3,\n type: \"u\",\n mandatory: true,\n minver: 1,\n \"default\": 1,\n range: \"0-1\",\n description: \"Set if that track (audio, video or subs) SHOULD be active if no language found matches the user preference. (1 bit)\"\n },\n 0x89: {\n name: \"ChapterTrackNumber\",\n level: 5,\n type: \"u\",\n mandatory: true,\n multiple: true,\n minver: 1,\n webm: false,\n range: \"not 0\",\n description: \"UID of the Track to apply this chapter too. In the absense of a control track, choosing this chapter will select the listed Tracks and deselect unlisted tracks. Absense of this element indicates that the Chapter should be applied to any currently used Tracks.\"\n },\n 0x91: {\n name: \"ChapterTimeStart\",\n level: 4,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: true,\n description: \"Timestamp of the start of Chapter (not scaled).\"\n },\n 0x92: {\n name: \"ChapterTimeEnd\",\n level: 4,\n type: \"u\",\n minver: 1,\n webm: false,\n description: \"Timestamp of the end of Chapter (timestamp excluded, not scaled).\"\n },\n 0x96: {\n name: \"CueRefTime\",\n level: 5,\n type: \"u\",\n mandatory: true,\n minver: 2,\n webm: false,\n description: \"Timestamp of the referenced Block.\"\n },\n 0x97: {\n name: \"CueRefCluster\",\n level: 5,\n type: \"u\",\n mandatory: true,\n webm: false,\n description: \"The Position of the Cluster containing the referenced Block.\"\n },\n 0x98: {\n name: \"ChapterFlagHidden\",\n level: 4,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n \"default\": 0,\n range: \"0-1\",\n description: \"If a chapter is hidden (1), it should not be available to the user interface (but still to Control Tracks; see flag notes). (1 bit)\"\n },\n 0x4254: {\n name: \"ContentCompAlgo\",\n level: 6,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n \"default\": 0,\n // \"br\": [ \"\", \"\", \"\", \"\" ],\n // \"del\": [ \"1 - bzlib,\", \"2 - lzo1x\" ],\n description: \"The compression algorithm used. Algorithms that have been specified so far are: 0 - zlib, 3 - Header Stripping\"\n },\n 0x4255: {\n name: \"ContentCompSettings\",\n level: 6,\n type: \"b\",\n minver: 1,\n webm: false,\n description: \"Settings that might be needed by the decompressor. For Header Stripping (ContentCompAlgo=3), the bytes that were removed from the beggining of each frames of the track.\"\n },\n 0x4282: {\n name: \"DocType\",\n level: 1,\n type: \"s\",\n mandatory: true,\n \"default\": \"matroska\",\n minver: 1,\n description: \"A string that describes the type of document that follows this EBML header. 'matroska' in our case or 'webm' for webm files.\"\n },\n 0x4285: {\n name: \"DocTypeReadVersion\",\n level: 1,\n type: \"u\",\n mandatory: true,\n \"default\": 1,\n minver: 1,\n description: \"The minimum DocType version an interpreter has to support to read this file.\"\n },\n 0x4286: {\n name: \"EBMLVersion\",\n level: 1,\n type: \"u\",\n mandatory: true,\n \"default\": 1,\n minver: 1,\n description: \"The version of EBML parser used to create the file.\"\n },\n 0x4287: {\n name: \"DocTypeVersion\",\n level: 1,\n type: \"u\",\n mandatory: true,\n \"default\": 1,\n minver: 1,\n description: \"The version of DocType interpreter used to create the file.\"\n },\n 0x4444: {\n name: \"SegmentFamily\",\n level: 2,\n type: \"b\",\n multiple: true,\n minver: 1,\n webm: false,\n bytesize: 16,\n description: \"A randomly generated unique ID that all segments related to each other must use (128 bits).\"\n },\n 0x4461: {\n name: \"DateUTC\",\n level: 2,\n type: \"d\",\n minver: 1,\n description: \"Date of the origin of timestamp (value 0), i.e. production date.\"\n },\n 0x4484: {\n name: \"TagDefault\",\n level: 4,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n \"default\": 1,\n range: \"0-1\",\n description: \"Indication to know if this is the default/original language to use for the given tag. (1 bit)\"\n },\n 0x4485: {\n name: \"TagBinary\",\n level: 4,\n type: \"b\",\n minver: 1,\n webm: false,\n description: \"The values of the Tag if it is binary. Note that this cannot be used in the same SimpleTag as TagString.\"\n },\n 0x4487: {\n name: \"TagString\",\n level: 4,\n type: \"8\",\n minver: 1,\n webm: false,\n description: \"The value of the Element.\"\n },\n 0x4489: {\n name: \"Duration\",\n level: 2,\n type: \"f\",\n minver: 1,\n range: \"> 0\",\n description: \"Duration of the segment (based on TimecodeScale).\"\n },\n 0x4598: {\n name: \"ChapterFlagEnabled\",\n level: 4,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n \"default\": 1,\n range: \"0-1\",\n description: \"Specify wether the chapter is enabled. It can be enabled/disabled by a Control Track. When disabled, the movie should skip all the content between the TimeStart and TimeEnd of this chapter (see flag notes). (1 bit)\"\n },\n 0x4660: {\n name: \"FileMimeType\",\n level: 3,\n type: \"s\",\n mandatory: true,\n minver: 1,\n webm: false,\n description: \"MIME type of the file.\"\n },\n 0x4661: {\n name: \"FileUsedStartTime\",\n level: 3,\n type: \"u\",\n divx: true,\n description: \"DivX font extension\"\n },\n 0x4662: {\n name: \"FileUsedEndTime\",\n level: 3,\n type: \"u\",\n divx: true,\n description: \"DivX font extension\"\n },\n 0x4675: {\n name: \"FileReferral\",\n level: 3,\n type: \"b\",\n webm: false,\n description: \"A binary value that a track/codec can refer to when the attachment is needed.\"\n },\n 0x5031: {\n name: \"ContentEncodingOrder\",\n level: 5,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n \"default\": 0,\n description: \"Tells when this modification was used during encoding/muxing starting with 0 and counting upwards. The decoder/demuxer has to start with the highest order number it finds and work its way down. This value has to be unique over all ContentEncodingOrder elements in the segment.\"\n },\n 0x5032: {\n name: \"ContentEncodingScope\",\n level: 5,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n \"default\": 1,\n range: \"not 0\",\n // \"br\": [ \"\", \"\", \"\" ],\n description: \"A bit field that describes which elements have been modified in this way. Values (big endian) can be OR'ed. Possible values: 1 - all frame contents, 2 - the track's private data, 4 - the next ContentEncoding (next ContentEncodingOrder. Either the data inside ContentCompression and/or ContentEncryption)\"\n },\n 0x5033: {\n name: \"ContentEncodingType\",\n level: 5,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n \"default\": 0,\n // \"br\": [ \"\", \"\" ],\n description: \"A value describing what kind of transformation has been done. Possible values: 0 - compression, 1 - encryption\"\n },\n 0x5034: {\n name: \"ContentCompression\",\n level: 5,\n type: \"m\",\n minver: 1,\n webm: false,\n description: \"Settings describing the compression used. Must be present if the value of ContentEncodingType is 0 and absent otherwise. Each block must be decompressable even if no previous block is available in order not to prevent seeking.\"\n },\n 0x5035: {\n name: \"ContentEncryption\",\n level: 5,\n type: \"m\",\n minver: 1,\n webm: false,\n description: \"Settings describing the encryption used. Must be present if the value of ContentEncodingType is 1 and absent otherwise.\"\n },\n 0x5378: {\n name: \"CueBlockNumber\",\n level: 4,\n type: \"u\",\n minver: 1,\n \"default\": 1,\n range: \"not 0\",\n description: \"Number of the Block in the specified Cluster.\"\n },\n 0x5654: {\n name: \"ChapterStringUID\",\n level: 4,\n type: \"8\",\n mandatory: false,\n minver: 3,\n webm: true,\n description: \"A unique string ID to identify the Chapter. Use for WebVTT cue identifier storage.\"\n },\n 0x5741: {\n name: \"WritingApp\",\n level: 2,\n type: \"8\",\n mandatory: true,\n minver: 1,\n description: \"Writing application (\\\"mkvmerge-0.3.3\\\").\"\n },\n 0x5854: {\n name: \"SilentTracks\",\n cppname: \"ClusterSilentTracks\",\n level: 2,\n type: \"m\",\n minver: 1,\n webm: false,\n description: \"The list of tracks that are not used in that part of the stream. It is useful when using overlay tracks on seeking. Then you should decide what track to use.\"\n },\n 0x6240: {\n name: \"ContentEncoding\",\n level: 4,\n type: \"m\",\n mandatory: true,\n multiple: true,\n minver: 1,\n webm: false,\n description: \"Settings for one content encoding like compression or encryption.\"\n },\n 0x6264: {\n name: \"BitDepth\",\n cppname: \"AudioBitDepth\",\n level: 4,\n type: \"u\",\n minver: 1,\n range: \"not 0\",\n description: \"Bits per sample, mostly used for PCM.\"\n },\n 0x6532: {\n name: \"SignedElement\",\n level: 3,\n type: \"b\",\n multiple: true,\n webm: false,\n description: \"An element ID whose data will be used to compute the signature.\"\n },\n 0x6624: {\n name: \"TrackTranslate\",\n level: 3,\n type: \"m\",\n multiple: true,\n minver: 1,\n webm: false,\n description: \"The track identification for the given Chapter Codec.\"\n },\n 0x6911: {\n name: \"ChapProcessCommand\",\n cppname: \"ChapterProcessCommand\",\n level: 5,\n type: \"m\",\n multiple: true,\n minver: 1,\n webm: false,\n description: \"Contains all the commands associated to the Atom.\"\n },\n 0x6922: {\n name: \"ChapProcessTime\",\n cppname: \"ChapterProcessTime\",\n level: 6,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n description: \"Defines when the process command should be handled (0: during the whole chapter, 1: before starting playback, 2: after playback of the chapter).\"\n },\n 0x6924: {\n name: \"ChapterTranslate\",\n level: 2,\n type: \"m\",\n multiple: true,\n minver: 1,\n webm: false,\n description: \"A tuple of corresponding ID used by chapter codecs to represent this segment.\"\n },\n 0x6933: {\n name: \"ChapProcessData\",\n cppname: \"ChapterProcessData\",\n level: 6,\n type: \"b\",\n mandatory: true,\n minver: 1,\n webm: false,\n description: \"Contains the command information. The data should be interpreted depending on the ChapProcessCodecID value. For ChapProcessCodecID = 1, the data correspond to the binary DVD cell pre/post commands.\"\n },\n 0x6944: {\n name: \"ChapProcess\",\n cppname: \"ChapterProcess\",\n level: 4,\n type: \"m\",\n multiple: true,\n minver: 1,\n webm: false,\n description: \"Contains all the commands associated to the Atom.\"\n },\n 0x6955: {\n name: \"ChapProcessCodecID\",\n cppname: \"ChapterProcessCodecID\",\n level: 5,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n \"default\": 0,\n description: \"Contains the type of the codec used for the processing. A value of 0 means native Matroska processing (to be defined), a value of 1 means the DVD command set is used. More codec IDs can be added later.\"\n },\n 0x7373: {\n name: \"Tag\",\n level: 2,\n type: \"m\",\n mandatory: true,\n multiple: true,\n minver: 1,\n webm: false,\n description: \"Element containing elements specific to Tracks/Chapters.\"\n },\n 0x7384: {\n name: \"SegmentFilename\",\n level: 2,\n type: \"8\",\n minver: 1,\n webm: false,\n description: \"A filename corresponding to this segment.\"\n },\n 0x7446: {\n name: \"AttachmentLink\",\n cppname: \"TrackAttachmentLink\",\n level: 3,\n type: \"u\",\n minver: 1,\n webm: false,\n range: \"not 0\",\n description: \"The UID of an attachment that is used by this codec.\"\n },\n 0x258688: {\n name: \"CodecName\",\n level: 3,\n type: \"8\",\n minver: 1,\n description: \"A human-readable string specifying the codec.\"\n },\n 0x18538067: {\n name: \"Segment\",\n level: \"0\",\n type: \"m\",\n mandatory: true,\n multiple: true,\n minver: 1,\n description: \"This element contains all other top-level (level 1) elements. Typically a Matroska file is composed of 1 segment.\"\n },\n 0x447a: {\n name: \"TagLanguage\",\n level: 4,\n type: \"s\",\n mandatory: true,\n minver: 1,\n webm: false,\n \"default\": \"und\",\n description: \"Specifies the language of the tag specified, in the Matroska languages form.\"\n },\n 0x45a3: {\n name: \"TagName\",\n level: 4,\n type: \"8\",\n mandatory: true,\n minver: 1,\n webm: false,\n description: \"The name of the Tag that is going to be stored.\"\n },\n 0x67c8: {\n name: \"SimpleTag\",\n cppname: \"TagSimple\",\n level: 3,\n \"recursive\": \"1\",\n type: \"m\",\n mandatory: true,\n multiple: true,\n minver: 1,\n webm: false,\n description: \"Contains general information about the target.\"\n },\n 0x63c6: {\n name: \"TagAttachmentUID\",\n level: 4,\n type: \"u\",\n multiple: true,\n minver: 1,\n webm: false,\n \"default\": 0,\n description: \"A unique ID to identify the Attachment(s) the tags belong to. If the value is 0 at this level, the tags apply to all the attachments in the Segment.\"\n },\n 0x63c4: {\n name: \"TagChapterUID\",\n level: 4,\n type: \"u\",\n multiple: true,\n minver: 1,\n webm: false,\n \"default\": 0,\n description: \"A unique ID to identify the Chapter(s) the tags belong to. If the value is 0 at this level, the tags apply to all chapters in the Segment.\"\n },\n 0x63c9: {\n name: \"TagEditionUID\",\n level: 4,\n type: \"u\",\n multiple: true,\n minver: 1,\n webm: false,\n \"default\": 0,\n description: \"A unique ID to identify the EditionEntry(s) the tags belong to. If the value is 0 at this level, the tags apply to all editions in the Segment.\"\n },\n 0x63c5: {\n name: \"TagTrackUID\",\n level: 4,\n type: \"u\",\n multiple: true,\n minver: 1,\n webm: false,\n \"default\": 0,\n description: \"A unique ID to identify the Track(s) the tags belong to. If the value is 0 at this level, the tags apply to all tracks in the Segment.\"\n },\n 0x63ca: {\n name: \"TargetType\",\n cppname: \"TagTargetType\",\n level: 4,\n type: \"s\",\n minver: 1,\n webm: false,\n \"strong\": \"informational\",\n description: \"An string that can be used to display the logical level of the target like \\\"ALBUM\\\", \\\"TRACK\\\", \\\"MOVIE\\\", \\\"CHAPTER\\\", etc (see TargetType).\"\n },\n 0x68ca: {\n name: \"TargetTypeValue\",\n cppname: \"TagTargetTypeValue\",\n level: 4,\n type: \"u\",\n minver: 1,\n webm: false,\n \"default\": 50,\n description: \"A number to indicate the logical level of the target (see TargetType).\"\n },\n 0x63c0: {\n name: \"Targets\",\n cppname: \"TagTargets\",\n level: 3,\n type: \"m\",\n mandatory: true,\n minver: 1,\n webm: false,\n description: \"Contain all UIDs where the specified meta data apply. It is empty to describe everything in the segment.\"\n },\n 0x1254c367: {\n name: \"Tags\",\n level: 1,\n type: \"m\",\n multiple: true,\n minver: 1,\n webm: false,\n description: \"Element containing elements specific to Tracks/Chapters. A list of valid tags can be found here.\"\n },\n 0x450d: {\n name: \"ChapProcessPrivate\",\n cppname: \"ChapterProcessPrivate\",\n level: 5,\n type: \"b\",\n minver: 1,\n webm: false,\n description: \"Some optional data attached to the ChapProcessCodecID information. For ChapProcessCodecID = 1, it is the \\\"DVD level\\\" equivalent.\"\n },\n 0x437e: {\n name: \"ChapCountry\",\n cppname: \"ChapterCountry\",\n level: 5,\n type: \"s\",\n multiple: true,\n minver: 1,\n webm: false,\n description: \"The countries corresponding to the string, same 2 octets as in Internet domains.\"\n },\n 0x437c: {\n name: \"ChapLanguage\",\n cppname: \"ChapterLanguage\",\n level: 5,\n type: \"s\",\n mandatory: true,\n multiple: true,\n minver: 1,\n webm: true,\n \"default\": \"eng\",\n description: \"The languages corresponding to the string, in the bibliographic ISO-639-2 form.\"\n },\n 0x8f: {\n name: \"ChapterTrack\",\n level: 4,\n type: \"m\",\n minver: 1,\n webm: false,\n description: \"List of tracks on which the chapter applies. If this element is not present, all tracks apply\"\n },\n 0x63c3: {\n name: \"ChapterPhysicalEquiv\",\n level: 4,\n type: \"u\",\n minver: 1,\n webm: false,\n description: \"Specify the physical equivalent of this ChapterAtom like \\\"DVD\\\" (60) or \\\"SIDE\\\" (50), see complete list of values.\"\n },\n 0x6ebc: {\n name: \"ChapterSegmentEditionUID\",\n level: 4,\n type: \"u\",\n minver: 1,\n webm: false,\n range: \"not 0\",\n description: \"The EditionUID to play from the segment linked in ChapterSegmentUID.\"\n },\n 0x6e67: {\n name: \"ChapterSegmentUID\",\n level: 4,\n type: \"b\",\n minver: 1,\n webm: false,\n range: \">0\",\n bytesize: 16,\n description: \"A segment to play in place of this chapter. Edition ChapterSegmentEditionUID should be used for this segment, otherwise no edition is used.\"\n },\n 0x73c4: {\n name: \"ChapterUID\",\n level: 4,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: true,\n range: \"not 0\",\n description: \"A unique ID to identify the Chapter.\"\n },\n 0xb6: {\n name: \"ChapterAtom\",\n level: 3,\n \"recursive\": \"1\",\n type: \"m\",\n mandatory: true,\n multiple: true,\n minver: 1,\n webm: true,\n description: \"Contains the atom information to use as the chapter atom (apply to all tracks).\"\n },\n 0x45dd: {\n name: \"EditionFlagOrdered\",\n level: 3,\n type: \"u\",\n minver: 1,\n webm: false,\n \"default\": 0,\n range: \"0-1\",\n description: \"Specify if the chapters can be defined multiple times and the order to play them is enforced. (1 bit)\"\n },\n 0x45db: {\n name: \"EditionFlagDefault\",\n level: 3,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n \"default\": 0,\n range: \"0-1\",\n description: \"If a flag is set (1) the edition should be used as the default one. (1 bit)\"\n },\n 0x45bd: {\n name: \"EditionFlagHidden\",\n level: 3,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n \"default\": 0,\n range: \"0-1\",\n description: \"If an edition is hidden (1), it should not be available to the user interface (but still to Control Tracks; see flag notes). (1 bit)\"\n },\n 0x45bc: {\n name: \"EditionUID\",\n level: 3,\n type: \"u\",\n minver: 1,\n webm: false,\n range: \"not 0\",\n description: \"A unique ID to identify the edition. It's useful for tagging an edition.\"\n },\n 0x45b9: {\n name: \"EditionEntry\",\n level: 2,\n type: \"m\",\n mandatory: true,\n multiple: true,\n minver: 1,\n webm: true,\n description: \"Contains all information about a segment edition.\"\n },\n 0x1043a770: {\n name: \"Chapters\",\n level: 1,\n type: \"m\",\n minver: 1,\n webm: true,\n description: \"A system to define basic menus and partition data. For more detailed information, look at the Chapters Explanation.\"\n },\n 0x46ae: {\n name: \"FileUID\",\n level: 3,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n range: \"not 0\",\n description: \"Unique ID representing the file, as random as possible.\"\n },\n 0x465c: {\n name: \"FileData\",\n level: 3,\n type: \"b\",\n mandatory: true,\n minver: 1,\n webm: false,\n description: \"The data of the file.\"\n },\n 0x466e: {\n name: \"FileName\",\n level: 3,\n type: \"8\",\n mandatory: true,\n minver: 1,\n webm: false,\n description: \"Filename of the attached file.\"\n },\n 0x467e: {\n name: \"FileDescription\",\n level: 3,\n type: \"8\",\n minver: 1,\n webm: false,\n description: \"A human-friendly name for the attached file.\"\n },\n 0x61a7: {\n name: \"AttachedFile\",\n level: 2,\n type: \"m\",\n mandatory: true,\n multiple: true,\n minver: 1,\n webm: false,\n description: \"An attached file.\"\n },\n 0x1941a469: {\n name: \"Attachments\",\n level: 1,\n type: \"m\",\n minver: 1,\n webm: false,\n description: \"Contain attached files.\"\n },\n 0xeb: {\n name: \"CueRefCodecState\",\n level: 5,\n type: \"u\",\n webm: false,\n \"default\": 0,\n description: \"The position of the Codec State corresponding to this referenced element. 0 means that the data is taken from the initial Track Entry.\"\n },\n 0x535f: {\n name: \"CueRefNumber\",\n level: 5,\n type: \"u\",\n webm: false,\n \"default\": 1,\n range: \"not 0\",\n description: \"Number of the referenced Block of Track X in the specified Cluster.\"\n },\n 0xdb: {\n name: \"CueReference\",\n level: 4,\n type: \"m\",\n multiple: true,\n minver: 2,\n webm: false,\n description: \"The Clusters containing the required referenced Blocks.\"\n },\n 0xea: {\n name: \"CueCodecState\",\n level: 4,\n type: \"u\",\n minver: 2,\n webm: false,\n \"default\": 0,\n description: \"The position of the Codec State corresponding to this Cue element. 0 means that the data is taken from the initial Track Entry.\"\n },\n 0xb2: {\n name: \"CueDuration\",\n level: 4,\n type: \"u\",\n mandatory: false,\n minver: 4,\n webm: false,\n description: \"The duration of the block according to the segment time base. If missing the track's DefaultDuration does not apply and no duration information is available in terms of the cues.\"\n },\n 0xf0: {\n name: \"CueRelativePosition\",\n level: 4,\n type: \"u\",\n mandatory: false,\n minver: 4,\n webm: false,\n description: \"The relative position of the referenced block inside the cluster with 0 being the first possible position for an element inside that cluster.\",\n position: \"clusterRelative\"\n },\n 0xf1: {\n name: \"CueClusterPosition\",\n level: 4,\n type: \"u\",\n mandatory: true,\n minver: 1,\n description: \"The position of the Cluster containing the required Block.\",\n position: \"segment\",\n },\n 0xf7: {\n name: \"CueTrack\",\n level: 4,\n type: \"u\",\n mandatory: true,\n minver: 1,\n range: \"not 0\",\n description: \"The track for which a position is given.\"\n },\n 0xb7: {\n name: \"CueTrackPositions\",\n level: 3,\n type: \"m\",\n mandatory: true,\n multiple: true,\n minver: 1,\n description: \"Contain positions for different tracks corresponding to the timestamp.\"\n },\n 0xb3: {\n name: \"CueTime\",\n level: 3,\n type: \"u\",\n mandatory: true,\n minver: 1,\n description: \"Absolute timestamp according to the segment time base.\"\n },\n 0xbb: {\n name: \"CuePoint\",\n level: 2,\n type: \"m\",\n mandatory: true,\n multiple: true,\n minver: 1,\n description: \"Contains all information relative to a seek point in the segment.\"\n },\n 0x1c53bb6b: {\n name: \"Cues\",\n level: 1,\n type: \"m\",\n minver: 1,\n description: \"A top-level element to speed seeking access. All entries are local to the segment. Should be mandatory for non \\\"live\\\" streams.\"\n },\n 0x47e6: {\n name: \"ContentSigHashAlgo\",\n level: 6,\n type: \"u\",\n minver: 1,\n webm: false,\n \"default\": 0,\n // \"br\": [ \"\", \"\" ],\n description: \"The hash algorithm used for the signature. A value of '0' means that the contents have not been signed but only encrypted. Predefined values: 1 - SHA1-160 2 - MD5\"\n },\n 0x47e5: {\n name: \"ContentSigAlgo\",\n level: 6,\n type: \"u\",\n minver: 1,\n webm: false,\n \"default\": 0,\n // \"br\": \"\",\n description: \"The algorithm used for the signature. A value of '0' means that the contents have not been signed but only encrypted. Predefined values: 1 - RSA\"\n },\n 0x47e4: {\n name: \"ContentSigKeyID\",\n level: 6,\n type: \"b\",\n minver: 1,\n webm: false,\n description: \"This is the ID of the private key the data was signed with.\"\n },\n 0x47e3: {\n name: \"ContentSignature\",\n level: 6,\n type: \"b\",\n minver: 1,\n webm: false,\n description: \"A cryptographic signature of the contents.\"\n },\n 0x47e2: {\n name: \"ContentEncKeyID\",\n level: 6,\n type: \"b\",\n minver: 1,\n webm: false,\n description: \"For public key algorithms this is the ID of the public key the the data was encrypted with.\"\n },\n 0x47e1: {\n name: \"ContentEncAlgo\",\n level: 6,\n type: \"u\",\n minver: 1,\n webm: false,\n \"default\": 0,\n // \"br\": \"\",\n description: \"The encryption algorithm used. The value '0' means that the contents have not been encrypted but only signed. Predefined values: 1 - DES, 2 - 3DES, 3 - Twofish, 4 - Blowfish, 5 - AES\"\n },\n 0x6d80: {\n name: \"ContentEncodings\",\n level: 3,\n type: \"m\",\n minver: 1,\n webm: false,\n description: \"Settings for several content encoding mechanisms like compression or encryption.\"\n },\n 0xc4: {\n name: \"TrickMasterTrackSegmentUID\",\n level: 3,\n type: \"b\",\n divx: true,\n bytesize: 16,\n description: \"DivX trick track extenstions\"\n },\n 0xc7: {\n name: \"TrickMasterTrackUID\",\n level: 3,\n type: \"u\",\n divx: true,\n description: \"DivX trick track extenstions\"\n },\n 0xc6: {\n name: \"TrickTrackFlag\",\n level: 3,\n type: \"u\",\n divx: true,\n \"default\": 0,\n description: \"DivX trick track extenstions\"\n },\n 0xc1: {\n name: \"TrickTrackSegmentUID\",\n level: 3,\n type: \"b\",\n divx: true,\n bytesize: 16,\n description: \"DivX trick track extenstions\"\n },\n 0xc0: {\n name: \"TrickTrackUID\",\n level: 3,\n type: \"u\",\n divx: true,\n description: \"DivX trick track extenstions\"\n },\n 0xed: {\n name: \"TrackJoinUID\",\n level: 5,\n type: \"u\",\n mandatory: true,\n multiple: true,\n minver: 3,\n webm: false,\n range: \"not 0\",\n description: \"The trackUID number of a track whose blocks are used to create this virtual track.\"\n },\n 0xe9: {\n name: \"TrackJoinBlocks\",\n level: 4,\n type: \"m\",\n minver: 3,\n webm: false,\n description: \"Contains the list of all tracks whose Blocks need to be combined to create this virtual track\"\n },\n 0xe6: {\n name: \"TrackPlaneType\",\n level: 6,\n type: \"u\",\n mandatory: true,\n minver: 3,\n webm: false,\n description: \"The kind of plane this track corresponds to (0: left eye, 1: right eye, 2: background).\"\n },\n 0xe5: {\n name: \"TrackPlaneUID\",\n level: 6,\n type: \"u\",\n mandatory: true,\n minver: 3,\n webm: false,\n range: \"not 0\",\n description: \"The trackUID number of the track representing the plane.\"\n },\n 0xe4: {\n name: \"TrackPlane\",\n level: 5,\n type: \"m\",\n mandatory: true,\n multiple: true,\n minver: 3,\n webm: false,\n description: \"Contains a video plane track that need to be combined to create this 3D track\"\n },\n 0xe3: {\n name: \"TrackCombinePlanes\",\n level: 4,\n type: \"m\",\n minver: 3,\n webm: false,\n description: \"Contains the list of all video plane tracks that need to be combined to create this 3D track\"\n },\n 0xe2: {\n name: \"TrackOperation\",\n level: 3,\n type: \"m\",\n minver: 3,\n webm: false,\n description: \"Operation that needs to be applied on tracks to create this virtual track. For more details look at the Specification Notes on the subject.\"\n },\n 0x7d7b: {\n name: \"ChannelPositions\",\n cppname: \"AudioPosition\",\n level: 4,\n type: \"b\",\n webm: false,\n description: \"Table of horizontal angles for each successive channel, see appendix.\"\n },\n 0x9f: {\n name: \"Channels\",\n cppname: \"AudioChannels\",\n level: 4,\n type: \"u\",\n mandatory: true,\n minver: 1,\n \"default\": 1,\n range: \"not 0\",\n description: \"Numbers of channels in the track.\"\n },\n 0x78b5: {\n name: \"OutputSamplingFrequency\",\n cppname: \"AudioOutputSamplingFreq\",\n level: 4,\n type: \"f\",\n minver: 1,\n \"default\": \"Sampling Frequency\",\n range: \"> 0\",\n description: \"Real output sampling frequency in Hz (used for SBR techniques).\"\n },\n 0xb5: {\n name: \"SamplingFrequency\",\n cppname: \"AudioSamplingFreq\",\n level: 4,\n type: \"f\",\n mandatory: true,\n minver: 1,\n \"default\": 8000.0,\n range: \"> 0\",\n description: \"Sampling frequency in Hz.\"\n },\n 0xe1: {\n name: \"Audio\",\n cppname: \"TrackAudio\",\n level: 3,\n type: \"m\",\n minver: 1,\n description: \"Audio settings.\"\n },\n 0x2383e3: {\n name: \"FrameRate\",\n cppname: \"VideoFrameRate\",\n level: 4,\n type: \"f\",\n range: \"> 0\",\n \"strong\": \"Informational\",\n description: \"Number of frames per second. only.\"\n },\n 0x2fb523: {\n name: \"GammaValue\",\n cppname: \"VideoGamma\",\n level: 4,\n type: \"f\",\n webm: false,\n range: \"> 0\",\n description: \"Gamma Value.\"\n },\n 0x2eb524: {\n name: \"ColourSpace\",\n cppname: \"VideoColourSpace\",\n level: 4,\n type: \"b\",\n minver: 1,\n webm: false,\n bytesize: 4,\n description: \"Same value as in AVI (32 bits).\"\n },\n 0x54b3: {\n name: \"AspectRatioType\",\n cppname: \"VideoAspectRatio\",\n level: 4,\n type: \"u\",\n minver: 1,\n \"default\": 0,\n description: \"Specify the possible modifications to the aspect ratio (0: free resizing, 1: keep aspect ratio, 2: fixed).\"\n },\n 0x54b2: {\n name: \"DisplayUnit\",\n cppname: \"VideoDisplayUnit\",\n level: 4,\n type: \"u\",\n minver: 1,\n \"default\": 0,\n description: \"How DisplayWidth & DisplayHeight should be interpreted (0: pixels, 1: centimeters, 2: inches, 3: Display Aspect Ratio).\"\n },\n 0x54ba: {\n name: \"DisplayHeight\",\n cppname: \"VideoDisplayHeight\",\n level: 4,\n type: \"u\",\n minver: 1,\n \"default\": \"PixelHeight\",\n range: \"not 0\",\n description: \"Height of the video frames to display. The default value is only valid when DisplayUnit is 0.\"\n },\n 0x54b0: {\n name: \"DisplayWidth\",\n cppname: \"VideoDisplayWidth\",\n level: 4,\n type: \"u\",\n minver: 1,\n \"default\": \"PixelWidth\",\n range: \"not 0\",\n description: \"Width of the video frames to display. The default value is only valid when DisplayUnit is 0.\"\n },\n 0x54dd: {\n name: \"PixelCropRight\",\n cppname: \"VideoPixelCropRight\",\n level: 4,\n type: \"u\",\n minver: 1,\n \"default\": 0,\n description: \"The number of video pixels to remove on the right of the image.\"\n },\n 0x54cc: {\n name: \"PixelCropLeft\",\n cppname: \"VideoPixelCropLeft\",\n level: 4,\n type: \"u\",\n minver: 1,\n \"default\": 0,\n description: \"The number of video pixels to remove on the left of the image.\"\n },\n 0x54bb: {\n name: \"PixelCropTop\",\n cppname: \"VideoPixelCropTop\",\n level: 4,\n type: \"u\",\n minver: 1,\n \"default\": 0,\n description: \"The number of video pixels to remove at the top of the image.\"\n },\n 0x54aa: {\n name: \"PixelCropBottom\",\n cppname: \"VideoPixelCropBottom\",\n level: 4,\n type: \"u\",\n minver: 1,\n \"default\": 0,\n description: \"The number of video pixels to remove at the bottom of the image (for HDTV content).\"\n },\n 0xba: {\n name: \"PixelHeight\",\n cppname: \"VideoPixelHeight\",\n level: 4,\n type: \"u\",\n mandatory: true,\n minver: 1,\n range: \"not 0\",\n description: \"Height of the encoded video frames in pixels.\"\n },\n 0xb0: {\n name: \"PixelWidth\",\n cppname: \"VideoPixelWidth\",\n level: 4,\n type: \"u\",\n mandatory: true,\n minver: 1,\n range: \"not 0\",\n description: \"Width of the encoded video frames in pixels.\"\n },\n 0x53b9: {\n name: \"OldStereoMode\",\n level: 4,\n type: \"u\",\n \"maxver\": \"0\",\n webm: false,\n divx: false,\n description: \"DEPRECATED, DO NOT USE. Bogus StereoMode value used in old versions of libmatroska. (0: mono, 1: right eye, 2: left eye, 3: both eyes).\"\n },\n 0x53c0: {\n name: \"AlphaMode\",\n cppname: \"VideoAlphaMode\",\n level: 4,\n type: \"u\",\n minver: 3,\n webm: true,\n \"default\": 0,\n description: \"Alpha Video Mode. Presence of this element indicates that the BlockAdditional element could contain Alpha data.\"\n },\n 0x53b8: {\n name: \"StereoMode\",\n cppname: \"VideoStereoMode\",\n level: 4,\n type: \"u\",\n minver: 3,\n webm: true,\n \"default\": 0,\n description: \"Stereo-3D video mode (0: mono, 1: side by side (left eye is first), 2: top-bottom (right eye is first), 3: top-bottom (left eye is first), 4: checkboard (right is first), 5: checkboard (left is first), 6: row interleaved (right is first), 7: row interleaved (left is first), 8: column interleaved (right is first), 9: column interleaved (left is first), 10: anaglyph (cyan/red), 11: side by side (right eye is first), 12: anaglyph (green/magenta), 13 both eyes laced in one Block (left eye is first), 14 both eyes laced in one Block (right eye is first)) . There are some more details on 3D support in the Specification Notes.\"\n },\n 0x9a: {\n name: \"FlagInterlaced\",\n cppname: \"VideoFlagInterlaced\",\n level: 4,\n type: \"u\",\n mandatory: true,\n minver: 2,\n webm: true,\n \"default\": 0,\n range: \"0-1\",\n description: \"Set if the video is interlaced. (1 bit)\"\n },\n 0xe0: {\n name: \"Video\",\n cppname: \"TrackVideo\",\n level: 3,\n type: \"m\",\n minver: 1,\n description: \"Video settings.\"\n },\n 0x66a5: {\n name: \"TrackTranslateTrackID\",\n level: 4,\n type: \"b\",\n mandatory: true,\n minver: 1,\n webm: false,\n description: \"The binary value used to represent this track in the chapter codec data. The format depends on the ChapProcessCodecID used.\"\n },\n 0x66bf: {\n name: \"TrackTranslateCodec\",\n level: 4,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n description: \"The chapter codec using this ID (0: Matroska Script, 1: DVD-menu).\"\n },\n 0x66fc: {\n name: \"TrackTranslateEditionUID\",\n level: 4,\n type: \"u\",\n multiple: true,\n minver: 1,\n webm: false,\n description: \"Specify an edition UID on which this translation applies. When not specified, it means for all editions found in the segment.\"\n },\n 0x56bb: {\n name: \"SeekPreRoll\",\n level: 3,\n type: \"u\",\n mandatory: true,\n multiple: false,\n \"default\": 0,\n minver: 4,\n webm: true,\n description: \"After a discontinuity, SeekPreRoll is the duration in nanoseconds of the data the decoder must decode before the decoded data is valid.\"\n },\n 0x56aa: {\n name: \"CodecDelay\",\n level: 3,\n type: \"u\",\n multiple: false,\n \"default\": 0,\n minver: 4,\n webm: true,\n description: \"CodecDelay is The codec-built-in delay in nanoseconds. This value must be subtracted from each block timestamp in order to get the actual timestamp. The value should be small so the muxing of tracks with the same actual timestamp are in the same Cluster.\"\n },\n 0x6fab: {\n name: \"TrackOverlay\",\n level: 3,\n type: \"u\",\n multiple: true,\n minver: 1,\n webm: false,\n description: \"Specify that this track is an overlay track for the Track specified (in the u-integer). That means when this track has a gap (see SilentTracks) the overlay track should be used instead. The order of multiple TrackOverlay matters, the first one is the one that should be used. If not found it should be the second, etc.\"\n },\n 0xaa: {\n name: \"CodecDecodeAll\",\n level: 3,\n type: \"u\",\n mandatory: true,\n minver: 2,\n webm: false,\n \"default\": 1,\n range: \"0-1\",\n description: \"The codec can decode potentially damaged data (1 bit).\"\n },\n 0x26b240: {\n name: \"CodecDownloadURL\",\n level: 3,\n type: \"s\",\n multiple: true,\n webm: false,\n description: \"A URL to download about the codec used.\"\n },\n 0x3b4040: {\n name: \"CodecInfoURL\",\n level: 3,\n type: \"s\",\n multiple: true,\n webm: false,\n description: \"A URL to find information about the codec used.\"\n },\n 0x3a9697: {\n name: \"CodecSettings\",\n level: 3,\n type: \"8\",\n webm: false,\n description: \"A string describing the encoding setting used.\"\n },\n 0x63a2: {\n name: \"CodecPrivate\",\n level: 3,\n type: \"b\",\n minver: 1,\n description: \"Private data only known to the codec.\"\n },\n 0x22b59c: {\n name: \"Language\",\n cppname: \"TrackLanguage\",\n level: 3,\n type: \"s\",\n minver: 1,\n \"default\": \"eng\",\n description: \"Specifies the language of the track in the Matroska languages form.\"\n },\n 0x536e: {\n name: \"Name\",\n cppname: \"TrackName\",\n level: 3,\n type: \"8\",\n minver: 1,\n description: \"A human-readable track name.\"\n },\n 0x55ee: {\n name: \"MaxBlockAdditionID\",\n level: 3,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n \"default\": 0,\n description: \"The maximum value of BlockAdditions for this track.\"\n },\n 0x537f: {\n name: \"TrackOffset\",\n level: 3,\n type: \"i\",\n webm: false,\n \"default\": 0,\n description: \"A value to add to the Block's Timestamp. This can be used to adjust the playback offset of a track.\"\n },\n 0x23314f: {\n name: \"TrackTimecodeScale\",\n level: 3,\n type: \"f\",\n mandatory: true,\n minver: 1,\n \"maxver\": \"3\",\n webm: false,\n \"default\": 1.0,\n range: \"> 0\",\n description: \"DEPRECATED, DO NOT USE. The scale to apply on this track to work at normal speed in relation with other tracks (mostly used to adjust video speed when the audio length differs).\"\n },\n 0x234e7a: {\n name: \"DefaultDecodedFieldDuration\",\n cppname: \"TrackDefaultDecodedFieldDuration\",\n level: 3,\n type: \"u\",\n minver: 4,\n range: \"not 0\",\n description: \"The period in nanoseconds (not scaled by TimcodeScale)\\nbetween two successive fields at the output of the decoding process (see the notes)\"\n },\n 0x23e383: {\n name: \"DefaultDuration\",\n cppname: \"TrackDefaultDuration\",\n level: 3,\n type: \"u\",\n minver: 1,\n range: \"not 0\",\n description: \"Number of nanoseconds (not scaled via TimecodeScale) per frame ('frame' in the Matroska sense -- one element put into a (Simple)Block).\"\n },\n 0x6df8: {\n name: \"MaxCache\",\n cppname: \"TrackMaxCache\",\n level: 3,\n type: \"u\",\n minver: 1,\n webm: false,\n description: \"The maximum cache size required to store referenced frames in and the current frame. 0 means no cache is needed.\"\n },\n 0x6de7: {\n name: \"MinCache\",\n cppname: \"TrackMinCache\",\n level: 3,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n \"default\": 0,\n description: \"The minimum number of frames a player should be able to cache during playback. If set to 0, the reference pseudo-cache system is not used.\"\n },\n 0x9c: {\n name: \"FlagLacing\",\n cppname: \"TrackFlagLacing\",\n level: 3,\n type: \"u\",\n mandatory: true,\n minver: 1,\n \"default\": 1,\n range: \"0-1\",\n description: \"Set if the track may contain blocks using lacing. (1 bit)\"\n },\n 0x55aa: {\n name: \"FlagForced\",\n cppname: \"TrackFlagForced\",\n level: 3,\n type: \"u\",\n mandatory: true,\n minver: 1,\n \"default\": 0,\n range: \"0-1\",\n description: \"Set if that track MUST be active during playback. There can be many forced track for a kind (audio, video or subs), the player should select the one which language matches the user preference or the default + forced track. Overlay MAY happen between a forced and non-forced track of the same kind. (1 bit)\"\n },\n 0xb9: {\n name: \"FlagEnabled\",\n cppname: \"TrackFlagEnabled\",\n level: 3,\n type: \"u\",\n mandatory: true,\n minver: 2,\n webm: true,\n \"default\": 1,\n range: \"0-1\",\n description: \"Set if the track is usable. (1 bit)\"\n },\n 0x73c5: {\n name: \"TrackUID\",\n level: 3,\n type: \"u\",\n mandatory: true,\n minver: 1,\n range: \"not 0\",\n description: \"A unique ID to identify the Track. This should be kept the same when making a direct stream copy of the Track to another file.\"\n },\n 0xd7: {\n name: \"TrackNumber\",\n level: 3,\n type: \"u\",\n mandatory: true,\n minver: 1,\n range: \"not 0\",\n description: \"The track number as used in the Block Header (using more than 127 tracks is not encouraged, though the design allows an unlimited number).\"\n },\n 0xae: {\n name: \"TrackEntry\",\n level: 2,\n type: \"m\",\n mandatory: true,\n multiple: true,\n minver: 1,\n description: \"Describes a track with all elements.\"\n },\n 0x1654ae6b: {\n name: \"Tracks\",\n level: 1,\n type: \"m\",\n multiple: true,\n minver: 1,\n description: \"A top-level block of information with many tracks described.\"\n },\n 0xaf: {\n name: \"EncryptedBlock\",\n level: 2,\n type: \"b\",\n multiple: true,\n webm: false,\n description: \"Similar to EncryptedBlock Structure)\"\n },\n 0xca: {\n name: \"ReferenceTimeCode\",\n level: 4,\n type: \"u\",\n multiple: false,\n mandatory: true,\n minver: 0,\n webm: false,\n divx: true,\n description: \"DivX trick track extenstions\"\n },\n 0xc9: {\n name: \"ReferenceOffset\",\n level: 4,\n type: \"u\",\n multiple: false,\n mandatory: true,\n minver: 0,\n webm: false,\n divx: true,\n description: \"DivX trick track extenstions\"\n },\n 0xc8: {\n name: \"ReferenceFrame\",\n level: 3,\n type: \"m\",\n multiple: false,\n minver: 0,\n webm: false,\n divx: true,\n description: \"DivX trick track extenstions\"\n },\n 0xcf: {\n name: \"SliceDuration\",\n level: 5,\n type: \"u\",\n \"default\": 0,\n description: \"The (scaled) duration to apply to the element.\"\n },\n 0xce: {\n name: \"Delay\",\n cppname: \"SliceDelay\",\n level: 5,\n type: \"u\",\n \"default\": 0,\n description: \"The (scaled) delay to apply to the element.\"\n },\n 0xcb: {\n name: \"BlockAdditionID\",\n cppname: \"SliceBlockAddID\",\n level: 5,\n type: \"u\",\n \"default\": 0,\n description: \"The ID of the BlockAdditional element (0 is the main Block).\"\n },\n 0xcd: {\n name: \"FrameNumber\",\n cppname: \"SliceFrameNumber\",\n level: 5,\n type: \"u\",\n \"default\": 0,\n description: \"The number of the frame to generate from this lace with this delay (allow you to generate many frames from the same Block/Frame).\"\n },\n 0xcc: {\n name: \"LaceNumber\",\n cppname: \"SliceLaceNumber\",\n level: 5,\n type: \"u\",\n minver: 1,\n \"default\": 0,\n divx: false,\n description: \"The reverse number of the frame in the lace (0 is the last frame, 1 is the next to last, etc). While there are a few files in the wild with this element, it is no longer in use and has been deprecated. Being able to interpret this element is not required for playback.\"\n },\n 0xe8: {\n name: \"TimeSlice\",\n level: 4,\n type: \"m\",\n multiple: true,\n minver: 1,\n divx: false,\n description: \"Contains extra time information about the data contained in the Block. While there are a few files in the wild with this element, it is no longer in use and has been deprecated. Being able to interpret this element is not required for playback.\"\n },\n 0x8e: {\n name: \"Slices\",\n level: 3,\n type: \"m\",\n minver: 1,\n divx: false,\n description: \"Contains slices description.\"\n },\n 0x75a2: {\n name: \"DiscardPadding\",\n level: 3,\n type: \"i\",\n minver: 4,\n webm: true,\n description: \"Duration in nanoseconds of the silent data added to the Block (padding at the end of the Block for positive value, at the beginning of the Block for negative value). The duration of DiscardPadding is not calculated in the duration of the TrackEntry and should be discarded during playback.\"\n },\n 0xa4: {\n name: \"CodecState\",\n level: 3,\n type: \"b\",\n minver: 2,\n webm: false,\n description: \"The new codec state to use. Data interpretation is private to the codec. This information should always be referenced by a seek entry.\"\n },\n 0xfd: {\n name: \"ReferenceVirtual\",\n level: 3,\n type: \"i\",\n webm: false,\n description: \"Relative position of the data that should be in position of the virtual block.\"\n },\n 0xfb: {\n name: \"ReferenceBlock\",\n level: 3,\n type: \"i\",\n multiple: true,\n minver: 1,\n description: \"Timestamp of another frame used as a reference (ie: B or P frame). The timestamp is relative to the block it's attached to.\"\n },\n 0xfa: {\n name: \"ReferencePriority\",\n cppname: \"FlagReferenced\",\n level: 3,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n \"default\": 0,\n description: \"This frame is referenced and has the specified cache priority. In cache only a frame of the same or higher priority can replace this frame. A value of 0 means the frame is not referenced.\"\n },\n 0x9b: {\n name: \"BlockDuration\",\n level: 3,\n type: \"u\",\n minver: 1,\n \"default\": \"TrackDuration\",\n description: \"The duration of the Block (based on TimecodeScale). This element is mandatory when DefaultDuration is set for the track (but can be omitted as other default values). When not written and with no DefaultDuration, the value is assumed to be the difference between the timestamp of this Block and the timestamp of the next Block in \\\"display\\\" order (not coding order). This element can be useful at the end of a Track (as there is not other Block available), or when there is a break in a track like for subtitle tracks. When set to 0 that means the frame is not a keyframe.\"\n },\n 0xa5: {\n name: \"BlockAdditional\",\n level: 5,\n type: \"b\",\n mandatory: true,\n minver: 1,\n webm: false,\n description: \"Interpreted by the codec as it wishes (using the BlockAddID).\"\n },\n 0xee: {\n name: \"BlockAddID\",\n level: 5,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n \"default\": 1,\n range: \"not 0\",\n description: \"An ID to identify the BlockAdditional level.\"\n },\n 0xa6: {\n name: \"BlockMore\",\n level: 4,\n type: \"m\",\n mandatory: true,\n multiple: true,\n minver: 1,\n webm: false,\n description: \"Contain the BlockAdditional and some parameters.\"\n },\n 0x75a1: {\n name: \"BlockAdditions\",\n level: 3,\n type: \"m\",\n minver: 1,\n webm: false,\n description: \"Contain additional blocks to complete the main one. An EBML parser that has no knowledge of the Block structure could still see and use/skip these data.\"\n },\n 0xa2: {\n name: \"BlockVirtual\",\n level: 3,\n type: \"b\",\n webm: false,\n description: \"A Block with no data. It must be stored in the stream at the place the real Block should be in display order. (see Block Virtual)\"\n },\n 0xa1: {\n name: \"Block\",\n level: 3,\n type: \"b\",\n mandatory: true,\n minver: 1,\n description: \"Block containing the actual data to be rendered and a timestamp relative to the Cluster Timecode. (see Block Structure)\"\n },\n 0xa0: {\n name: \"BlockGroup\",\n level: 2,\n type: \"m\",\n multiple: true,\n minver: 1,\n description: \"Basic container of information containing a single Block or BlockVirtual, and information specific to that Block/VirtualBlock.\"\n },\n 0xa3: {\n name: \"SimpleBlock\",\n level: 2,\n type: \"b\",\n multiple: true,\n minver: 2,\n webm: true,\n divx: true,\n description: \"Similar to SimpleBlock Structure\"\n },\n 0xab: {\n name: \"PrevSize\",\n cppname: \"ClusterPrevSize\",\n level: 2,\n type: \"u\",\n minver: 1,\n description: \"Size of the previous Cluster, in octets. Can be useful for backward playing.\",\n position: \"prevCluster\"\n },\n 0xa7: {\n name: \"Position\",\n cppname: \"ClusterPosition\",\n level: 2,\n type: \"u\",\n minver: 1,\n webm: false,\n description: \"The Position of the Cluster in the segment (0 in live broadcast streams). It might help to resynchronise offset on damaged streams.\",\n position: \"segment\"\n },\n 0x58d7: {\n name: \"SilentTrackNumber\",\n cppname: \"ClusterSilentTrackNumber\",\n level: 3,\n type: \"u\",\n multiple: true,\n minver: 1,\n webm: false,\n description: \"One of the track number that are not used from now on in the stream. It could change later if not specified as silent in a further Cluster.\"\n },\n 0xe7: {\n name: \"Timecode\",\n cppname: \"ClusterTimecode\",\n level: 2,\n type: \"u\",\n mandatory: true,\n minver: 1,\n description: \"Absolute timestamp of the cluster (based on TimecodeScale).\"\n },\n 0x1f43b675: {\n name: \"Cluster\",\n level: 1,\n type: \"m\",\n multiple: true,\n minver: 1,\n description: \"The lower level element containing the (monolithic) Block structure.\"\n },\n 0x4d80: {\n name: \"MuxingApp\",\n level: 2,\n type: \"8\",\n mandatory: true,\n minver: 1,\n description: \"Muxing application or library (\\\"libmatroska-0.4.3\\\").\"\n },\n 0x7ba9: {\n name: \"Title\",\n level: 2,\n type: \"8\",\n minver: 1,\n webm: false,\n description: \"General name of the segment.\"\n },\n 0x2ad7b2: {\n name: \"TimecodeScaleDenominator\",\n level: 2,\n type: \"u\",\n mandatory: true,\n minver: 4,\n \"default\": \"1000000000\",\n description: \"Timestamp scale numerator, see TimecodeScale.\"\n },\n 0x2ad7b1: {\n name: \"TimecodeScale\",\n level: 2,\n type: \"u\",\n mandatory: true,\n minver: 1,\n \"default\": \"1000000\",\n description: \"Timestamp scale in nanoseconds (1.000.000 means all timestamps in the segment are expressed in milliseconds).\"\n },\n 0x69a5: {\n name: \"ChapterTranslateID\",\n level: 3,\n type: \"b\",\n mandatory: true,\n minver: 1,\n webm: false,\n description: \"The binary value used to represent this segment in the chapter codec data. The format depends on the ChapProcessCodecID used.\"\n },\n 0x69bf: {\n name: \"ChapterTranslateCodec\",\n level: 3,\n type: \"u\",\n mandatory: true,\n minver: 1,\n webm: false,\n description: \"The chapter codec using this ID (0: Matroska Script, 1: DVD-menu).\"\n },\n 0x69fc: {\n name: \"ChapterTranslateEditionUID\",\n level: 3,\n type: \"u\",\n multiple: true,\n minver: 1,\n webm: false,\n description: \"Specify an edition UID on which this correspondance applies. When not specified, it means for all editions found in the segment.\"\n },\n 0x3e83bb: {\n name: \"NextFilename\",\n level: 2,\n type: \"8\",\n minver: 1,\n webm: false,\n description: \"An escaped filename corresponding to the next segment.\"\n },\n 0x3eb923: {\n name: \"NextUID\",\n level: 2,\n type: \"b\",\n minver: 1,\n webm: false,\n bytesize: 16,\n description: \"A unique ID to identify the next chained segment (128 bits).\"\n },\n 0x3c83ab: {\n name: \"PrevFilename\",\n level: 2,\n type: \"8\",\n minver: 1,\n webm: false,\n description: \"An escaped filename corresponding to the previous segment.\"\n },\n 0x3cb923: {\n name: \"PrevUID\",\n level: 2,\n type: \"b\",\n minver: 1,\n webm: false,\n bytesize: 16,\n description: \"A unique ID to identify the previous chained segment (128 bits).\"\n },\n 0x73a4: {\n name: \"SegmentUID\",\n level: 2,\n type: \"b\",\n minver: 1,\n webm: false,\n range: \"not 0\",\n bytesize: 16,\n description: \"A randomly generated unique ID to identify the current segment between many others (128 bits).\"\n },\n 0x1549a966: {\n name: \"Info\",\n level: 1,\n type: \"m\",\n mandatory: true,\n multiple: true,\n minver: 1,\n description: \"Contains miscellaneous general information and statistics on the file.\"\n },\n 0x53ac: {\n name: \"SeekPosition\",\n level: 3,\n type: \"u\",\n mandatory: true,\n minver: 1,\n description: \"The position of the element in the segment in octets (0 = first level 1 element).\",\n position: \"segment\"\n },\n 0x53ab: {\n name: \"SeekID\",\n level: 3,\n type: \"b\",\n mandatory: true,\n minver: 1,\n description: \"The binary ID corresponding to the element name.\",\n type2: \"ebmlID\"\n },\n 0x4dbb: {\n name: \"Seek\",\n cppname: \"SeekPoint\",\n level: 2,\n type: \"m\",\n mandatory: true,\n multiple: true,\n minver: 1,\n description: \"Contains a single seek entry to an EBML element.\"\n },\n 0x114d9b74: {\n name: \"SeekHead\",\n cppname: \"SeekHeader\",\n level: 1,\n type: \"m\",\n multiple: true,\n minver: 1,\n description: \"Contains the position of other level 1 elements.\"\n },\n 0x7e7b: {\n name: \"SignatureElementList\",\n level: 2,\n type: \"m\",\n multiple: true,\n webm: false,\n i: \"Cluster|Block|BlockAdditional\",\n description: \"A list consists of a number of consecutive elements that represent one case where data is used in signature. Ex: means that the BlockAdditional of all Blocks in all Clusters is used for encryption.\"\n },\n 0x7e5b: {\n name: \"SignatureElements\",\n level: 1,\n type: \"m\",\n webm: false,\n description: \"Contains elements that will be used to compute the signature.\"\n },\n 0x7eb5: {\n name: \"Signature\",\n level: 1,\n type: \"b\",\n webm: false,\n description: \"The signature of the data (until a new.\"\n },\n 0x7ea5: {\n name: \"SignaturePublicKey\",\n level: 1,\n type: \"b\",\n webm: false,\n description: \"The public key to use with the algorithm (in the case of a PKI-based signature).\"\n },\n 0x7e9a: {\n name: \"SignatureHash\",\n level: 1,\n type: \"u\",\n webm: false,\n description: \"Hash algorithm used (1=SHA1-160, 2=MD5).\"\n },\n 0x7e8a: {\n name: \"SignatureAlgo\",\n level: 1,\n type: \"u\",\n webm: false,\n description: \"Signature algorithm used (1=RSA, 2=elliptic).\"\n },\n 0x1b538667: {\n name: \"SignatureSlot\",\n level: -1,\n type: \"m\",\n multiple: true,\n webm: false,\n description: \"Contain signature of some (coming) elements in the stream.\"\n },\n 0xbf: {\n name: \"CRC-32\",\n level: -1,\n type: \"b\",\n minver: 1,\n webm: false,\n description: \"The CRC is computed on all the data of the Master element it's in. The CRC element should be the first in it's parent master for easier reading. All level 1 elements should include a CRC-32. The CRC in use is the IEEE CRC32 Little Endian\",\n crc: true\n },\n 0xec: {\n name: \"Void\",\n level: -1,\n type: \"b\",\n minver: 1,\n description: \"Used to void damaged data, to avoid unexpected behaviors when using damaged data. The content is discarded. Also used to reserve space in a sub-element for later use.\"\n },\n 0x42f3: {\n name: \"EBMLMaxSizeLength\",\n level: 1,\n type: \"u\",\n mandatory: true,\n \"default\": 8,\n minver: 1,\n description: \"The maximum length of the sizes you'll find in this file (8 or less in Matroska). This does not override the element size indicated at the beginning of an element. Elements that have an indicated size which is larger than what is allowed by EBMLMaxSizeLength shall be considered invalid.\"\n },\n 0x42f2: {\n name: \"EBMLMaxIDLength\",\n level: 1,\n type: \"u\",\n mandatory: true,\n \"default\": 4,\n minver: 1,\n description: \"The maximum length of the IDs you'll find in this file (4 or less in Matroska).\"\n },\n 0x42f7: {\n name: \"EBMLReadVersion\",\n level: 1,\n type: \"u\",\n mandatory: true,\n \"default\": 1,\n minver: 1,\n description: \"The minimum EBML version a parser has to support to read this file.\"\n },\n 0x1a45dfa3: {\n name: \"EBML\",\n level: \"0\",\n type: \"m\",\n mandatory: true,\n multiple: true,\n minver: 1,\n description: \"Set the EBML characteristics of the data to follow. Each EBML document has to start with this.\"\n },\n 0x55b0: {\n name: \"Colour\",\n level: \"4\",\n type: \"m\",\n mandatory: true,\n multiple: true,\n description: \"Settings describing the colour format.\"\n },\n 0x55b1: {\n name: \"MatrixCoefficients\",\n level: \"5\",\n type: \"u\",\n mandatory: true,\n multiple: true,\n description: \"The Matrix Coefficients of the video used to derive luma and chroma values from red, green, and blue color primaries. For clarity, the value and meanings for MatrixCoefficients are adopted from Table 4 of ISO/IEC 23001-8:2016 or ITU-T H.273.\"\n },\n 0x55b9: {\n name: \"Range\",\n level: \"5\",\n type: \"u\",\n mandatory: true,\n multiple: true,\n description: \"Clipping of the color ranges.\"\n },\n 0x55ba: {\n name: \"TransferCharacteristics\",\n level: \"5\",\n type: \"u\",\n mandatory: true,\n multiple: true,\n description: \"The transfer characteristics of the video.\"\n },\n 0x55bb: {\n name: \"Primaries\",\n level: \"5\",\n type: \"u\",\n mandatory: true,\n multiple: true,\n description: \"The colour primaries of the video. For clarity, the value and meanings for Primaries are adopted from Table 2 of ISO/IEC 23091-4 or ITU-T H.273.\"\n },\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.tools = exports.Reader = exports.Encoder = exports.Decoder = void 0;\n__exportStar(require(\"./EBML\"), exports);\nvar EBMLDecoder_1 = require(\"./EBMLDecoder\");\nexports.Decoder = EBMLDecoder_1.default;\nvar EBMLEncoder_1 = require(\"./EBMLEncoder\");\nexports.Encoder = EBMLEncoder_1.default;\nvar EBMLReader_1 = require(\"./EBMLReader\");\nexports.Reader = EBMLReader_1.default;\nvar tools = require(\"./tools\");\nexports.tools = tools;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tools_1 = require(\"./tools\");\nvar Tools = /** @class */ (function () {\n function Tools() {\n }\n /**\n * read variable length integer per\n * https://www.matroska.org/technical/specs/index.html#EBML_ex\n * @static\n * @param {Buffer} buffer containing input\n * @param {Number} [start=0] position in buffer\n * @returns {{length: Number, value: number}} value / length object\n */\n Tools.readVint = function (buffer, start) {\n if (start === void 0) { start = 0; }\n var length = 8 - Math.floor(Math.log2(buffer[start]));\n if (length > 8) {\n var number = Tools.readHexString(buffer, start, start + length);\n throw new Error(\"Unrepresentable length: \".concat(length, \" \").concat(number));\n }\n if (start + length > buffer.length) {\n return null;\n }\n var value = buffer[start] & ((1 << (8 - length)) - 1);\n for (var i = 1; i < length; i += 1) {\n if (i === 7) {\n if (value >= Math.pow(2, 8) && buffer[start + 7] > 0) {\n return { length: length, value: -1 };\n }\n }\n value *= Math.pow(2, 8);\n value += buffer[start + i];\n }\n return { length: length, value: value };\n };\n /**\n * write variable length integer\n * @static\n * @param {Number} value to store into buffer\n * @returns {Buffer} containing the value\n */\n Tools.writeVint = function (value) {\n if (value < 0 || value > Math.pow(2, 53)) {\n throw new Error(\"Unrepresentable value: \".concat(value));\n }\n var length = 1;\n for (length = 1; length <= 8; length += 1) {\n if (value < Math.pow(2, (7 * length)) - 1) {\n break;\n }\n }\n var buffer = tools_1.Buffer.alloc(length);\n var val = value;\n for (var i = 1; i <= length; i += 1) {\n var b = val & 0xff;\n buffer[length - i] = b;\n val -= b;\n val /= Math.pow(2, 8);\n }\n buffer[0] |= 1 << (8 - length);\n return buffer;\n };\n /**\n * *\n * concatenate two arrays of bytes\n * @static\n * @param {Buffer} a1 First array\n * @param {Buffer} a2 Second array\n * @returns {Buffer} concatenated arrays\n */\n Tools.concatenate = function (a1, a2) {\n // both null or undefined\n if (!a1 && !a2) {\n return tools_1.Buffer.from([]);\n }\n if (!a1 || a1.byteLength === 0) {\n return a2;\n }\n if (!a2 || a2.byteLength === 0) {\n return a1;\n }\n return tools_1.Buffer.from(__spreadArray(__spreadArray([], a1, true), a2, true));\n };\n /**\n * get a hex text string from Buff[start,end)\n * @param {Buffer} buff from which to read the string\n * @param {Number} [start=0] starting point (default 0)\n * @param {Number} [end=buff.byteLength] ending point (default the whole buffer)\n * @returns {string} the hex string\n */\n Tools.readHexString = function (buff, start, end) {\n if (start === void 0) { start = 0; }\n if (end === void 0) { end = buff.byteLength; }\n return Array.from(buff.slice(start, end))\n .map(function (q) { return Number(q).toString(16); })\n .reduce(function (acc, current) { return \"\".concat(acc).concat(current.padStart(2, '0')); }, '');\n };\n /**\n * tries to read out a UTF-8 encoded string\n * @param {Buffer} buff the buffer to attempt to read from\n * @return {string|null} the decoded text, or null if unable to\n */\n Tools.readUtf8 = function (buff) {\n try {\n return tools_1.Buffer.from(buff).toString('utf8');\n }\n catch (exception) {\n return null;\n }\n };\n /**\n * get an unsigned number from a buffer\n * @param {Buffer} buff from which to read variable-length unsigned number\n * @returns {number|string} result (in hex for lengths > 6)\n */\n Tools.readUnsigned = function (buff) {\n var b = new DataView(buff.buffer, buff.byteOffset, buff.byteLength);\n switch (buff.byteLength) {\n case 1:\n return b.getUint8(0);\n case 2:\n return b.getUint16(0);\n case 4:\n return b.getUint32(0);\n default:\n break;\n }\n if (buff.byteLength <= 6) {\n return buff.reduce(function (acc, current) { return acc * 256 + current; }, 0);\n }\n return Tools.readHexString(buff, 0, buff.byteLength);\n };\n /**\n * get an signed number from a buffer\n * @static\n * @param {Buffer} buff from which to read variable-length signed number\n * @returns {number} result\n */\n Tools.readSigned = function (buff) {\n var b = new DataView(buff.buffer, buff.byteOffset, buff.byteLength);\n switch (buff.byteLength) {\n case 1:\n return b.getInt8(0);\n case 2:\n return b.getInt16(0);\n case 4:\n return b.getInt32(0);\n default:\n return NaN;\n }\n };\n /**\n * get an floating-point number from a buffer\n * @static\n * @param {Buffer} buff from which to read variable-length floating-point number\n * @returns {number} result\n */\n Tools.readFloat = function (buff) {\n var b = new DataView(buff.buffer, buff.byteOffset, buff.byteLength);\n switch (buff.byteLength) {\n case 4:\n return b.getFloat32(0);\n case 8:\n return b.getFloat64(0);\n default:\n return NaN;\n }\n };\n /**\n * get a date from a buffer\n * @static\n * @param {Buffer} buff from which to read the date\n * @return {Date} result\n */\n Tools.readDate = function (buff) {\n var b = new DataView(buff.buffer, buff.byteOffset, buff.byteLength);\n switch (buff.byteLength) {\n case 1:\n return new Date(b.getUint8(0));\n case 2:\n return new Date(b.getUint16(0));\n case 4:\n return new Date(b.getUint32(0));\n case 8:\n return new Date(Number.parseInt(Tools.readHexString(buff), 16));\n default:\n return new Date(0);\n }\n };\n /**\n * Reads the data from a tag\n * @static\n * @param {TagData} tagObj The tag object to be read\n * @param {Buffer} data Data to be transformed\n * @return {Tag} result\n */\n Tools.readDataFromTag = function (tagObj, data) {\n var type = tagObj.type, name = tagObj.name;\n var track = tagObj.track;\n var discardable = tagObj.discardable || false;\n var keyframe = tagObj.keyframe || false;\n var payload = null;\n var value;\n switch (type) {\n case 'u':\n value = Tools.readUnsigned(data);\n break;\n case 'f':\n value = Tools.readFloat(data);\n break;\n case 'i':\n value = Tools.readSigned(data);\n break;\n case 's':\n value = String.fromCharCode.apply(String, data);\n break;\n case '8':\n value = Tools.readUtf8(data);\n break;\n case 'd':\n value = Tools.readDate(data);\n break;\n default:\n break;\n }\n if (name === 'SimpleBlock' || name === 'Block') {\n var p = 0;\n var _a = Tools.readVint(data, p), length_1 = _a.length, trak = _a.value;\n p += length_1;\n track = trak;\n value = Tools.readSigned(data.subarray(p, p + 2));\n p += 2;\n if (name === 'SimpleBlock') {\n keyframe = Boolean(data[length_1 + 2] & 0x80);\n discardable = Boolean(data[length_1 + 2] & 0x01);\n }\n p += 1;\n payload = data.subarray(p);\n }\n return __assign(__assign({}, tagObj), { data: data, discardable: discardable, keyframe: keyframe, payload: payload, track: track, value: value });\n };\n return Tools;\n}());\nexports.default = Tools;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertEBMLDateToJSDate = exports.createFloatBuffer = exports.createIntBuffer = exports.createUIntBuffer = exports.encodeValueToBuffer = exports.concat = exports.putRefinedMetaData = exports.extractElement = exports.removeElement = exports.makeMetadataSeekable = exports.createRIFFChunk = exports.VP8BitStreamToRiffWebPBuffer = exports.WebPBlockFilter = exports.encodeTag = exports.readBlock = exports.ebmlBlock = exports.writeVint = exports.readVint = exports.Buffer = void 0;\n/// \nvar int64_buffer_1 = require(\"int64-buffer\");\nvar EBMLEncoder_1 = require(\"./EBMLEncoder\");\nvar _Buffer = require(\"buffer\");\nvar tools_ebml_1 = require(\"./tools-ebml\");\nvar _block = require(\"ebml-block\");\nexports.Buffer = _Buffer.Buffer;\nexports.readVint = tools_ebml_1.default.readVint;\nexports.writeVint = tools_ebml_1.default.writeVint;\nexports.ebmlBlock = _block;\nfunction readBlock(buf) {\n return (0, exports.ebmlBlock)(new exports.Buffer(buf));\n}\nexports.readBlock = readBlock;\n/**\n * @param end - if end === false then length is unknown\n */\nfunction encodeTag(tagId, tagData, unknownSize) {\n if (unknownSize === void 0) { unknownSize = false; }\n return concat([\n tagId,\n unknownSize ?\n new exports.Buffer('01ffffffffffffff', 'hex') :\n (0, exports.writeVint)(tagData.length),\n tagData\n ]);\n}\nexports.encodeTag = encodeTag;\n/**\n * WebP ファイルにできる SimpleBlock の パスフィルタ\n */\nfunction WebPBlockFilter(elms) {\n return elms.reduce(function (lst, elm) {\n if (elm.type !== \"b\") {\n return lst;\n }\n if (elm.name !== \"SimpleBlock\") {\n return lst;\n }\n var o = (0, exports.ebmlBlock)(elm.data);\n var hasWebP = o.frames.some(function (frame) {\n // https://tools.ietf.org/html/rfc6386#section-19.1\n var startcode = frame.slice(3, 6).toString(\"hex\");\n return startcode === \"9d012a\";\n });\n if (!hasWebP) {\n return lst;\n }\n return lst.concat(elm);\n }, []);\n}\nexports.WebPBlockFilter = WebPBlockFilter;\n/**\n * @param frame - VP8 BitStream のうち startcode をもつ frame\n * @return - WebP ファイルの ArrayBuffer\n */\nfunction VP8BitStreamToRiffWebPBuffer(frame) {\n var VP8Chunk = createRIFFChunk(\"VP8 \", frame);\n var WebPChunk = concat([\n new exports.Buffer(\"WEBP\", \"ascii\"),\n VP8Chunk\n ]);\n return createRIFFChunk(\"RIFF\", WebPChunk);\n}\nexports.VP8BitStreamToRiffWebPBuffer = VP8BitStreamToRiffWebPBuffer;\n/**\n * RIFF データチャンクを作る\n */\nfunction createRIFFChunk(FourCC, chunk) {\n var chunkSize = new exports.Buffer(4);\n chunkSize.writeUInt32LE(chunk.byteLength, 0);\n return concat([\n new exports.Buffer(FourCC.substr(0, 4), \"ascii\"),\n chunkSize,\n chunk,\n new exports.Buffer(chunk.byteLength % 2 === 0 ? 0 : 1) // padding\n ]);\n}\nexports.createRIFFChunk = createRIFFChunk;\n/* Original Metadata\n\n m 0\tEBML\n u 1\t EBMLVersion 1\n u 1\t EBMLReadVersion 1\n u 1\t EBMLMaxIDLength 4\n u 1\t EBMLMaxSizeLength 8\n s 1\t DocType webm\n u 1\t DocTypeVersion 4\n u 1\t DocTypeReadVersion 2\n m 0\tSegment\n m 1\t Info segmentContentStartPos, all CueClusterPositions provided in info.cues will be relative to here and will need adjusted\n u 2\t TimecodeScale 1000000\n 8 2\t MuxingApp Chrome\n 8 2\t WritingApp Chrome\n m 1\t Tracks tracksStartPos\n m 2\t TrackEntry\n u 3\t TrackNumber 1\n u 3\t TrackUID 31790271978391090\n u 3\t TrackType 2\n s 3\t CodecID A_OPUS\n b 3\t CodecPrivate \n m 3\t Audio\n f 4\t SamplingFrequency 48000\n u 4\t Channels 1\n m 2\t TrackEntry\n u 3\t TrackNumber 2\n u 3\t TrackUID 24051277436254136\n u 3\t TrackType 1\n s 3\t CodecID V_VP8\n m 3\t Video\n u 4\t PixelWidth 1024\n u 4\t PixelHeight 576\n m 1\t Cluster clusterStartPos\n u 2\t Timecode 0\n b 2\t SimpleBlock track:2 timecode:0\tkeyframe:true\tinvisible:false\tdiscardable:false\tlacing:1\n*/\n/* Desired Metadata\n\n m\t0 EBML\n u\t1 EBMLVersion 1\n u\t1 EBMLReadVersion 1\n u\t1 EBMLMaxIDLength 4\n u\t1 EBMLMaxSizeLength 8\n s\t1 DocType webm\n u\t1 DocTypeVersion 4\n u\t1 DocTypeReadVersion 2\n m\t0 Segment\n m\t1 SeekHead -> This is SeekPosition 0, so all SeekPositions can be calculated as (bytePos - segmentContentStartPos), which is 44 in this case\n m\t2 Seek\n b\t3 SeekID -> Buffer([0x15, 0x49, 0xA9, 0x66]) Info\n u\t3 SeekPosition -> infoStartPos =\n m\t2 Seek\n b\t3 SeekID -> Buffer([0x16, 0x54, 0xAE, 0x6B]) Tracks\n u\t3 SeekPosition { tracksStartPos }\n m\t2 Seek\n b\t3 SeekID -> Buffer([0x1C, 0x53, 0xBB, 0x6B]) Cues\n u\t3 SeekPosition { cuesStartPos }\n m\t1 Info\n f\t2 Duration 32480 -> overwrite, or insert if it doesn't exist\n u\t2 TimecodeScale 1000000\n 8\t2 MuxingApp Chrome\n 8\t2 WritingApp Chrome\n m\t1 Tracks\n m\t2 TrackEntry\n u\t3 TrackNumber 1\n u\t3 TrackUID 31790271978391090\n u\t3 TrackType 2\n s\t3 CodecID A_OPUS\n b\t3 CodecPrivate \n m\t3 Audio\n f\t4 SamplingFrequency 48000\n u\t4 Channels 1\n m\t2 TrackEntry\n u\t3 TrackNumber 2\n u\t3 TrackUID 24051277436254136\n u\t3 TrackType 1\n s\t3 CodecID V_VP8\n m\t3 Video\n u\t4 PixelWidth 1024\n u\t4 PixelHeight 576\n m 1 Cues -> cuesStartPos\n m 2 CuePoint\n u 3 CueTime 0\n m 3 CueTrackPositions\n u 4 CueTrack 1\n u 4 CueClusterPosition 3911\n m 2 CuePoint\n u 3 CueTime 600\n m 3 CueTrackPositions\n u 4 CueTrack 1\n u 4 CueClusterPosition 3911\n m 1 Cluster\n u 2 Timecode 0\n b 2 SimpleBlock track:2 timecode:0\tkeyframe:true\tinvisible:false\tdiscardable:false\tlacing:1\n*/\n/**\n * convert the metadata from a streaming webm bytestream to a seekable file by inserting Duration, Seekhead and Cues\n * @param originalMetadata - orginal metadata (everything before the clusters start) from media recorder\n * @param duration - Duration (TimecodeScale)\n * @param cues - cue points for clusters\n */\nfunction makeMetadataSeekable(originalMetadata, duration, cuesInfo) {\n // extract the header, we can reuse this as-is\n var header = extractElement(\"EBML\", originalMetadata);\n var headerSize = encodedSizeOfEbml(header);\n //console.error(\"Header size: \" + headerSize);\n //printElementIds(header);\n // After the header comes the Segment open tag, which in this implementation is always 12 bytes (4 byte id, 8 byte 'unknown length')\n // After that the segment content starts. All SeekPositions and CueClusterPosition must be relative to segmentContentStartPos\n var segmentContentStartPos = headerSize + 12;\n //console.error(\"segmentContentStartPos: \" + segmentContentStartPos); \n // find the original metadata size, and adjust it for header size and Segment start element so we can keep all positions relative to segmentContentStartPos\n var originalMetadataSize = originalMetadata[originalMetadata.length - 1].dataEnd - segmentContentStartPos;\n //console.error(\"Original Metadata size: \" + originalMetadataSize);\n //printElementIds(originalMetadata);\n // extract the segment info, remove the potentially existing Duration element, and add our own one.\n var info = extractElement(\"Info\", originalMetadata);\n removeElement(\"Duration\", info);\n info.splice(1, 0, { name: \"Duration\", type: \"f\", data: createFloatBuffer(duration, 8) });\n var infoSize = encodedSizeOfEbml(info);\n //console.error(\"Info size: \" + infoSize);\n //printElementIds(info); \n // extract the track info, we can re-use this as is\n var tracks = extractElement(\"Tracks\", originalMetadata);\n var tracksSize = encodedSizeOfEbml(tracks);\n //console.error(\"Tracks size: \" + tracksSize);\n //printElementIds(tracks); \n var seekHeadSize = 47; // Initial best guess, but could be slightly larger if the Cues element is huge.\n var seekHead = [];\n var cuesSize = 5 + cuesInfo.length * 15; // very rough initial approximation, depends a lot on file size and number of CuePoints \n var cues = [];\n var lastSizeDifference = -1; // \n // The size of SeekHead and Cues elements depends on how many bytes the offsets values can be encoded in.\n // The actual offsets in CueClusterPosition depend on the final size of the SeekHead and Cues elements\n // We need to iteratively converge to a stable solution.\n var maxIterations = 10;\n var _loop_1 = function (i) {\n // SeekHead starts at 0\n var infoStart = seekHeadSize; // Info comes directly after SeekHead\n var tracksStart = infoStart + infoSize; // Tracks comes directly after Info\n var cuesStart = tracksStart + tracksSize; // Cues starts directly after \n var newMetadataSize = cuesStart + cuesSize; // total size of metadata \n // This is the offset all CueClusterPositions should be adjusted by due to the metadata size changing.\n var sizeDifference = newMetadataSize - originalMetadataSize;\n // console.error(`infoStart: ${infoStart}, infoSize: ${infoSize}`);\n // console.error(`tracksStart: ${tracksStart}, tracksSize: ${tracksSize}`);\n // console.error(`cuesStart: ${cuesStart}, cuesSize: ${cuesSize}`);\n // console.error(`originalMetadataSize: ${originalMetadataSize}, newMetadataSize: ${newMetadataSize}, sizeDifference: ${sizeDifference}`); \n // create the SeekHead element\n seekHead = [];\n seekHead.push({ name: \"SeekHead\", type: \"m\", isEnd: false });\n seekHead.push({ name: \"Seek\", type: \"m\", isEnd: false });\n seekHead.push({ name: \"SeekID\", type: \"b\", data: new exports.Buffer([0x15, 0x49, 0xA9, 0x66]) }); // Info\n seekHead.push({ name: \"SeekPosition\", type: \"u\", data: createUIntBuffer(infoStart) });\n seekHead.push({ name: \"Seek\", type: \"m\", isEnd: true });\n seekHead.push({ name: \"Seek\", type: \"m\", isEnd: false });\n seekHead.push({ name: \"SeekID\", type: \"b\", data: new exports.Buffer([0x16, 0x54, 0xAE, 0x6B]) }); // Tracks\n seekHead.push({ name: \"SeekPosition\", type: \"u\", data: createUIntBuffer(tracksStart) });\n seekHead.push({ name: \"Seek\", type: \"m\", isEnd: true });\n seekHead.push({ name: \"Seek\", type: \"m\", isEnd: false });\n seekHead.push({ name: \"SeekID\", type: \"b\", data: new exports.Buffer([0x1C, 0x53, 0xBB, 0x6B]) }); // Cues\n seekHead.push({ name: \"SeekPosition\", type: \"u\", data: createUIntBuffer(cuesStart) });\n seekHead.push({ name: \"Seek\", type: \"m\", isEnd: true });\n seekHead.push({ name: \"SeekHead\", type: \"m\", isEnd: true });\n seekHeadSize = encodedSizeOfEbml(seekHead);\n //console.error(\"SeekHead size: \" + seekHeadSize);\n //printElementIds(seekHead); \n // create the Cues element\n cues = [];\n cues.push({ name: \"Cues\", type: \"m\", isEnd: false });\n cuesInfo.forEach(function (_a) {\n var CueTrack = _a.CueTrack, CueClusterPosition = _a.CueClusterPosition, CueTime = _a.CueTime;\n cues.push({ name: \"CuePoint\", type: \"m\", isEnd: false });\n cues.push({ name: \"CueTime\", type: \"u\", data: createUIntBuffer(CueTime) });\n cues.push({ name: \"CueTrackPositions\", type: \"m\", isEnd: false });\n cues.push({ name: \"CueTrack\", type: \"u\", data: createUIntBuffer(CueTrack) });\n //console.error(`CueClusterPosition: ${CueClusterPosition}, Corrected to: ${CueClusterPosition - segmentContentStartPos} , offset by ${sizeDifference} to become ${(CueClusterPosition - segmentContentStartPos) + sizeDifference - segmentContentStartPos}`);\n // EBMLReader returns CueClusterPosition with absolute byte offsets. The Cues section expects them as offsets from the first level 1 element of the Segment, so we need to adjust it.\n CueClusterPosition -= segmentContentStartPos;\n // We also need to adjust to take into account the change in metadata size from when EBMLReader read the original metadata.\n CueClusterPosition += sizeDifference;\n cues.push({ name: \"CueClusterPosition\", type: \"u\", data: createUIntBuffer(CueClusterPosition) });\n cues.push({ name: \"CueTrackPositions\", type: \"m\", isEnd: true });\n cues.push({ name: \"CuePoint\", type: \"m\", isEnd: true });\n });\n cues.push({ name: \"Cues\", type: \"m\", isEnd: true });\n cuesSize = encodedSizeOfEbml(cues);\n //console.error(\"Cues size: \" + cuesSize); \n //console.error(\"Cue count: \" + cuesInfo.length);\n //printElementIds(cues); \n // If the new MetadataSize is not the same as the previous iteration, we need to run once more.\n if (lastSizeDifference !== sizeDifference) {\n lastSizeDifference = sizeDifference;\n if (i === maxIterations - 1) {\n throw new Error(\"Failed to converge to a stable metadata size\");\n }\n }\n else {\n return \"break\";\n }\n };\n for (var i = 0; i < maxIterations; i++) {\n var state_1 = _loop_1(i);\n if (state_1 === \"break\")\n break;\n }\n var finalMetadata = [].concat.apply([], [\n header,\n { name: \"Segment\", type: \"m\", isEnd: false, unknownSize: true },\n seekHead,\n info,\n tracks,\n cues\n ]);\n var result = new EBMLEncoder_1.default().encode(finalMetadata);\n //printElementIds(finalMetadata);\n //console.error(`Final metadata buffer size: ${result.byteLength}`);\n //console.error(`Final metadata buffer size without header and segment: ${result.byteLength-segmentContentStartPos}`);\n return result;\n}\nexports.makeMetadataSeekable = makeMetadataSeekable;\n/**\n * print all element id names in a list\n\n * @param metadata - array of EBML elements to print\n *\nexport function printElementIds(metadata: EBML.EBMLElementBuffer[]) {\n\n let result: EBML.EBMLElementBuffer[] = [];\n let start: number = -1;\n\n for (let i = 0; i < metadata.length; i++) {\n console.error(\"\\t id: \" + metadata[i].name);\n }\n}\n*/\n/**\n * remove all occurances of an EBML element from an array of elements\n * If it's a MasterElement you will also remove the content. (everything between start and end)\n * @param idName - name of the EBML Element to remove.\n * @param metadata - array of EBML elements to search\n */\nfunction removeElement(idName, metadata) {\n var result = [];\n var start = -1;\n for (var i = 0; i < metadata.length; i++) {\n var element = metadata[i];\n if (element.name === idName) {\n // if it's a Master element, extract the start and end element, and everything in between\n if (element.type === \"m\") {\n if (!element.isEnd) {\n start = i;\n }\n else {\n // we've reached the end, extract the whole thing\n if (start == -1)\n throw new Error(\"Detected \".concat(idName, \" closing element before finding the start\"));\n metadata.splice(start, i - start + 1);\n return;\n }\n }\n else {\n // not a Master element, so we've found what we're looking for.\n metadata.splice(i, 1);\n return;\n }\n }\n }\n}\nexports.removeElement = removeElement;\n/**\n * extract the first occurance of an EBML tag from a flattened array of EBML data.\n * If it's a MasterElement you will also get the content. (everything between start and end)\n * @param idName - name of the EBML Element to extract.\n * @param metadata - array of EBML elements to search\n */\nfunction extractElement(idName, metadata) {\n var result = [];\n var start = -1;\n for (var i = 0; i < metadata.length; i++) {\n var element = metadata[i];\n if (element.name === idName) {\n // if it's a Master element, extract the start and end element, and everything in between\n if (element.type === \"m\") {\n if (!element.isEnd) {\n start = i;\n }\n else {\n // we've reached the end, extract the whole thing\n if (start == -1)\n throw new Error(\"Detected \".concat(idName, \" closing element before finding the start\"));\n result = metadata.slice(start, i + 1);\n break;\n }\n }\n else {\n // not a Master element, so we've found what we're looking for.\n result.push(metadata[i]);\n break;\n }\n }\n }\n return result;\n}\nexports.extractElement = extractElement;\n/**\n * @deprecated\n * metadata に対して duration と seekhead を追加した metadata を返す\n * @param metadata - 変更前の webm における ファイル先頭から 最初の Cluster 要素までの 要素\n * @param duration - Duration (TimecodeScale)\n * @param cues - cue points for clusters\n * @deprecated @param clusterPtrs - 変更前の webm における SeekHead に追加する Cluster 要素 への start pointer\n * @deprecated @param cueInfos - please use cues.\n */\nfunction putRefinedMetaData(metadata, info) {\n if (Array.isArray(info.cueInfos) && !Array.isArray(info.cues)) {\n console.warn(\"putRefinedMetaData: info.cueInfos property is deprecated. please use info.cues\");\n info.cues = info.cueInfos;\n }\n var ebml = [];\n var payload = [];\n for (var i_1 = 0; i_1 < metadata.length; i_1++) {\n var elm = metadata[i_1];\n if (elm.type === \"m\" && elm.name === \"Segment\") {\n ebml = metadata.slice(0, i_1);\n payload = metadata.slice(i_1);\n if (elm.unknownSize) {\n payload.shift(); // remove segment tag\n break;\n }\n throw new Error(\"this metadata is not streaming webm file\");\n }\n }\n // *0 *4 *5 *36 *40 *48=segmentOffset *185=originalPayloadOffsetEnd\n // | | | | | | |\n // [EBML][size]....[Segment][size][Info][size][Duration][size]...[Cluster]\n // | | |^inf | |\n // | +segmentSiz(12)+ |\n // +-ebmlSize(36)--+ | +-payloadSize(137)-------------+offsetEndDiff+\n // | | +-newPayloadSize(??)-------------------------+\n // | | | |\n // [Segment][size][Info][size][Duration][size]....[size][value][Cluster]\n // ^ |\n // | *??=newPayloadOffsetEnd\n // inf\n if (!(payload[payload.length - 1].dataEnd > 0)) {\n throw new Error(\"metadata dataEnd has wrong number\");\n }\n var originalPayloadOffsetEnd = payload[payload.length - 1].dataEnd; // = first cluster ptr\n var ebmlSize = ebml[ebml.length - 1].dataEnd; // = first segment ptr\n var refinedEBMLSize = new EBMLEncoder_1.default().encode(ebml).byteLength;\n var offsetDiff = refinedEBMLSize - ebmlSize;\n var payloadSize = originalPayloadOffsetEnd - payload[0].tagStart;\n var segmentSize = payload[0].tagStart - ebmlSize;\n var segmentOffset = payload[0].tagStart;\n var segmentTagBuf = new exports.Buffer([0x18, 0x53, 0x80, 0x67]); // Segment\n var segmentSizeBuf = new exports.Buffer('01ffffffffffffff', 'hex'); // Segmentの最後の位置は無数の Cluster 依存なので。 writeVint(newPayloadSize).byteLength ではなく、 infinity.\n var _segmentSize = segmentTagBuf.byteLength + segmentSizeBuf.byteLength; // == segmentSize\n var newPayloadSize = payloadSize;\n // We need the size to be stable between two refinements in order for our offsets to be correct\n // Bound the number of possible refinements so we can't go infinate if something goes wrong\n var i;\n for (i = 1; i < 20; i++) {\n var newPayloadOffsetEnd = ebmlSize + _segmentSize + newPayloadSize;\n var offsetEndDiff = newPayloadOffsetEnd - originalPayloadOffsetEnd;\n var sizeDiff = offsetDiff + offsetEndDiff;\n var refined = refineMetadata(payload, sizeDiff, info);\n var newNewRefinedSize = new EBMLEncoder_1.default().encode(refined).byteLength; // 一旦 seekhead を作って自身のサイズを調べる\n if (newNewRefinedSize === newPayloadSize) {\n // Size is stable\n return new EBMLEncoder_1.default().encode([].concat(ebml, [{ type: \"m\", name: \"Segment\", isEnd: false, unknownSize: true }], refined));\n }\n newPayloadSize = newNewRefinedSize;\n }\n throw new Error(\"unable to refine metadata, stable size could not be found in \" + i + \" iterations!\");\n}\nexports.putRefinedMetaData = putRefinedMetaData;\n// Given a list of EBMLElementBuffers, returns their encoded size in bytes\nfunction encodedSizeOfEbml(refinedMetaData) {\n var encorder = new EBMLEncoder_1.default();\n return refinedMetaData.reduce(function (lst, elm) { return lst.concat(encorder.encode([elm])); }, []).reduce(function (o, buf) { return o + buf.byteLength; }, 0);\n}\nfunction refineMetadata(mesetadata, sizeDiff, info) {\n var duration = info.duration, clusterPtrs = info.clusterPtrs, cues = info.cues;\n var _metadata = mesetadata.slice(0);\n if (typeof duration === \"number\") {\n // duration を追加する\n var overwrited_1 = false;\n _metadata.forEach(function (elm) {\n if (elm.type === \"f\" && elm.name === \"Duration\") {\n overwrited_1 = true;\n elm.data = createFloatBuffer(duration, 8);\n }\n });\n if (!overwrited_1) {\n insertTag(_metadata, \"Info\", [{ name: \"Duration\", type: \"f\", data: createFloatBuffer(duration, 8) }]);\n }\n }\n if (Array.isArray(cues)) {\n insertTag(_metadata, \"Cues\", create_cue(cues, sizeDiff));\n }\n var seekhead_children = [];\n if (Array.isArray(clusterPtrs)) {\n console.warn(\"append cluster pointers to seekhead is deprecated. please use cues\");\n seekhead_children = create_seek_from_clusters(clusterPtrs, sizeDiff);\n }\n // remove seek info\n /*\n _metadata = _metadata.filter((elm)=> !(\n elm.name === \"Seek\" ||\n elm.name === \"SeekID\" ||\n elm.name === \"SeekPosition\") );\n */\n // working on progress\n //seekhead_children = seekhead_children.concat(create_seekhead(_metadata));\n insertTag(_metadata, \"SeekHead\", seekhead_children, true);\n return _metadata;\n}\nfunction create_seekhead(metadata, sizeDiff) {\n var seeks = [];\n [\"Info\", \"Tracks\", \"Cues\"].forEach(function (tagName) {\n var tagStarts = metadata.filter(function (elm) { return elm.type === \"m\" && elm.name === tagName && elm.isEnd === false; }).map(function (elm) { return elm[\"tagStart\"]; });\n var tagStart = tagStarts[0];\n if (typeof tagStart !== \"number\") {\n return;\n }\n seeks.push({ name: \"Seek\", type: \"m\", isEnd: false });\n switch (tagName) {\n case \"Info\":\n seeks.push({ name: \"SeekID\", type: \"b\", data: new exports.Buffer([0x15, 0x49, 0xA9, 0x66]) });\n break;\n case \"Tracks\":\n seeks.push({ name: \"SeekID\", type: \"b\", data: new exports.Buffer([0x16, 0x54, 0xAE, 0x6B]) });\n break;\n case \"Cues\":\n seeks.push({ name: \"SeekID\", type: \"b\", data: new exports.Buffer([0x1C, 0x53, 0xBB, 0x6B]) });\n break;\n }\n seeks.push({ name: \"SeekPosition\", type: \"u\", data: createUIntBuffer(tagStart + sizeDiff) });\n seeks.push({ name: \"Seek\", type: \"m\", isEnd: true });\n });\n return seeks;\n}\nfunction create_seek_from_clusters(clusterPtrs, sizeDiff) {\n var seeks = [];\n clusterPtrs.forEach(function (start) {\n seeks.push({ name: \"Seek\", type: \"m\", isEnd: false });\n // [0x1F, 0x43, 0xB6, 0x75] で Cluster 意\n seeks.push({ name: \"SeekID\", type: \"b\", data: new exports.Buffer([0x1F, 0x43, 0xB6, 0x75]) });\n seeks.push({ name: \"SeekPosition\", type: \"u\", data: createUIntBuffer(start + sizeDiff) });\n seeks.push({ name: \"Seek\", type: \"m\", isEnd: true });\n });\n return seeks;\n}\nfunction create_cue(cueInfos, sizeDiff) {\n var cues = [];\n cueInfos.forEach(function (_a) {\n var CueTrack = _a.CueTrack, CueClusterPosition = _a.CueClusterPosition, CueTime = _a.CueTime;\n cues.push({ name: \"CuePoint\", type: \"m\", isEnd: false });\n cues.push({ name: \"CueTime\", type: \"u\", data: createUIntBuffer(CueTime) });\n cues.push({ name: \"CueTrackPositions\", type: \"m\", isEnd: false });\n cues.push({ name: \"CueTrack\", type: \"u\", data: createUIntBuffer(CueTrack) }); // video track\n cues.push({ name: \"CueClusterPosition\", type: \"u\", data: createUIntBuffer(CueClusterPosition + sizeDiff) });\n cues.push({ name: \"CueTrackPositions\", type: \"m\", isEnd: true });\n cues.push({ name: \"CuePoint\", type: \"m\", isEnd: true });\n });\n return cues;\n}\nfunction insertTag(_metadata, tagName, children, insertHead) {\n if (insertHead === void 0) { insertHead = false; }\n // find the tagname from _metadata\n var idx = -1;\n for (var i = 0; i < _metadata.length; i++) {\n var elm = _metadata[i];\n if (elm.type === \"m\" && elm.name === tagName && elm.isEnd === false) {\n idx = i;\n break;\n }\n }\n if (idx >= 0) {\n // insert [] to \n Array.prototype.splice.apply(_metadata, [idx + 1, 0].concat(children));\n }\n else if (insertHead) {\n [].concat([{ name: tagName, type: \"m\", isEnd: false }], children, [{ name: tagName, type: \"m\", isEnd: true }]).reverse().forEach(function (elm) { _metadata.unshift(elm); });\n }\n else {\n // metadata 末尾に を追加\n // insert \n _metadata.push({ name: tagName, type: \"m\", isEnd: false });\n children.forEach(function (elm) { _metadata.push(elm); });\n _metadata.push({ name: tagName, type: \"m\", isEnd: true });\n }\n}\nfunction concat(list) {\n return exports.Buffer.concat(list);\n}\nexports.concat = concat;\nfunction encodeValueToBuffer(elm) {\n var data = new exports.Buffer(0);\n if (elm.type === \"m\") {\n return elm;\n }\n switch (elm.type) {\n case \"u\":\n data = createUIntBuffer(elm.value);\n break;\n case \"i\":\n data = createIntBuffer(elm.value);\n break;\n case \"f\":\n data = createFloatBuffer(elm.value);\n break;\n case \"s\":\n data = new exports.Buffer(elm.value, 'ascii');\n break;\n case \"8\":\n data = new exports.Buffer(elm.value, 'utf8');\n break;\n case \"b\":\n data = elm.value;\n break;\n case \"d\":\n data = new int64_buffer_1.Int64BE(elm.value.getTime().toString()).toBuffer();\n break;\n }\n return Object.assign({}, elm, { data: data });\n}\nexports.encodeValueToBuffer = encodeValueToBuffer;\nfunction createUIntBuffer(value) {\n // Big-endian, any size from 1 to 8\n // but js number is float64, so max 6 bit octets\n var bytes = 1;\n for (; value >= Math.pow(2, 8 * bytes); bytes++) { }\n if (bytes >= 7) {\n console.warn(\"7bit or more bigger uint not supported.\");\n return new int64_buffer_1.Uint64BE(value).toBuffer();\n }\n var data = new exports.Buffer(bytes);\n data.writeUIntBE(value, 0, bytes);\n return data;\n}\nexports.createUIntBuffer = createUIntBuffer;\nfunction createIntBuffer(value) {\n // Big-endian, any size from 1 to 8 octets\n // but js number is float64, so max 6 bit\n var bytes = 1;\n for (; value >= Math.pow(2, 8 * bytes); bytes++) { }\n if (bytes >= 7) {\n console.warn(\"7bit or more bigger uint not supported.\");\n return new int64_buffer_1.Int64BE(value).toBuffer();\n }\n var data = new exports.Buffer(bytes);\n data.writeIntBE(value, 0, bytes);\n return data;\n}\nexports.createIntBuffer = createIntBuffer;\nfunction createFloatBuffer(value, bytes) {\n if (bytes === void 0) { bytes = 8; }\n // Big-endian, defined for 4 and 8 octets (32, 64 bits)\n // js number is float64 so 8 bytes.\n if (bytes === 8) {\n // 64bit\n var data = new exports.Buffer(8);\n data.writeDoubleBE(value, 0);\n return data;\n }\n else if (bytes === 4) {\n // 32bit\n var data = new exports.Buffer(4);\n data.writeFloatBE(value, 0);\n return data;\n }\n else {\n throw new Error(\"float type bits must 4bytes or 8bytes\");\n }\n}\nexports.createFloatBuffer = createFloatBuffer;\nfunction convertEBMLDateToJSDate(int64str) {\n if (int64str instanceof Date) {\n return int64str;\n }\n return new Date(new Date(\"2001-01-01T00:00:00.000Z\").getTime() + (Number(int64str) / 1000 / 1000));\n}\nexports.convertEBMLDateToJSDate = convertEBMLDateToJSDate;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ebml_1 = require(\"./ebml\");\n/**\n * based on ts-ebml and support large file,optimize memory usage during repair\n *\n * @param blob the blob you need to fix\n * @returns the blob that has been fixed\n *\n */\nfunction fixWebmDuration(blob) {\n return __awaiter(this, void 0, void 0, function () {\n var decoder, reader, readstream, readerBlob, _a, done, value, elms, refinedMetadataBuf, refinedMetadataBlob, firstPartBlobWithoutMetadata, finalBlob;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!blob) {\n throw Error('call to fixWebmDuration requires a blob');\n }\n decoder = new ebml_1.Decoder();\n reader = new ebml_1.Reader();\n readstream = blob.stream();\n readerBlob = readstream.getReader();\n _b.label = 1;\n case 1:\n if (!true) return [3 /*break*/, 3];\n return [4 /*yield*/, readerBlob.read()];\n case 2:\n _a = _b.sent(), done = _a.done, value = _a.value;\n if (done) {\n reader.stop();\n return [3 /*break*/, 3];\n }\n elms = decoder.decode(value);\n // As browser upgrade webm meta attributes are gradually added, \n // so filter unknown type to bypass this issue.\n elms = elms === null || elms === void 0 ? void 0 : elms.filter(function (elm) { return elm.type !== 'unknown'; });\n elms.forEach(function (elm) {\n reader.read(elm);\n });\n value = null;\n return [3 /*break*/, 1];\n case 3:\n refinedMetadataBuf = ebml_1.tools.makeMetadataSeekable(reader.metadatas, reader.duration, reader.cues);\n refinedMetadataBlob = new Blob([refinedMetadataBuf], { type: blob.type });\n firstPartBlobWithoutMetadata = blob.slice(reader.metadataSize);\n finalBlob = new Blob([refinedMetadataBlob, firstPartBlobWithoutMetadata], { type: blob.type });\n return [2 /*return*/, finalBlob];\n }\n });\n });\n}\nexports.default = fixWebmDuration;\n"],"names":["exports","byteLength","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","tmp","i","arr","Arr","_byteLength","curByte","len","revLookup","charCodeAt","fromByteArray","uint8","length","extraBytes","parts","maxChunkLength","len2","push","encodeChunk","lookup","join","Uint8Array","Array","code","Error","indexOf","start","end","num","output","base64","ieee754","customInspectSymbol","Symbol","Buffer","SlowBuffer","alloc","INSPECT_MAX_BYTES","K_MAX_LENGTH","createBuffer","RangeError","buf","Object","setPrototypeOf","prototype","arg","encodingOrOffset","TypeError","allocUnsafe","from","value","string","encoding","isEncoding","actual","write","slice","fromString","ArrayBuffer","isView","arrayView","isInstance","copy","fromArrayBuffer","buffer","byteOffset","fromArrayLike","fromArrayView","SharedArrayBuffer","valueOf","b","obj","isBuffer","checked","undefined","numberIsNaN","type","isArray","data","fromObject","toPrimitive","assertSize","size","array","toString","mustMatch","arguments","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","this","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","n","m","bidirectionalIndexOf","val","dir","arrayIndexOf","call","lastIndexOf","indexSize","arrLength","valLength","String","read","readUInt16BE","foundIndex","found","j","hexWrite","offset","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","str","byteArray","asciiToBytes","base64Write","ucs2Write","units","c","hi","lo","utf16leToBytes","Math","min","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","apply","decodeCodePointsArray","kMaxLength","TYPED_ARRAY_SUPPORT","proto","foo","e","typedArraySupport","console","error","defineProperty","enumerable","get","poolSize","fill","allocUnsafeSlow","_isBuffer","compare","a","x","y","concat","list","pos","set","swap16","swap32","swap64","toLocaleString","equals","inspect","max","replace","trim","target","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","_arr","ret","out","hexSliceLookupTable","bytes","checkOffset","ext","checkInt","wrtBigUInt64LE","checkIntBI","BigInt","wrtBigUInt64BE","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","newBuf","subarray","readUintLE","readUIntLE","mul","readUintBE","readUIntBE","readUint8","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readUInt32BE","readBigUInt64LE","defineBigIntMethod","validateNumber","first","last","boundsError","readBigUInt64BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readBigInt64LE","readBigInt64BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","writeUintBE","writeUIntBE","writeUint8","writeUInt8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeUInt32BE","writeBigUInt64LE","writeBigUInt64BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeBigInt64LE","writeBigInt64BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","errors","E","sym","getMessage","Base","constructor","super","writable","configurable","name","stack","message","addNumericalSeparator","range","ERR_OUT_OF_RANGE","checkBounds","ERR_INVALID_ARG_TYPE","floor","ERR_BUFFER_OUT_OF_BOUNDS","input","msg","received","isInteger","abs","INVALID_BASE64_RE","Infinity","leadSurrogate","split","base64clean","src","dst","alphabet","table","i16","fn","BufferBigIntNotDefined","BufferReader","XIPH_LACING","EBML_LACING","FIXED_SIZE_LACING","module","block","reader","trackNumber","nextUIntV","timecode","nextInt16BE","flags","nextUInt8","invisible","keyframe","discardable","lacing","frames","nextBuffer","frameSize","framesNum","frameSizes","nextIntV","readLacedData","vint","v","signed","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","args","Function","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","isNaN","EventEmitter","init","once","emitter","Promise","resolve","reject","errorListener","err","removeListener","resolver","eventTargetAgnosticAddListener","handler","on","addErrorHandlerIfEventEmitter","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","that","_addListener","prepend","events","existing","warning","create","newListener","emit","unshift","warned","w","count","warn","onceWrapper","fired","wrapFn","_onceWrap","state","wrapped","bind","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","addEventListener","wrapListener","removeEventListener","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","context","listeners","addListener","prependListener","prependOnceListener","position","originalListener","shift","index","pop","spliceOne","off","removeAllListeners","key","keys","rawListeners","eventNames","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","d","s","NaN","rt","log","LN2","storage","UNDEFINED","BUFFER","UINT8ARRAY","ARRAYBUFFER","ZERO","BIT32","BIT24","factory","bigendian","unsigned","posH","posL","pos0","pos1","pos2","pos3","fromPositive","fromPositiveBE","fromPositiveLE","fromNegative","fromNegativeBE","fromNegativeLE","Int64","isName","_isInt64","toNumber","radix","high","readInt32","low","sign","mod","toArray","toBuffer","toArrayBuffer","raddix","newArray","isValidBuffer","_storage","chr","writeInt32","fromArray","raw","arrbuf","dest","destbuf","destoff","srcbuf","srcoff","nodeName","State","int64_buffer_1","tools_1","tools","ebmlID_1","EBMLDecoder","_buffer","_tag_stack","_state","STATE_TAG","_cursor","_total","_schema","byEbmlID","_result","decode","chunk","readChunk","diff","readTag","STATE_SIZE","readSize","STATE_CONTENT","readContent","getSchemaInfo","tagNum","level","description","tag","readVint","reduce","o","schema","tagObj","EBML_ID","tagStart","tagEnd","sizeStart","sizeEnd","dataStart","dataEnd","dataSize","unknownSize","isEnd","elm","assign","convertEBMLDateToJSDate","Int64BE","topEle","EBMLEncoder","_buffers","_stack","encode","elms","_this","lst","endTag","startTag","writeTag","flush","tagName","tagNums","map","tagId","tagData","encodeTag","children","childTagDataBuffers","child","childTagDataBuffer","extendStatics","__extends","__proto__","p","hasOwnProperty","__","events_1","EBMLReader","_super","logGroup","hasLoggingStarted","metadataloaded","chunks","segmentOffset","last2SimpleBlockVideoTrackTimecode","last2SimpleBlockAudioTrackTimecode","lastClusterTimecode","lastClusterPosition","timecodeScale","metadataSize","metadatas","cues","firstVideoBlockRead","firstAudioBlockRead","currentTrack","TrackNumber","TrackType","DefaultDuration","CodecDelay","trackTypes","trackDefaultDuration","trackCodecDelay","trackInfo","ended","logging","use_duration_every_simpleblock","use_webp","use_segment_info","drop_default_duration","stop","emit_segment_info","groupEnd","duration","videoTrackNum","audioTrackNum","drop","parent_1","_a","ebmlBlock","frames_1","CueTime","CueTrack","CueClusterPosition","forEach","frame","webpBuf","VP8BitStreamToRiffWebPBuffer","webp","Blob","currentTime","put","defaultDuration","codecDelay","lastTimecode","_defaultDuration","delay","event","groupCollapsed","group","multiple","minver","webm","mandatory","cppname","bytesize","divx","type2","crc","__createBinding","k","k2","__exportStar","Reader","Encoder","Decoder","EBMLDecoder_1","default","EBMLEncoder_1","EBMLReader_1","__assign","t","__spreadArray","to","pack","ar","l","Tools","log2","number","readHexString","writeVint","concatenate","a1","a2","buff","q","acc","current","padStart","readUtf8","exception","readUnsigned","DataView","getUint8","getUint16","getUint32","readSigned","getInt8","getInt16","getInt32","readFloat","getFloat32","getFloat64","readDate","Date","readDataFromTag","track","payload","length_1","Boolean","createFloatBuffer","createIntBuffer","createUIntBuffer","encodeValueToBuffer","putRefinedMetaData","extractElement","removeElement","makeMetadataSeekable","createRIFFChunk","WebPBlockFilter","readBlock","_Buffer","tools_ebml_1","_block","FourCC","chunkSize","idName","metadata","element","splice","result","encodedSizeOfEbml","refinedMetaData","encorder","refineMetadata","mesetadata","sizeDiff","info","clusterPtrs","_metadata","overwrited_1","insertTag","cueInfos","create_cue","seekhead_children","seeks","create_seek_from_clusters","insertHead","idx","reverse","Uint64BE","some","VP8Chunk","originalMetadata","cuesInfo","header","segmentContentStartPos","originalMetadataSize","infoSize","tracks","tracksSize","seekHeadSize","seekHead","cuesSize","lastSizeDifference","_loop_1","infoStart","tracksStart","cuesStart","sizeDifference","maxIterations","finalMetadata","ebml","i_1","originalPayloadOffsetEnd","ebmlSize","offsetDiff","payloadSize","segmentTagBuf","segmentSizeBuf","_segmentSize","newPayloadSize","refined","newNewRefinedSize","getTime","int64str","__awaiter","thisArg","_arguments","P","generator","fulfilled","step","next","rejected","done","then","__generator","body","f","g","_","label","sent","trys","ops","verb","iterator","op","ebml_1","blob","decoder","readstream","readerBlob","refinedMetadataBuf","refinedMetadataBlob","firstPartBlobWithoutMetadata","_b","stream","getReader","filter"],"sourceRoot":""}
\ No newline at end of file
diff --git a/umd/765.prod.js b/umd/765.prod.js
index bcafce55..a9682966 100644
--- a/umd/765.prod.js
+++ b/umd/765.prod.js
@@ -1,2 +1,2 @@
-"use strict";(globalThis.webpackChunktinode_webapp=globalThis.webpackChunktinode_webapp||[]).push([[765],{8006:(d,$,t)=>{t.d($,{Z:()=>S});var e=t(2581),n=t(5864),r=t(1316),o=t(1089);function a(d,$,t){var n=new e.ZP(t).getCountryCodesForCallingCode(d);return n?n.filter((function(d){return function(d,$,t){var n=new e.ZP(t);if(n.selectNumberingPlan($),n.numberingPlan.possibleLengths().indexOf(d.length)>=0)return!0;return!1}($,d,t)})):[]}var i=t(5619);var u=/(\$\d)/;function l(d,$,t){var e=t.useInternationalFormat,n=t.withNationalPrefix,r=(t.carrierCode,t.metadata,d.replace(new RegExp($.pattern()),e?$.internationalFormat():n&&$.nationalPrefixFormattingRule()?$.format().replace(u,$.nationalPrefixFormattingRule()):$.format()));return e?function(d){return d.replace(new RegExp("[".concat(i.uv,"]+"),"g")," ").trim()}(r):r}var c=/^[\d]+(?:[~\u2053\u223C\uFF5E][\d]+)?$/;var f=t(457);function s(d,$){var t="undefined"!=typeof Symbol&&d[Symbol.iterator]||d["@@iterator"];if(t)return(t=t.call(d)).next.bind(t);if(Array.isArray(d)||(t=function(d,$){if(!d)return;if("string"==typeof d)return y(d,$);var t=Object.prototype.toString.call(d).slice(8,-1);"Object"===t&&d.constructor&&(t=d.constructor.name);if("Map"===t||"Set"===t)return Array.from(d);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return y(d,$)}(d))||$&&d&&"number"==typeof d.length){t&&(d=t);var e=0;return function(){return e>=d.length?{done:!0}:{done:!1,value:d[e++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function y(d,$){(null==$||$>d.length)&&($=d.length);for(var t=0,e=new Array($);t<$;t++)e[t]=d[t];return e}function h(d,$){var t=Object.keys(d);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(d);$&&(e=e.filter((function($){return Object.getOwnPropertyDescriptor(d,$).enumerable}))),t.push.apply(t,e)}return t}function p(d){for(var $=1;$0){var o=n.leadingDigitsPatterns()[n.leadingDigitsPatterns().length-1];if(0!==$.search(o))continue}if((0,r.Z)($,n.pattern()))return n}}(e.formats(),d);return o?l(d,o,{useInternationalFormat:"INTERNATIONAL"===t,withNationalPrefix:!o.nationalPrefixIsOptionalWhenFormattingInNationalFormat()||!n||!1!==n.nationalPrefix,carrierCode:$,metadata:e}):d}function C(d,$,t,e){return $?e(d,$,t):d}function P(d,$){var t=Object.keys(d);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(d);$&&(e=e.filter((function($){return Object.getOwnPropertyDescriptor(d,$).enumerable}))),t.push.apply(t,e)}return t}function O(d){for(var $=1;${t.d($,{ex:()=>e,sJ:()=>n,uv:()=>a,xc:()=>o,xg:()=>r,xy:()=>i});var e=2,n=17,r=3,o="0-90-9٠-٩۰-۹",a="".concat("-‐-―−ー-").concat("//").concat("..").concat(" ").concat("()()[]\\[\\]").concat("~⁓∼~"),i="++"},457:(d,$,t)=>{t.d($,{Y:()=>i,m:()=>a});var e=t(3345);function n(d,$){return function(d){if(Array.isArray(d))return d}(d)||function(d,$){var t=null==d?null:"undefined"!=typeof Symbol&&d[Symbol.iterator]||d["@@iterator"];if(null==t)return;var e,n,r=[],o=!0,a=!1;try{for(t=t.call(d);!(o=(e=t.next()).done)&&(r.push(e.value),!$||r.length!==$);o=!0);}catch(d){a=!0,n=d}finally{try{o||null==t.return||t.return()}finally{if(a)throw n}}return r}(d,$)||r(d,$)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function r(d,$){if(d){if("string"==typeof d)return o(d,$);var t=Object.prototype.toString.call(d).slice(8,-1);return"Object"===t&&d.constructor&&(t=d.constructor.name),"Map"===t||"Set"===t?Array.from(d):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?o(d,$):void 0}}function o(d,$){(null==$||$>d.length)&&($=d.length);for(var t=0,e=new Array($);t<$;t++)e[t]=d[t];return e}function a(d){for(var $,t,o,a=function(d,$){var t="undefined"!=typeof Symbol&&d[Symbol.iterator]||d["@@iterator"];if(t)return(t=t.call(d)).next.bind(t);if(Array.isArray(d)||(t=r(d))||$&&d&&"number"==typeof d.length){t&&(d=t);var e=0;return function(){return e>=d.length?{done:!0}:{done:!1,value:d[e++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}((d=d.replace(/^tel:/,"tel=")).split(";"));!(o=a()).done;){var i=n(o.value.split("="),2),u=i[0],l=i[1];switch(u){case"tel":$=l;break;case"ext":t=l;break;case"phone-context":"+"===l[0]&&($=l+$)}}if(!(0,e.ZP)($))return{};var c={number:$};return t&&(c.ext=t),c}function i(d){var $=d.number,t=d.ext;if(!$)return"";if("+"!==$[0])throw new Error('"formatRFC3966()" expects "number" to be in E.164 format.');return"tel:".concat($).concat(t?";ext="+t:"")}},7856:(d,$,t)=>{function e(d,$){var t="undefined"!=typeof Symbol&&d[Symbol.iterator]||d["@@iterator"];if(t)return(t=t.call(d)).next.bind(t);if(Array.isArray(d)||(t=function(d,$){if(!d)return;if("string"==typeof d)return n(d,$);var t=Object.prototype.toString.call(d).slice(8,-1);"Object"===t&&d.constructor&&(t=d.constructor.name);if("Map"===t||"Set"===t)return Array.from(d);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return n(d,$)}(d))||$&&d&&"number"==typeof d.length){t&&(d=t);var e=0;return function(){return e>=d.length?{done:!0}:{done:!1,value:d[e++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function n(d,$){(null==$||$>d.length)&&($=d.length);for(var t=0,e=new Array($);t<$;t++)e[t]=d[t];return e}function r(d,$){return o(d,void 0,$)}function o(d,$,t){var n=t.type($),r=n&&n.possibleLengths()||t.possibleLengths();if(!r)return"IS_POSSIBLE";if("FIXED_LINE_OR_MOBILE"===$){if(!t.type("FIXED_LINE"))return o(d,"MOBILE",t);var a=t.type("MOBILE");a&&(r=function(d,$){for(var t,n=d.slice(),r=e($);!(t=r()).done;){var o=t.value;d.indexOf(o)<0&&n.push(o)}return n.sort((function(d,$){return d-$}))}(r,a.possibleLengths()))}else if($&&!n)return"INVALID_LENGTH";var i=d.length,u=r[0];return u===i?"IS_POSSIBLE":u>i?"TOO_SHORT":r[r.length-1]=0?"IS_POSSIBLE":"INVALID_LENGTH"}t.d($,{Z:()=>r})},3878:(d,$,t)=>{t.d($,{Z:()=>r});var e=t(5619),n=function(d){return"([".concat(e.xc,"]{1,").concat(d,"})")};function r(d){var $="[ \\t,]*",t="[:\\..]?[ \\t,-]*",e="#?",r="[ \\t]*";return";ext="+n("20")+"|"+($+"(?:e?xt(?:ensi(?:ó?|ó))?n?|e?xtn?|доб|anexo)"+t+n("20")+e)+"|"+($+"(?:[xx##~~]|int|int)"+t+n("9")+e)+"|"+("[- ]+"+n("6")+"#")+"|"+(r+"(?:,{2}|;)"+t+n("15")+e)+"|"+(r+"(?:,)+"+t+n("9")+e)}},1089:(d,$,t)=>{t.d($,{Z:()=>i});var e=t(2581),n=t(1316);function r(d,$){var t="undefined"!=typeof Symbol&&d[Symbol.iterator]||d["@@iterator"];if(t)return(t=t.call(d)).next.bind(t);if(Array.isArray(d)||(t=function(d,$){if(!d)return;if("string"==typeof d)return o(d,$);var t=Object.prototype.toString.call(d).slice(8,-1);"Object"===t&&d.constructor&&(t=d.constructor.name);if("Map"===t||"Set"===t)return Array.from(d);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return o(d,$)}(d))||$&&d&&"number"==typeof d.length){t&&(d=t);var e=0;return function(){return e>=d.length?{done:!0}:{done:!1,value:d[e++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function o(d,$){(null==$||$>d.length)&&($=d.length);for(var t=0,e=new Array($);t<$;t++)e[t]=d[t];return e}var a=["MOBILE","PREMIUM_RATE","TOLL_FREE","SHARED_COST","VOIP","PERSONAL_NUMBER","PAGER","UAN","VOICEMAIL"];function i(d,$,t){if($=$||{},d.country){(t=new e.ZP(t)).selectNumberingPlan(d.country,d.countryCallingCode);var o=$.v2?d.nationalNumber:d.phone;if((0,n.Z)(o,t.nationalNumberPattern())){if(u(o,"FIXED_LINE",t))return t.type("MOBILE")&&""===t.type("MOBILE").pattern()?"FIXED_LINE_OR_MOBILE":t.type("MOBILE")?u(o,"MOBILE",t)?"FIXED_LINE_OR_MOBILE":"FIXED_LINE":"FIXED_LINE_OR_MOBILE";for(var i,l=r(a);!(i=l()).done;){var c=i.value;if(u(o,c,t))return c}}}}function u(d,$,t){return!(!($=t.type($))||!$.pattern())&&(!($.possibleLengths()&&$.possibleLengths().indexOf(d.length)<0)&&(0,n.Z)(d,$.pattern()))}},3345:(d,$,t)=>{t.d($,{ZP:()=>l,ch:()=>c});var e=t(5619),n=t(3878),r="["+e.xc+"]{"+e.ex+"}",o="["+e.xy+"]{0,1}(?:["+e.uv+"]*["+e.xc+"]){3,}["+e.uv+e.xc+"]*",a=new RegExp("^["+e.xy+"]{0,1}(?:["+e.uv+"]*["+e.xc+"]){1,2}$","i"),i=o+"(?:"+(0,n.Z)()+")?",u=new RegExp("^"+r+"$|^"+i+"$","i");function l(d){return d.length>=e.ex&&u.test(d)}function c(d){return a.test(d)}},1316:(d,$,t)=>{function e(d,$){return d=d||"",new RegExp("^(?:"+$+")$").test(d)}t.d($,{Z:()=>e})},5864:(d,$,t)=>{t.d($,{D:()=>o,Z:()=>r});var e=t(2581),n=t(7856);function r(d,$,t){if(void 0===$&&($={}),t=new e.ZP(t),$.v2){if(!d.countryCallingCode)throw new Error("Invalid phone number object passed");t.selectNumberingPlan(d.countryCallingCode)}else{if(!d.phone)return!1;if(d.country){if(!t.hasCountry(d.country))throw new Error("Unknown country: ".concat(d.country));t.country(d.country)}else{if(!d.countryCallingCode)throw new Error("Invalid phone number object passed");t.selectNumberingPlan(d.countryCallingCode)}}if(t.possibleLengths())return o(d.phone||d.nationalNumber,t);if(d.countryCallingCode&&t.isNonGeographicCallingCode(d.countryCallingCode))return!0;throw new Error('Missing "possibleLengths" in metadata. Perhaps the metadata has been generated before v1.0.18.')}function o(d,$){return"IS_POSSIBLE"===(0,n.Z)(d,$)}},2581:(d,$,t)=>{function e(d,$){d=d.split("-"),$=$.split("-");for(var t=d[0].split("."),e=$[0].split("."),n=0;n<3;n++){var r=Number(t[n]),o=Number(e[n]);if(r>o)return 1;if(o>r)return-1;if(!isNaN(r)&&isNaN(o))return 1;if(isNaN(r)&&!isNaN(o))return-1}return d[1]&&$[1]?d[1]>$[1]?1:d[1]<$[1]?-1:0:!d[1]&&$[1]?1:d[1]&&!$[1]?-1:0}function n(d){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(d){return typeof d}:function(d){return d&&"function"==typeof Symbol&&d.constructor===Symbol&&d!==Symbol.prototype?"symbol":typeof d},n(d)}function r(d,$){if(!(d instanceof $))throw new TypeError("Cannot call a class as a function")}function o(d,$){for(var t=0;t<$.length;t++){var e=$[t];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(d,e.key,e)}}function a(d,$,t){return $&&o(d.prototype,$),t&&o(d,t),Object.defineProperty(d,"prototype",{writable:!1}),d}t.d($,{ZP:()=>l,Gg:()=>b});var i=" ext. ",u=/^\d+$/,l=function(){function d($){r(this,d),function(d){if(!d)throw new Error("[libphonenumber-js] `metadata` argument not passed. Check your arguments.");if(!p(d)||!p(d.countries))throw new Error("[libphonenumber-js] `metadata` argument was passed but it's not a valid metadata. Must be an object having `.countries` child object property. Got ".concat(p(d)?"an object of shape: { "+Object.keys(d).join(", ")+" }":"a "+m(d)+": "+d,"."))}($),this.metadata=$,g.call(this,$)}return a(d,[{key:"getCountries",value:function(){return Object.keys(this.metadata.countries).filter((function(d){return"001"!==d}))}},{key:"getCountryMetadata",value:function(d){return this.metadata.countries[d]}},{key:"nonGeographic",value:function(){if(!(this.v1||this.v2||this.v3))return this.metadata.nonGeographic||this.metadata.nonGeographical}},{key:"hasCountry",value:function(d){return void 0!==this.getCountryMetadata(d)}},{key:"hasCallingCode",value:function(d){if(this.getCountryCodesForCallingCode(d))return!0;if(this.nonGeographic()){if(this.nonGeographic()[d])return!0}else{var $=this.countryCallingCodes()[d];if($&&1===$.length&&"001"===$[0])return!0}}},{key:"isNonGeographicCallingCode",value:function(d){return this.nonGeographic()?!!this.nonGeographic()[d]:!this.getCountryCodesForCallingCode(d)}},{key:"country",value:function(d){return this.selectNumberingPlan(d)}},{key:"selectNumberingPlan",value:function(d,$){if(d&&u.test(d)&&($=d,d=null),d&&"001"!==d){if(!this.hasCountry(d))throw new Error("Unknown country: ".concat(d));this.numberingPlan=new c(this.getCountryMetadata(d),this)}else if($){if(!this.hasCallingCode($))throw new Error("Unknown calling code: ".concat($));this.numberingPlan=new c(this.getNumberingPlanMetadata($),this)}else this.numberingPlan=void 0;return this}},{key:"getCountryCodesForCallingCode",value:function(d){var $=this.countryCallingCodes()[d];if($){if(1===$.length&&3===$[0].length)return;return $}}},{key:"getCountryCodeForCallingCode",value:function(d){var $=this.getCountryCodesForCallingCode(d);if($)return $[0]}},{key:"getNumberingPlanMetadata",value:function(d){var $=this.getCountryCodeForCallingCode(d);if($)return this.getCountryMetadata($);if(this.nonGeographic()){var t=this.nonGeographic()[d];if(t)return t}else{var e=this.countryCallingCodes()[d];if(e&&1===e.length&&"001"===e[0])return this.metadata.countries["001"]}}},{key:"countryCallingCode",value:function(){return this.numberingPlan.callingCode()}},{key:"IDDPrefix",value:function(){return this.numberingPlan.IDDPrefix()}},{key:"defaultIDDPrefix",value:function(){return this.numberingPlan.defaultIDDPrefix()}},{key:"nationalNumberPattern",value:function(){return this.numberingPlan.nationalNumberPattern()}},{key:"possibleLengths",value:function(){return this.numberingPlan.possibleLengths()}},{key:"formats",value:function(){return this.numberingPlan.formats()}},{key:"nationalPrefixForParsing",value:function(){return this.numberingPlan.nationalPrefixForParsing()}},{key:"nationalPrefixTransformRule",value:function(){return this.numberingPlan.nationalPrefixTransformRule()}},{key:"leadingDigits",value:function(){return this.numberingPlan.leadingDigits()}},{key:"hasTypes",value:function(){return this.numberingPlan.hasTypes()}},{key:"type",value:function(d){return this.numberingPlan.type(d)}},{key:"ext",value:function(){return this.numberingPlan.ext()}},{key:"countryCallingCodes",value:function(){return this.v1?this.metadata.country_phone_code_to_countries:this.metadata.country_calling_codes}},{key:"chooseCountryByCountryCallingCode",value:function(d){return this.selectNumberingPlan(d)}},{key:"hasSelectedNumberingPlan",value:function(){return void 0!==this.numberingPlan}}]),d}(),c=function(){function d($,t){r(this,d),this.globalMetadataObject=t,this.metadata=$,g.call(this,t.metadata)}return a(d,[{key:"callingCode",value:function(){return this.metadata[0]}},{key:"getDefaultCountryMetadataForRegion",value:function(){return this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode())}},{key:"IDDPrefix",value:function(){if(!this.v1&&!this.v2)return this.metadata[1]}},{key:"defaultIDDPrefix",value:function(){if(!this.v1&&!this.v2)return this.metadata[12]}},{key:"nationalNumberPattern",value:function(){return this.v1||this.v2?this.metadata[1]:this.metadata[2]}},{key:"possibleLengths",value:function(){if(!this.v1)return this.metadata[this.v2?2:3]}},{key:"_getFormats",value:function(d){return d[this.v1?2:this.v2?3:4]}},{key:"formats",value:function(){var d=this,$=this._getFormats(this.metadata)||this._getFormats(this.getDefaultCountryMetadataForRegion())||[];return $.map((function($){return new f($,d)}))}},{key:"nationalPrefix",value:function(){return this.metadata[this.v1?3:this.v2?4:5]}},{key:"_getNationalPrefixFormattingRule",value:function(d){return d[this.v1?4:this.v2?5:6]}},{key:"nationalPrefixFormattingRule",value:function(){return this._getNationalPrefixFormattingRule(this.metadata)||this._getNationalPrefixFormattingRule(this.getDefaultCountryMetadataForRegion())}},{key:"_nationalPrefixForParsing",value:function(){return this.metadata[this.v1?5:this.v2?6:7]}},{key:"nationalPrefixForParsing",value:function(){return this._nationalPrefixForParsing()||this.nationalPrefix()}},{key:"nationalPrefixTransformRule",value:function(){return this.metadata[this.v1?6:this.v2?7:8]}},{key:"_getNationalPrefixIsOptionalWhenFormatting",value:function(){return!!this.metadata[this.v1?7:this.v2?8:9]}},{key:"nationalPrefixIsOptionalWhenFormattingInNationalFormat",value:function(){return this._getNationalPrefixIsOptionalWhenFormatting(this.metadata)||this._getNationalPrefixIsOptionalWhenFormatting(this.getDefaultCountryMetadataForRegion())}},{key:"leadingDigits",value:function(){return this.metadata[this.v1?8:this.v2?9:10]}},{key:"types",value:function(){return this.metadata[this.v1?9:this.v2?10:11]}},{key:"hasTypes",value:function(){return(!this.types()||0!==this.types().length)&&!!this.types()}},{key:"type",value:function(d){if(this.hasTypes()&&h(this.types(),d))return new y(h(this.types(),d),this)}},{key:"ext",value:function(){return this.v1||this.v2?i:this.metadata[13]||i}}]),d}(),f=function(){function d($,t){r(this,d),this._format=$,this.metadata=t}return a(d,[{key:"pattern",value:function(){return this._format[0]}},{key:"format",value:function(){return this._format[1]}},{key:"leadingDigitsPatterns",value:function(){return this._format[2]||[]}},{key:"nationalPrefixFormattingRule",value:function(){return this._format[3]||this.metadata.nationalPrefixFormattingRule()}},{key:"nationalPrefixIsOptionalWhenFormattingInNationalFormat",value:function(){return!!this._format[4]||this.metadata.nationalPrefixIsOptionalWhenFormattingInNationalFormat()}},{key:"nationalPrefixIsMandatoryWhenFormattingInNationalFormat",value:function(){return this.usesNationalPrefix()&&!this.nationalPrefixIsOptionalWhenFormattingInNationalFormat()}},{key:"usesNationalPrefix",value:function(){return!(!this.nationalPrefixFormattingRule()||s.test(this.nationalPrefixFormattingRule()))}},{key:"internationalFormat",value:function(){return this._format[5]||this.format()}}]),d}(),s=/^\(?\$1\)?$/,y=function(){function d($,t){r(this,d),this.type=$,this.metadata=t}return a(d,[{key:"pattern",value:function(){return this.metadata.v1?this.type:this.type[0]}},{key:"possibleLengths",value:function(){if(!this.metadata.v1)return this.type[1]||this.metadata.possibleLengths()}}]),d}();function h(d,$){switch($){case"FIXED_LINE":return d[0];case"MOBILE":return d[1];case"TOLL_FREE":return d[2];case"PREMIUM_RATE":return d[3];case"PERSONAL_NUMBER":return d[4];case"VOICEMAIL":return d[5];case"UAN":return d[6];case"PAGER":return d[7];case"VOIP":return d[8];case"SHARED_COST":return d[9]}}var p=function(d){return"object"===n(d)},m=function(d){return n(d)};function b(d,$){if(($=new l($)).hasCountry(d))return $.country(d).countryCallingCode();throw new Error("Unknown country: ".concat(d))}function g(d){var $=d.version;"number"==typeof $?(this.v1=1===$,this.v2=2===$,this.v3=3===$,this.v4=4===$):$?-1===e($,"1.2.0")?this.v2=!0:-1===e($,"1.7.35")?this.v3=!0:this.v4=!0:this.v1=!0}},6359:(d,$,t)=>{t.d($,{Z:()=>e});const e={AC:"40123",AD:"312345",AE:"501234567",AF:"701234567",AG:"2684641234",AI:"2642351234",AL:"672123456",AM:"77123456",AO:"923123456",AR:"91123456789",AS:"6847331234",AT:"664123456",AU:"412345678",AW:"5601234",AX:"412345678",AZ:"401234567",BA:"61123456",BB:"2462501234",BD:"1812345678",BE:"470123456",BF:"70123456",BG:"43012345",BH:"36001234",BI:"79561234",BJ:"90011234",BL:"690001234",BM:"4413701234",BN:"7123456",BO:"71234567",BQ:"3181234",BR:"11961234567",BS:"2423591234",BT:"17123456",BW:"71123456",BY:"294911911",BZ:"6221234",CA:"5062345678",CC:"412345678",CD:"991234567",CF:"70012345",CG:"061234567",CH:"781234567",CI:"0123456789",CK:"71234",CL:"221234567",CM:"671234567",CN:"13123456789",CO:"3211234567",CR:"83123456",CU:"51234567",CV:"9911234",CW:"95181234",CX:"412345678",CY:"96123456",CZ:"601123456",DE:"15123456789",DJ:"77831001",DK:"32123456",DM:"7672251234",DO:"8092345678",DZ:"551234567",EC:"991234567",EE:"51234567",EG:"1001234567",EH:"650123456",ER:"7123456",ES:"612345678",ET:"911234567",FI:"412345678",FJ:"7012345",FK:"51234",FM:"3501234",FO:"211234",FR:"612345678",GA:"06031234",GB:"7400123456",GD:"4734031234",GE:"555123456",GF:"694201234",GG:"7781123456",GH:"231234567",GI:"57123456",GL:"221234",GM:"3012345",GN:"601123456",GP:"690001234",GQ:"222123456",GR:"6912345678",GT:"51234567",GU:"6713001234",GW:"955012345",GY:"6091234",HK:"51234567",HN:"91234567",HR:"921234567",HT:"34101234",HU:"201234567",ID:"812345678",IE:"850123456",IL:"502345678",IM:"7924123456",IN:"8123456789",IO:"3801234",IQ:"7912345678",IR:"9123456789",IS:"6111234",IT:"3123456789",JE:"7797712345",JM:"8762101234",JO:"790123456",JP:"9012345678",KE:"712123456",KG:"700123456",KH:"91234567",KI:"72001234",KM:"3212345",KN:"8697652917",KP:"1921234567",KR:"1020000000",KW:"50012345",KY:"3453231234",KZ:"7710009998",LA:"2023123456",LB:"71123456",LC:"7582845678",LI:"660234567",LK:"712345678",LR:"770123456",LS:"50123456",LT:"61234567",LU:"628123456",LV:"21234567",LY:"912345678",MA:"650123456",MC:"612345678",MD:"62112345",ME:"67622901",MF:"690001234",MG:"321234567",MH:"2351234",MK:"72345678",ML:"65012345",MM:"92123456",MN:"88123456",MO:"66123456",MP:"6702345678",MQ:"696201234",MR:"22123456",MS:"6644923456",MT:"96961234",MU:"52512345",MV:"7712345",MW:"991234567",MX:"12221234567",MY:"123456789",MZ:"821234567",NA:"811234567",NC:"751234",NE:"93123456",NF:"381234",NG:"8021234567",NI:"81234567",NL:"612345678",NO:"40612345",NP:"9841234567",NR:"5551234",NU:"8884012",NZ:"211234567",OM:"92123456",PA:"61234567",PE:"912345678",PF:"87123456",PG:"70123456",PH:"9051234567",PK:"3012345678",PL:"512345678",PM:"551234",PR:"7872345678",PS:"599123456",PT:"912345678",PW:"6201234",PY:"961456789",QA:"33123456",RE:"692123456",RO:"712034567",RS:"601234567",RU:"9123456789",RW:"720123456",SA:"512345678",SB:"7421234",SC:"2510123",SD:"911231234",SE:"701234567",SG:"81234567",SH:"51234",SI:"31234567",SJ:"41234567",SK:"912123456",SL:"25123456",SM:"66661212",SN:"701234567",SO:"71123456",SR:"7412345",SS:"977123456",ST:"9812345",SV:"70123456",SX:"7215205678",SY:"944567890",SZ:"76123456",TA:"8999",TC:"6492311234",TD:"63012345",TG:"90112345",TH:"812345678",TJ:"917123456",TK:"7290",TL:"77212345",TM:"66123456",TN:"20123456",TO:"7715123",TR:"5012345678",TT:"8682911234",TV:"901234",TW:"912345678",TZ:"621234567",UA:"501234567",UG:"712345678",US:"2015550123",UY:"94231234",UZ:"912345678",VA:"3123456789",VC:"7844301234",VE:"4121234567",VG:"2843001234",VI:"3406421234",VN:"912345678",VU:"5912345",WF:"821234",WS:"7212345",XK:"43201234",YE:"712345678",YT:"639012345",ZA:"711234567",ZM:"955123456",ZW:"712345678"}},2689:(d,$,t)=>{t.d($,{L:()=>o});var e=t(8659),n=t(8006);function r(d,$,t){if($[d])return new n.Z(d,$[d],t)}function o(){return(0,e.Z)(r,arguments)}},2703:(d,$,t)=>{t.d($,{h:()=>q});var e=t(8659),n=t(5619);function r(d){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(d){return typeof d}:function(d){return d&&"function"==typeof Symbol&&d.constructor===Symbol&&d!==Symbol.prototype?"symbol":typeof d},r(d)}function o(d,$){for(var t=0;t<$.length;t++){var e=$[t];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(d,e.key,e)}}function a(d,$){if($&&("object"===r($)||"function"==typeof $))return $;if(void 0!==$)throw new TypeError("Derived constructors may only return object or undefined");return i(d)}function i(d){if(void 0===d)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return d}function u(d){var $="function"==typeof Map?new Map:void 0;return u=function(d){if(null===d||(t=d,-1===Function.toString.call(t).indexOf("[native code]")))return d;var t;if("function"!=typeof d)throw new TypeError("Super expression must either be null or a function");if(void 0!==$){if($.has(d))return $.get(d);$.set(d,e)}function e(){return l(d,arguments,s(this).constructor)}return e.prototype=Object.create(d.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),f(e,d)},u(d)}function l(d,$,t){return l=c()?Reflect.construct:function(d,$,t){var e=[null];e.push.apply(e,$);var n=new(Function.bind.apply(d,e));return t&&f(n,t.prototype),n},l.apply(null,arguments)}function c(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(d){return!1}}function f(d,$){return f=Object.setPrototypeOf||function(d,$){return d.__proto__=$,d},f(d,$)}function s(d){return s=Object.setPrototypeOf?Object.getPrototypeOf:function(d){return d.__proto__||Object.getPrototypeOf(d)},s(d)}var y=function(d){!function(d,$){if("function"!=typeof $&&null!==$)throw new TypeError("Super expression must either be null or a function");d.prototype=Object.create($&&$.prototype,{constructor:{value:d,writable:!0,configurable:!0}}),Object.defineProperty(d,"prototype",{writable:!1}),$&&f(d,$)}(l,d);var $,t,e,n,r,u=($=l,t=c(),function(){var d,e=s($);if(t){var n=s(this).constructor;d=Reflect.construct(e,arguments,n)}else d=e.apply(this,arguments);return a(this,d)});function l(d){var $;return function(d,$){if(!(d instanceof $))throw new TypeError("Cannot call a class as a function")}(this,l),$=u.call(this,d),Object.setPrototypeOf(i($),l.prototype),$.name=$.constructor.name,$}return e=l,n&&o(e.prototype,n),r&&o(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}(u(Error)),h=t(2581),p=t(3345),m=t(3878),b=new RegExp("(?:"+(0,m.Z)()+")$","i");var g={0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9","0":"0","1":"1","2":"2","3":"3","4":"4","5":"5","6":"6","7":"7","8":"8","9":"9","٠":"0","١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","۰":"0","۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9"};function v(d){return g[d]}function C(d,$){var t="undefined"!=typeof Symbol&&d[Symbol.iterator]||d["@@iterator"];if(t)return(t=t.call(d)).next.bind(t);if(Array.isArray(d)||(t=function(d,$){if(!d)return;if("string"==typeof d)return P(d,$);var t=Object.prototype.toString.call(d).slice(8,-1);"Object"===t&&d.constructor&&(t=d.constructor.name);if("Map"===t||"Set"===t)return Array.from(d);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return P(d,$)}(d))||$&&d&&"number"==typeof d.length){t&&(d=t);var e=0;return function(){return e>=d.length?{done:!0}:{done:!1,value:d[e++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function P(d,$){(null==$||$>d.length)&&($=d.length);for(var t=0,e=new Array($);t<$;t++)e[t]=d[t];return e}function O(d){for(var $,t="",e=C(d.split(""));!($=e()).done;){t+=N($.value,t)||""}return t}function N(d,$){if("+"===d){if($)return;return"+"}return v(d)}var E=t(5864),S=t(457),I=t(8006),w=t(1316),A=new RegExp("(["+n.xc+"])");var M=t(7856);function T(d,$){var t=function(d,$){if(d&&$.numberingPlan.nationalPrefixForParsing()){var t=new RegExp("^(?:"+$.numberingPlan.nationalPrefixForParsing()+")"),e=t.exec(d);if(e){var n,r,o,a=e.length-1,i=a>0&&e[a];if($.nationalPrefixTransformRule()&&i)n=d.replace(t,$.nationalPrefixTransformRule()),a>1&&(r=e[1]);else{var u=e[0];n=d.slice(u.length),i&&(r=e[1])}if(i){var l=d.indexOf(e[1]);d.slice(0,l)===$.numberingPlan.nationalPrefix()&&(o=$.numberingPlan.nationalPrefix())}else o=e[0];return{nationalNumber:n,nationalPrefix:o,carrierCode:r}}}return{nationalNumber:d}}(d,$),e=t.carrierCode,n=t.nationalNumber;if(n!==d){if(!function(d,$,t){if((0,w.Z)(d,t.nationalNumberPattern())&&!(0,w.Z)($,t.nationalNumberPattern()))return!1;return!0}(d,n,$))return{nationalNumber:d};if($.possibleLengths()&&!function(d,$){switch((0,M.Z)(d,$)){case"TOO_SHORT":case"INVALID_LENGTH":return!1;default:return!0}}(n,$))return{nationalNumber:d}}return{nationalNumber:n,carrierCode:e}}function x(d,$,t,e){if(!d)return{};if("+"!==d[0]){var r=function(d,$,t,e){if($){var n=new h.ZP(e);n.selectNumberingPlan($,t);var r=new RegExp(n.IDDPrefix());if(0===d.search(r)){var o=(d=d.slice(d.match(r)[0].length)).match(A);if(!(o&&null!=o[1]&&o[1].length>0&&"0"===o[1]))return d}}}(d,$,t,e);if(!r||r===d){if($||t){var o=function(d,$,t,e){var n=$?(0,h.Gg)($,e):t;if(0===d.indexOf(n)){(e=new h.ZP(e)).selectNumberingPlan($,t);var r=d.slice(n.length),o=T(r,e).nationalNumber,a=T(d,e).nationalNumber;if(!(0,w.Z)(a,e.nationalNumberPattern())&&(0,w.Z)(o,e.nationalNumberPattern())||"TOO_LONG"===(0,M.Z)(a,e))return{countryCallingCode:n,number:r}}return{number:d}}(d,$,t,e),a=o.countryCallingCode,i=o.number;if(a)return{countryCallingCode:a,number:i}}return{number:d}}d="+"+r}if("0"===d[1])return{};e=new h.ZP(e);for(var u=2;u-1<=n.xg&&u<=d.length;){var l=d.slice(1,u);if(e.hasCallingCode(l))return e.selectNumberingPlan(l),{countryCallingCode:l,number:d.slice(u)};u++}return{}}var R=t(1089);function L(d,$){var t="undefined"!=typeof Symbol&&d[Symbol.iterator]||d["@@iterator"];if(t)return(t=t.call(d)).next.bind(t);if(Array.isArray(d)||(t=function(d,$){if(!d)return;if("string"==typeof d)return G(d,$);var t=Object.prototype.toString.call(d).slice(8,-1);"Object"===t&&d.constructor&&(t=d.constructor.name);if("Map"===t||"Set"===t)return Array.from(d);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return G(d,$)}(d))||$&&d&&"number"==typeof d.length){t&&(d=t);var e=0;return function(){return e>=d.length?{done:!0}:{done:!1,value:d[e++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function G(d,$){(null==$||$>d.length)&&($=d.length);for(var t=0,e=new Array($);t<$;t++)e[t]=d[t];return e}function D(d,$,t){var e=t.getCountryCodesForCallingCode(d);if(e)return 1===e.length?e[0]:function(d,$,t){t=new h.ZP(t);for(var e,n=L(d);!(e=n()).done;){var r=e.value;if(t.country(r),t.leadingDigits()){if($&&0===$.search(t.leadingDigits()))return r}else if((0,R.Z)({phone:$,country:r},void 0,t.metadata))return r}}(e,$,t.metadata)}var F=new RegExp("["+n.xy+n.xc+"]"),j=new RegExp("[^"+n.xc+"#]+$");function B(d,$,t){if($=$||{},t=new h.ZP(t),$.defaultCountry&&!t.hasCountry($.defaultCountry)){if($.v2)throw new y("INVALID_COUNTRY");throw new Error("Unknown country: ".concat($.defaultCountry))}var e=function(d,$,t){if(d&&0===d.indexOf("tel:"))return(0,S.m)(d);var e=function(d,$,t){if(!d)return;if(d.length>250){if(t)throw new y("TOO_LONG");return}if(!1===$)return d;var e=d.search(F);if(e<0)return;return d.slice(e).replace(j,"")}(d,t,$);if(!e)return{};if(!(0,p.ZP)(e))return(0,p.ch)(e)?{error:"TOO_SHORT"}:{};var n=function(d){var $=d.search(b);if($<0)return{};for(var t=d.slice(0,$),e=d.match(b),n=1;nn.sJ){if($.v2)throw new y("TOO_LONG");return{}}if($.v2){var s=new I.Z(c,l,t.metadata);return u&&(s.country=u),f&&(s.carrierCode=f),o&&(s.ext=o),s}var m=!!($.extended?t.hasSelectedNumberingPlan():u)&&(0,w.Z)(l,t.nationalNumberPattern());return $.extended?{country:u,countryCallingCode:c,carrierCode:f,valid:m,possible:!!m||!(!0!==$.extended||!t.possibleLengths()||!(0,E.D)(l,t)),phone:l,ext:o}:m?function(d,$,t){var e={country:d,phone:$};t&&(e.ext=t);return e}(u,l,o):{}}function k(d,$){var t=Object.keys(d);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(d);$&&(e=e.filter((function($){return Object.getOwnPropertyDescriptor(d,$).enumerable}))),t.push.apply(t,e)}return t}function Z(d){for(var $=1;$d.length)&&($=d.length);for(var t=0,e=new Array($);t<$;t++)e[t]=d[t];return e}function J(){var d=X(arguments),$=d.text,t=d.options,e=d.metadata;return U($,t,e)}function X(d){var $,t,e,n=W(Array.prototype.slice.call(d),4),r=n[0],o=n[1],a=n[2],i=n[3];if("string"!=typeof r)throw new TypeError("A text for parsing must be a string.");if($=r,o&&"string"!=typeof o){if(!Q(o))throw new Error("Invalid second argument: ".concat(o));a?(t=o,e=a):e=o}else i?(t=a,e=i):(t=void 0,e=a),o&&(t=function(d){for(var $=1;${t.d($,{Z:()=>n});const e={version:4,country_calling_codes:{1:["US","AG","AI","AS","BB","BM","BS","CA","DM","DO","GD","GU","JM","KN","KY","LC","MP","MS","PR","SX","TC","TT","VC","VG","VI"],7:["RU","KZ"],20:["EG"],27:["ZA"],30:["GR"],31:["NL"],32:["BE"],33:["FR"],34:["ES"],36:["HU"],39:["IT","VA"],40:["RO"],41:["CH"],43:["AT"],44:["GB","GG","IM","JE"],45:["DK"],46:["SE"],47:["NO","SJ"],48:["PL"],49:["DE"],51:["PE"],52:["MX"],53:["CU"],54:["AR"],55:["BR"],56:["CL"],57:["CO"],58:["VE"],60:["MY"],61:["AU","CC","CX"],62:["ID"],63:["PH"],64:["NZ"],65:["SG"],66:["TH"],81:["JP"],82:["KR"],84:["VN"],86:["CN"],90:["TR"],91:["IN"],92:["PK"],93:["AF"],94:["LK"],95:["MM"],98:["IR"],211:["SS"],212:["MA","EH"],213:["DZ"],216:["TN"],218:["LY"],220:["GM"],221:["SN"],222:["MR"],223:["ML"],224:["GN"],225:["CI"],226:["BF"],227:["NE"],228:["TG"],229:["BJ"],230:["MU"],231:["LR"],232:["SL"],233:["GH"],234:["NG"],235:["TD"],236:["CF"],237:["CM"],238:["CV"],239:["ST"],240:["GQ"],241:["GA"],242:["CG"],243:["CD"],244:["AO"],245:["GW"],246:["IO"],247:["AC"],248:["SC"],249:["SD"],250:["RW"],251:["ET"],252:["SO"],253:["DJ"],254:["KE"],255:["TZ"],256:["UG"],257:["BI"],258:["MZ"],260:["ZM"],261:["MG"],262:["RE","YT"],263:["ZW"],264:["NA"],265:["MW"],266:["LS"],267:["BW"],268:["SZ"],269:["KM"],290:["SH","TA"],291:["ER"],297:["AW"],298:["FO"],299:["GL"],350:["GI"],351:["PT"],352:["LU"],353:["IE"],354:["IS"],355:["AL"],356:["MT"],357:["CY"],358:["FI","AX"],359:["BG"],370:["LT"],371:["LV"],372:["EE"],373:["MD"],374:["AM"],375:["BY"],376:["AD"],377:["MC"],378:["SM"],380:["UA"],381:["RS"],382:["ME"],383:["XK"],385:["HR"],386:["SI"],387:["BA"],389:["MK"],420:["CZ"],421:["SK"],423:["LI"],500:["FK"],501:["BZ"],502:["GT"],503:["SV"],504:["HN"],505:["NI"],506:["CR"],507:["PA"],508:["PM"],509:["HT"],590:["GP","BL","MF"],591:["BO"],592:["GY"],593:["EC"],594:["GF"],595:["PY"],596:["MQ"],597:["SR"],598:["UY"],599:["CW","BQ"],670:["TL"],672:["NF"],673:["BN"],674:["NR"],675:["PG"],676:["TO"],677:["SB"],678:["VU"],679:["FJ"],680:["PW"],681:["WF"],682:["CK"],683:["NU"],685:["WS"],686:["KI"],687:["NC"],688:["TV"],689:["PF"],690:["TK"],691:["FM"],692:["MH"],850:["KP"],852:["HK"],853:["MO"],855:["KH"],856:["LA"],880:["BD"],886:["TW"],960:["MV"],961:["LB"],962:["JO"],963:["SY"],964:["IQ"],965:["KW"],966:["SA"],967:["YE"],968:["OM"],970:["PS"],971:["AE"],972:["IL"],973:["BH"],974:["QA"],975:["BT"],976:["MN"],977:["NP"],992:["TJ"],993:["TM"],994:["AZ"],995:["GE"],996:["KG"],998:["UZ"]},countries:{AC:["247","00","(?:[01589]\\d|[46])\\d{4}",[5,6],0,0,0,0,0,0,0,[0,["4\\d{4}",[5]]]],AD:["376","00","(?:1|6\\d)\\d{7}|[135-9]\\d{5}",[6,8,9],[["(\\d{3})(\\d{3})","$1 $2",["[135-9]"]],["(\\d{4})(\\d{4})","$1 $2",["1"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["6"]]],0,0,0,0,0,0,[0,["690\\d{6}|[356]\\d{5}",[6,9]]]],AE:["971","00","(?:[4-7]\\d|9[0-689])\\d{7}|800\\d{2,9}|[2-4679]\\d{7}",[5,6,7,8,9,10,11,12],[["(\\d{3})(\\d{2,9})","$1 $2",["60|8"]],["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[236]|[479][2-8]"],"0$1"],["(\\d{3})(\\d)(\\d{5})","$1 $2 $3",["[479]"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["5"],"0$1"]],"0",0,0,0,0,0,[0,["5[024-68]\\d{7}",[9]]]],AF:["93","00","[2-7]\\d{8}",[9],[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[2-7]"],"0$1"]],"0",0,0,0,0,0,[0,["7\\d{8}"]]],AG:["1","011","(?:268|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([457]\\d{6})$","268$1",0,"268",[0,["268(?:464|7(?:1[3-9]|[28]\\d|3[0246]|64|7[0-689]))\\d{4}"]]],AI:["1","011","(?:264|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([2457]\\d{6})$","264$1",0,"264",[0,["264(?:235|4(?:69|76)|5(?:3[6-9]|8[1-4])|7(?:29|72))\\d{4}"]]],AL:["355","00","(?:700\\d\\d|900)\\d{3}|8\\d{5,7}|(?:[2-5]|6\\d)\\d{7}",[6,7,8,9],[["(\\d{3})(\\d{3,4})","$1 $2",["80|9"],"0$1"],["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["4[2-6]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[2358][2-5]|4"],"0$1"],["(\\d{3})(\\d{5})","$1 $2",["[23578]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["6"],"0$1"]],"0",0,0,0,0,0,[0,["6(?:[78][2-9]|9\\d)\\d{6}",[9]]]],AM:["374","00","(?:[1-489]\\d|55|60|77)\\d{6}",[8],[["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["[89]0"],"0 $1"],["(\\d{3})(\\d{5})","$1 $2",["2|3[12]"],"(0$1)"],["(\\d{2})(\\d{6})","$1 $2",["1|47"],"(0$1)"],["(\\d{2})(\\d{6})","$1 $2",["[3-9]"],"0$1"]],"0",0,0,0,0,0,[0,["(?:33|4[1349]|55|77|88|9[13-9])\\d{6}"]]],AO:["244","00","[29]\\d{8}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[29]"]]],0,0,0,0,0,0,[0,["9[1-59]\\d{7}"]]],AR:["54","00","(?:11|[89]\\d\\d)\\d{8}|[2368]\\d{9}",[10,11],[["(\\d{4})(\\d{2})(\\d{4})","$1 $2-$3",["2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])","2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)","2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]","2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]"],"0$1",1],["(\\d{2})(\\d{4})(\\d{4})","$1 $2-$3",["1"],"0$1",1],["(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["[68]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2-$3",["[23]"],"0$1",1],["(\\d)(\\d{4})(\\d{2})(\\d{4})","$2 15-$3-$4",["9(?:2[2-469]|3[3-578])","9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))","9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)","9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]","9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]"],"0$1",0,"$1 $2 $3-$4"],["(\\d)(\\d{2})(\\d{4})(\\d{4})","$2 15-$3-$4",["91"],"0$1",0,"$1 $2 $3-$4"],["(\\d{3})(\\d{3})(\\d{5})","$1-$2-$3",["8"],"0$1"],["(\\d)(\\d{3})(\\d{3})(\\d{4})","$2 15-$3-$4",["9"],"0$1",0,"$1 $2 $3-$4"]],"0",0,"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?","9$1",0,0,[0,["93(?:7(?:1[15]|81)[46]|8(?:(?:21|4[16]|69|9[12])[46]|88[013-9]))\\d{5}|9(?:29(?:54|66)|3(?:7(?:55|77)|865))[2-8]\\d{5}|9(?:2(?:2(?:2[59]|44|52)|3(?:26|44)|473|9(?:[07]2|2[26]|34|46))|3327)[45]\\d{5}|9(?:2(?:284|3(?:02|23)|657|920)|3(?:4(?:8[27]|92)|541|878))[2-7]\\d{5}|9(?:2(?:(?:26|62)2|320|477|9(?:42|83))|3(?:329|4(?:[47]6|62|89)|564))[2-6]\\d{5}|(?:675\\d|9(?:11[1-8]\\d|2(?:2(?:0[45]|1[2-6]|3[3-6])|3(?:[06]4|7[45])|494|6(?:04|1[2-8]|[36][45]|4[3-6])|80[45]|9(?:[17][4-6]|[48][45]|9[3-6]))|3(?:364|4(?:1[2-7]|[235][4-6]|84)|5(?:1[2-9]|[38][4-6])|6(?:2[45]|44)|7[069][45]|8(?:0[45]|[17][2-6]|3[4-6]|[58][3-6]))))\\d{6}|92(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|475|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\d{5}|9(?:2(?:2(?:57|81)|3(?:24|46|92)|9(?:01|23|64))|3(?:4(?:42|71)|5(?:25|37|4[347]|71)|7(?:18|5[17])))[3-6]\\d{5}|9(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|25|[45][25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[03-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[145]|4[13]|5[468]|7[2-5]|8[26])|8(?:2[5-7]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\d{5}"]]],AS:["1","011","(?:[58]\\d\\d|684|900)\\d{7}",[10],0,"1",0,"1|([267]\\d{6})$","684$1",0,"684",[0,["684(?:2(?:48|5[2468]|7[26])|7(?:3[13]|70|82))\\d{4}"]]],AT:["43","00","1\\d{3,12}|2\\d{6,12}|43(?:(?:0\\d|5[02-9])\\d{3,9}|2\\d{4,5}|[3467]\\d{4}|8\\d{4,6}|9\\d{4,7})|5\\d{4,12}|8\\d{7,12}|9\\d{8,12}|(?:[367]\\d|4[0-24-9])\\d{4,11}",[4,5,6,7,8,9,10,11,12,13],[["(\\d)(\\d{3,12})","$1 $2",["1(?:11|[2-9])"],"0$1"],["(\\d{3})(\\d{2})","$1 $2",["517"],"0$1"],["(\\d{2})(\\d{3,5})","$1 $2",["5[079]"],"0$1"],["(\\d{3})(\\d{3,10})","$1 $2",["(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]"],"0$1"],["(\\d{4})(\\d{3,9})","$1 $2",["[2-467]|5[2-6]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["5"],"0$1"],["(\\d{2})(\\d{4})(\\d{4,7})","$1 $2 $3",["5"],"0$1"]],"0",0,0,0,0,0,[0,["6(?:5[0-3579]|6[013-9]|[7-9]\\d)\\d{4,10}",[7,8,9,10,11,12,13]]]],AU:["61","001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011","1(?:[0-79]\\d{7}(?:\\d(?:\\d{2})?)?|8[0-24-9]\\d{7})|[2-478]\\d{8}|1\\d{4,7}",[5,6,7,8,9,10,12],[["(\\d{2})(\\d{3,4})","$1 $2",["16"],"0$1"],["(\\d{2})(\\d{3})(\\d{2,4})","$1 $2 $3",["16"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["14|4"],"0$1"],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["[2378]"],"(0$1)"],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1(?:30|[89])"]]],"0",0,"0|(183[12])",0,0,0,[0,["4(?:83[0-389]|93[0-6])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\d{6}",[9]]],"0011"],AW:["297","00","(?:[25-79]\\d\\d|800)\\d{4}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[25-9]"]]],0,0,0,0,0,0,[0,["(?:290|5[69]\\d|6(?:[03]0|22|4[0-2]|[69]\\d)|7(?:[34]\\d|7[07])|9(?:6[45]|9[4-8]))\\d{4}"]]],AX:["358","00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))","2\\d{4,9}|35\\d{4,5}|(?:60\\d\\d|800)\\d{4,6}|7\\d{5,11}|(?:[14]\\d|3[0-46-9]|50)\\d{4,8}",[5,6,7,8,9,10,11,12],0,"0",0,0,0,0,"18",[0,["4946\\d{2,6}|(?:4[0-8]|50)\\d{4,8}",[6,7,8,9,10]]],"00"],AZ:["994","00","365\\d{6}|(?:[124579]\\d|60|88)\\d{7}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["90"],"0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[28]|2|365|46","1[28]|2|365[45]|46","1[28]|2|365(?:4|5[02])|46"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[13-9]"],"0$1"]],"0",0,0,0,0,0,[0,["36554\\d{4}|(?:[16]0|4[04]|5[015]|7[07]|99)\\d{7}"]]],BA:["387","00","6\\d{8}|(?:[35689]\\d|49|70)\\d{6}",[8,9],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["6[1-3]|[7-9]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2-$3",["[3-5]|6[56]"],"0$1"],["(\\d{2})(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4",["6"],"0$1"]],"0",0,0,0,0,0,[0,["6040\\d{5}|6(?:03|[1-356]|44|7\\d)\\d{6}"]]],BB:["1","011","(?:246|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([2-9]\\d{6})$","246$1",0,"246",[0,["246(?:(?:2(?:[3568]\\d|4[0-57-9])|3(?:5[2-9]|6[0-6])|4(?:46|5\\d)|69[5-7]|8(?:[2-5]\\d|83))\\d|52(?:1[147]|20))\\d{3}"]]],BD:["880","00","[1-469]\\d{9}|8[0-79]\\d{7,8}|[2-79]\\d{8}|[2-9]\\d{7}|[3-9]\\d{6}|[57-9]\\d{5}",[6,7,8,9,10],[["(\\d{2})(\\d{4,6})","$1-$2",["31[5-8]|[459]1"],"0$1"],["(\\d{3})(\\d{3,7})","$1-$2",["3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:28|4[14]|5)|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]"],"0$1"],["(\\d{4})(\\d{3,6})","$1-$2",["[13-9]|22"],"0$1"],["(\\d)(\\d{7,8})","$1-$2",["2"],"0$1"]],"0",0,0,0,0,0,[0,["(?:1[13-9]\\d|644)\\d{7}|(?:3[78]|44|66)[02-9]\\d{7}",[10]]]],BE:["32","00","4\\d{8}|[1-9]\\d{7}",[8,9],[["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["(?:80|9)0"],"0$1"],["(\\d)(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[239]|4[23]"],"0$1"],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[15-8]"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["4"],"0$1"]],"0",0,0,0,0,0,[0,["4[5-9]\\d{7}",[9]]]],BF:["226","00","[025-7]\\d{7}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[025-7]"]]],0,0,0,0,0,0,[0,["(?:0[1-35-7]|5[1-8]|[67]\\d)\\d{6}"]]],BG:["359","00","00800\\d{7}|[2-7]\\d{6,7}|[89]\\d{6,8}|2\\d{5}",[6,7,8,9,12],[["(\\d)(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4",["2"],"0$1"],["(\\d{3})(\\d{4})","$1 $2",["43[1-6]|70[1-9]"],"0$1"],["(\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["2"],"0$1"],["(\\d{2})(\\d{3})(\\d{2,3})","$1 $2 $3",["[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]"],"0$1"],["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["(?:70|8)0"],"0$1"],["(\\d{3})(\\d{3})(\\d{2})","$1 $2 $3",["43[1-7]|7"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[48]|9[08]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["9"],"0$1"]],"0",0,0,0,0,0,[0,["(?:43[07-9]|99[69]\\d)\\d{5}|(?:8[7-9]|98)\\d{7}",[8,9]]]],BH:["973","00","[136-9]\\d{7}",[8],[["(\\d{4})(\\d{4})","$1 $2",["[13679]|8[047]"]]],0,0,0,0,0,0,[0,["(?:3(?:[1-79]\\d|8[0-47-9])\\d|6(?:3(?:00|33|6[16])|6(?:3[03-9]|[69]\\d|7[0-6])))\\d{4}"]]],BI:["257","00","(?:[267]\\d|31)\\d{6}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2367]"]]],0,0,0,0,0,0,[0,["(?:29|[67][125-9])\\d{6}"]]],BJ:["229","00","[24-689]\\d{7}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[24-689]"]]],0,0,0,0,0,0,[0,["(?:4[01]|5[1-9]|6\\d|9[013-9])\\d{6}"]]],BL:["590","00","(?:590|(?:69|80)\\d|976)\\d{6}",[9],0,"0",0,0,0,0,0,[0,["69(?:0\\d\\d|1(?:2[2-9]|3[0-5]))\\d{4}"]]],BM:["1","011","(?:441|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([2-9]\\d{6})$","441$1",0,"441",[0,["441(?:[2378]\\d|5[0-39]|92)\\d{5}"]]],BN:["673","00","[2-578]\\d{6}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[2-578]"]]],0,0,0,0,0,0,[0,["(?:22[89]|[78]\\d\\d)\\d{4}"]]],BO:["591","00(?:1\\d)?","(?:[2-467]\\d\\d|8001)\\d{5}",[8,9],[["(\\d)(\\d{7})","$1 $2",["[23]|4[46]"]],["(\\d{8})","$1",["[67]"]],["(\\d{3})(\\d{2})(\\d{4})","$1 $2 $3",["8"]]],"0",0,"0(1\\d)?",0,0,0,[0,["[67]\\d{7}",[8]]]],BQ:["599","00","(?:[34]1|7\\d)\\d{5}",[7],0,0,0,0,0,0,"[347]",[0,["(?:31(?:8[14-8]|9[14578])|416[14-9]|7(?:0[01]|7[07]|8\\d|9[056])\\d)\\d{3}"]]],BR:["55","00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)","(?:[1-46-9]\\d\\d|5(?:[0-46-9]\\d|5[0-46-9]))\\d{8}|[1-9]\\d{9}|[3589]\\d{8}|[34]\\d{7}",[8,9,10,11],[["(\\d{4})(\\d{4})","$1-$2",["300|4(?:0[02]|37)","4(?:02|37)0|[34]00"]],["(\\d{3})(\\d{2,3})(\\d{4})","$1 $2 $3",["(?:[358]|90)0"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1 $2-$3",["(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]"],"($1)"],["(\\d{2})(\\d{5})(\\d{4})","$1 $2-$3",["[16][1-9]|[2-57-9]"],"($1)"]],"0",0,"(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\d{10,11}))?","$2",0,0,[0,["(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])(?:7|9\\d)\\d{7}",[10,11]]]],BS:["1","011","(?:242|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([3-8]\\d{6})$","242$1",0,"242",[0,["242(?:3(?:5[79]|7[56]|95)|4(?:[23][1-9]|4[1-35-9]|5[1-8]|6[2-8]|7\\d|81)|5(?:2[45]|3[35]|44|5[1-46-9]|65|77)|6[34]6|7(?:27|38)|8(?:0[1-9]|1[02-9]|2\\d|[89]9))\\d{4}"]]],BT:["975","00","[17]\\d{7}|[2-8]\\d{6}",[7,8],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[2-68]|7[246]"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[67]|7"]]],0,0,0,0,0,0,[0,["(?:1[67]|77)\\d{6}",[8]]]],BW:["267","00","(?:0800|(?:[37]|800)\\d)\\d{6}|(?:[2-6]\\d|90)\\d{5}",[7,8,10],[["(\\d{2})(\\d{5})","$1 $2",["90"]],["(\\d{3})(\\d{4})","$1 $2",["[24-6]|3[15-79]"]],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[37]"]],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["0"]],["(\\d{3})(\\d{4})(\\d{3})","$1 $2 $3",["8"]]],0,0,0,0,0,0,[0,["(?:321|7(?:[1-7]\\d|8[0-4]))\\d{5}",[8]]]],BY:["375","810","(?:[12]\\d|33|44|902)\\d{7}|8(?:0[0-79]\\d{5,7}|[1-7]\\d{9})|8(?:1[0-489]|[5-79]\\d)\\d{7}|8[1-79]\\d{6,7}|8[0-79]\\d{5}|8\\d{5}",[6,7,8,9,10,11],[["(\\d{3})(\\d{3})","$1 $2",["800"],"8 $1"],["(\\d{3})(\\d{2})(\\d{2,4})","$1 $2 $3",["800"],"8 $1"],["(\\d{4})(\\d{2})(\\d{3})","$1 $2-$3",["1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])","1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])"],"8 0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2-$3-$4",["1(?:[56]|7[467])|2[1-3]"],"8 0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2-$3-$4",["[1-4]"],"8 0$1"],["(\\d{3})(\\d{3,4})(\\d{4})","$1 $2 $3",["[89]"],"8 $1"]],"8",0,"0|80?",0,0,0,[0,["(?:2(?:5[5-79]|9[1-9])|(?:33|44)\\d)\\d{6}",[9]]],"8~10"],BZ:["501","00","(?:0800\\d|[2-8])\\d{6}",[7,11],[["(\\d{3})(\\d{4})","$1-$2",["[2-8]"]],["(\\d)(\\d{3})(\\d{4})(\\d{3})","$1-$2-$3-$4",["0"]]],0,0,0,0,0,0,[0,["6[0-35-7]\\d{5}",[7]]]],CA:["1","011","(?:[2-8]\\d|90)\\d{8}|3\\d{6}",[7,10],0,"1",0,0,0,0,0,[0,["(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|3[178]|50|68|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\d{6}",[10]]]],CC:["61","001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011","1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}",[6,7,8,9,10,12],0,"0",0,"0|([59]\\d{7})$","8$1",0,0,[0,["4(?:83[0-389]|93[0-6])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\d{6}",[9]]],"0011"],CD:["243","00","[189]\\d{8}|[1-68]\\d{6}",[7,9],[["(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["88"],"0$1"],["(\\d{2})(\\d{5})","$1 $2",["[1-6]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["1"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[89]"],"0$1"]],"0",0,0,0,0,0,[0,["88\\d{5}|(?:8[0-59]|9[017-9])\\d{7}"]]],CF:["236","00","(?:[27]\\d{3}|8776)\\d{4}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[278]"]]],0,0,0,0,0,0,[0,["7[02457]\\d{6}"]]],CG:["242","00","222\\d{6}|(?:0\\d|80)\\d{7}",[9],[["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["8"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[02]"]]],0,0,0,0,0,0,[0,["026(?:1[0-5]|6[6-9])\\d{4}|0(?:[14-6]\\d\\d|2(?:40|5[5-8]|6[07-9]))\\d{5}"]]],CH:["41","00","8\\d{11}|[2-9]\\d{8}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8[047]|90"],"0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-79]|81"],"0$1"],["(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["8"],"0$1"]],"0",0,0,0,0,0,[0,["7[35-9]\\d{7}"]]],CI:["225","00","[02]\\d{9}",[10],[["(\\d{2})(\\d{2})(\\d)(\\d{5})","$1 $2 $3 $4",["2"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3 $4",["0"]]],0,0,0,0,0,0,[0,["0[157]\\d{8}"]]],CK:["682","00","[2-578]\\d{4}",[5],[["(\\d{2})(\\d{3})","$1 $2",["[2-578]"]]],0,0,0,0,0,0,[0,["[578]\\d{4}"]]],CL:["56","(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0","12300\\d{6}|6\\d{9,10}|[2-9]\\d{8}",[9,10,11],[["(\\d{5})(\\d{4})","$1 $2",["219","2196"],"($1)"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["44"]],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["2[1-36]"],"($1)"],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["9[2-9]"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])"],"($1)"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["60|8"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]],["(\\d{3})(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3 $4",["60"]]],0,0,0,0,0,0,[0,["2(?:1982[0-6]|3314[05-9])\\d{3}|(?:2(?:1(?:160|962)|3(?:2\\d\\d|3(?:[0346]\\d|1[0-35-9]|2[1-9]|5[0-24-9]|7[0-3])|600)|646[59])|80[1-9]\\d\\d|9(?:3(?:[0-57-9]\\d\\d|6(?:0[02-9]|[1-9]\\d))|6(?:[0-8]\\d\\d|9(?:[02-79]\\d|1[05-9]))|7[1-9]\\d\\d|9(?:[03-9]\\d\\d|1(?:[0235-9]\\d|4[0-24-9])|2(?:[0-79]\\d|8[0-46-9]))))\\d{4}|(?:22|3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|8[1-9]|9[2458])\\d{7}",[9]]]],CM:["237","00","[26]\\d{8}|88\\d{6,7}",[8,9],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["88"]],["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["[26]|88"]]],0,0,0,0,0,0,[0,["(?:24[23]|6[25-9]\\d)\\d{6}",[9]]]],CN:["86","00|1(?:[12]\\d|79)\\d\\d00","1[127]\\d{8,9}|2\\d{9}(?:\\d{2})?|[12]\\d{6,7}|86\\d{6}|(?:1[03-689]\\d|6)\\d{7,9}|(?:[3-579]\\d|8[0-57-9])\\d{6,9}",[7,8,9,10,11,12],[["(\\d{2})(\\d{5,6})","$1 $2",["(?:10|2[0-57-9])[19]","(?:10|2[0-57-9])(?:10|9[56])","10(?:10|9[56])|2[0-57-9](?:100|9[56])"],"0$1"],["(\\d{3})(\\d{5,6})","$1 $2",["3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]","(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))[19]","85[23](?:10|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:10|9[56])","85[23](?:100|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:100|9[56])"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["(?:4|80)0"]],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["10|2(?:[02-57-9]|1[1-9])","10|2(?:[02-57-9]|1[1-9])","10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])"],"0$1",1],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]"],"0$1",1],["(\\d{3})(\\d{7,8})","$1 $2",["9"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["80"],"0$1",1],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["[3-578]"],"0$1",1],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["1[3-9]"]],["(\\d{2})(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3 $4",["[12]"],"0$1",1]],"0",0,"0|(1(?:[12]\\d|79)\\d\\d)",0,0,0,[0,["1740[0-5]\\d{6}|1(?:[38]\\d|4[57]|[59][0-35-9]|6[25-7]|7[0-35-8])\\d{8}",[11]]],"00"],CO:["57","00(?:4(?:[14]4|56)|[579])","(?:60\\d\\d|9101)\\d{6}|(?:1\\d|3)\\d{9}",[10,11],[["(\\d{3})(\\d{7})","$1 $2",["6"],"($1)"],["(\\d{3})(\\d{7})","$1 $2",["3[0-357]|91"]],["(\\d)(\\d{3})(\\d{7})","$1-$2-$3",["1"],"0$1",0,"$1 $2 $3"]],"0",0,"0(4(?:[14]4|56)|[579])?",0,0,0,[0,["3333(?:0(?:0\\d|1[0-5])|[4-9]\\d\\d)\\d{3}|(?:3(?:24[1-9]|3(?:00|3[0-24-9]))|9101)\\d{6}|3(?:0[0-5]|1\\d|2[0-3]|5[01]|70)\\d{7}",[10]]]],CR:["506","00","(?:8\\d|90)\\d{8}|(?:[24-8]\\d{3}|3005)\\d{4}",[8,10],[["(\\d{4})(\\d{4})","$1 $2",["[2-7]|8[3-9]"]],["(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["[89]"]]],0,0,"(19(?:0[0-2468]|1[09]|20|66|77|99))",0,0,0,[0,["(?:3005\\d|6500[01])\\d{3}|(?:5[07]|6[0-4]|7[0-3]|8[3-9])\\d{6}",[8]]]],CU:["53","119","[27]\\d{6,7}|[34]\\d{5,7}|(?:5|8\\d\\d)\\d{7}",[6,7,8,10],[["(\\d{2})(\\d{4,6})","$1 $2",["2[1-4]|[34]"],"(0$1)"],["(\\d)(\\d{6,7})","$1 $2",["7"],"(0$1)"],["(\\d)(\\d{7})","$1 $2",["5"],"0$1"],["(\\d{3})(\\d{7})","$1 $2",["8"],"0$1"]],"0",0,0,0,0,0,[0,["5\\d{7}",[8]]]],CV:["238","0","(?:[2-59]\\d\\d|800)\\d{4}",[7],[["(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["[2-589]"]]],0,0,0,0,0,0,[0,["(?:36|5[1-389]|9\\d)\\d{5}"]]],CW:["599","00","(?:[34]1|60|(?:7|9\\d)\\d)\\d{5}",[7,8],[["(\\d{3})(\\d{4})","$1 $2",["[3467]"]],["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["9[4-8]"]]],0,0,0,0,0,"[69]",[0,["953[01]\\d{4}|9(?:5[12467]|6[5-9])\\d{5}"]]],CX:["61","001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011","1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}",[6,7,8,9,10,12],0,"0",0,"0|([59]\\d{7})$","8$1",0,0,[0,["4(?:83[0-389]|93[0-6])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\d{6}",[9]]],"0011"],CY:["357","00","(?:[279]\\d|[58]0)\\d{6}",[8],[["(\\d{2})(\\d{6})","$1 $2",["[257-9]"]]],0,0,0,0,0,0,[0,["9(?:10|[4-79]\\d)\\d{5}"]]],CZ:["420","00","(?:[2-578]\\d|60)\\d{7}|9\\d{8,11}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[2-8]|9[015-7]"]],["(\\d{2})(\\d{3})(\\d{3})(\\d{2})","$1 $2 $3 $4",["96"]],["(\\d{2})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["9"]],["(\\d{3})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["9"]]],0,0,0,0,0,0,[0,["(?:60[1-8]|7(?:0[2-5]|[2379]\\d))\\d{6}"]]],DE:["49","00","[2579]\\d{5,14}|49(?:[34]0|69|8\\d)\\d\\d?|49(?:37|49|60|7[089]|9\\d)\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\d{1,8}|(?:1|[368]\\d|4[0-8])\\d{3,13}|49(?:[015]\\d|2[13]|31|[46][1-8])\\d{1,9}",[4,5,6,7,8,9,10,11,12,13,14,15],[["(\\d{2})(\\d{3,13})","$1 $2",["3[02]|40|[68]9"],"0$1"],["(\\d{3})(\\d{3,12})","$1 $2",["2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1","2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1"],"0$1"],["(\\d{4})(\\d{2,11})","$1 $2",["[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]","[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]"],"0$1"],["(\\d{3})(\\d{4})","$1 $2",["138"],"0$1"],["(\\d{5})(\\d{2,10})","$1 $2",["3"],"0$1"],["(\\d{3})(\\d{5,11})","$1 $2",["181"],"0$1"],["(\\d{3})(\\d)(\\d{4,10})","$1 $2 $3",["1(?:3|80)|9"],"0$1"],["(\\d{3})(\\d{7,8})","$1 $2",["1[67]"],"0$1"],["(\\d{3})(\\d{7,12})","$1 $2",["8"],"0$1"],["(\\d{5})(\\d{6})","$1 $2",["185","1850","18500"],"0$1"],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["7"],"0$1"],["(\\d{4})(\\d{7})","$1 $2",["18[68]"],"0$1"],["(\\d{5})(\\d{6})","$1 $2",["15[0568]"],"0$1"],["(\\d{4})(\\d{7})","$1 $2",["15[1279]"],"0$1"],["(\\d{3})(\\d{8})","$1 $2",["18"],"0$1"],["(\\d{3})(\\d{2})(\\d{7,8})","$1 $2 $3",["1(?:6[023]|7)"],"0$1"],["(\\d{4})(\\d{2})(\\d{7})","$1 $2 $3",["15[279]"],"0$1"],["(\\d{3})(\\d{2})(\\d{8})","$1 $2 $3",["15"],"0$1"]],"0",0,0,0,0,0,[0,["15[0-25-9]\\d{8}|1(?:6[023]|7\\d)\\d{7,8}",[10,11]]]],DJ:["253","00","(?:2\\d|77)\\d{6}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[27]"]]],0,0,0,0,0,0,[0,["77\\d{6}"]]],DK:["45","00","[2-9]\\d{7}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-9]"]]],0,0,0,0,0,0,[0,["(?:[2-7]\\d|8[126-9]|9[1-46-9])\\d{6}"]]],DM:["1","011","(?:[58]\\d\\d|767|900)\\d{7}",[10],0,"1",0,"1|([2-7]\\d{6})$","767$1",0,"767",[0,["767(?:2(?:[2-4689]5|7[5-7])|31[5-7]|61[1-8]|70[1-6])\\d{4}"]]],DO:["1","011","(?:[58]\\d\\d|900)\\d{7}",[10],0,"1",0,0,0,0,"8001|8[024]9",[0,["8[024]9[2-9]\\d{6}"]]],DZ:["213","00","(?:[1-4]|[5-79]\\d|80)\\d{7}",[8,9],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[1-4]"],"0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["9"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-8]"],"0$1"]],"0",0,0,0,0,0,[0,["(?:5(?:4[0-29]|5\\d|6[0-2])|6(?:[569]\\d|7[0-6])|7[7-9]\\d)\\d{6}",[9]]]],EC:["593","00","1\\d{9,10}|(?:[2-7]|9\\d)\\d{7}",[8,9,10,11],[["(\\d)(\\d{3})(\\d{4})","$1 $2-$3",["[2-7]"],"(0$1)",0,"$1-$2-$3"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["9"],"0$1"],["(\\d{4})(\\d{3})(\\d{3,4})","$1 $2 $3",["1"]]],"0",0,0,0,0,0,[0,["964[0-2]\\d{5}|9(?:39|[57][89]|6[0-36-9]|[89]\\d)\\d{6}",[9]]]],EE:["372","00","8\\d{9}|[4578]\\d{7}|(?:[3-8]\\d|90)\\d{5}",[7,8,10],[["(\\d{3})(\\d{4})","$1 $2",["[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88","[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88"]],["(\\d{4})(\\d{3,4})","$1 $2",["[45]|8(?:00|[1-49])","[45]|8(?:00[1-9]|[1-49])"]],["(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["7"]],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["8"]]],0,0,0,0,0,0,[0,["(?:5\\d{5}|8(?:1(?:0(?:000|[3-9]\\d\\d)|(?:1(?:0[236]|1\\d)|(?:23|[3-79]\\d)\\d)\\d)|2(?:0(?:000|(?:19|[2-7]\\d)\\d)|(?:(?:[124-6]\\d|3[5-9])\\d|7(?:[3679]\\d|8[13-9])|8(?:[2-6]\\d|7[01]))\\d)|[349]\\d{4}))\\d\\d|5(?:(?:[02]\\d|5[0-478])\\d|1(?:[0-8]\\d|95)|6(?:4[0-4]|5[1-589]))\\d{3}",[7,8]]]],EG:["20","00","[189]\\d{8,9}|[24-6]\\d{8}|[135]\\d{7}",[8,9,10],[["(\\d)(\\d{7,8})","$1 $2",["[23]"],"0$1"],["(\\d{2})(\\d{6,7})","$1 $2",["1[35]|[4-6]|8[2468]|9[235-7]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[189]"],"0$1"]],"0",0,0,0,0,0,[0,["1[0-25]\\d{8}",[10]]]],EH:["212","00","[5-8]\\d{8}",[9],0,"0",0,0,0,0,"528[89]",[0,["(?:6(?:[0-79]\\d|8[0-247-9])|7(?:[017]\\d|2[0-2]|6[0-8]|8[0-3]))\\d{6}"]]],ER:["291","00","[178]\\d{6}",[7],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[178]"],"0$1"]],"0",0,0,0,0,0,[0,["(?:17[1-3]|7\\d\\d)\\d{4}"]]],ES:["34","00","[5-9]\\d{8}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[89]00"]],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-9]"]]],0,0,0,0,0,0,[0,["(?:590[16]00\\d|9(?:6906(?:09|10)|7390\\d\\d))\\d\\d|(?:6\\d|7[1-48])\\d{7}"]]],ET:["251","00","(?:11|[2-579]\\d)\\d{7}",[9],[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[1-579]"],"0$1"]],"0",0,0,0,0,0,[0,["7001\\d{5}|(?:7(?:0[1-9]|1[01]|77|86|99)|9\\d\\d)\\d{6}"]]],FI:["358","00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))","[1-35689]\\d{4}|7\\d{10,11}|(?:[124-7]\\d|3[0-46-9])\\d{8}|[1-9]\\d{5,8}",[5,6,7,8,9,10,11,12],[["(\\d)(\\d{4,9})","$1 $2",["[2568][1-8]|3(?:0[1-9]|[1-9])|9"],"0$1"],["(\\d{3})(\\d{3,7})","$1 $2",["[12]00|[368]|70[07-9]"],"0$1"],["(\\d{2})(\\d{4,8})","$1 $2",["[1245]|7[135]"],"0$1"],["(\\d{2})(\\d{6,10})","$1 $2",["7"],"0$1"]],"0",0,0,0,0,"1[03-79]|[2-9]",[0,["4946\\d{2,6}|(?:4[0-8]|50)\\d{4,8}",[6,7,8,9,10]]],"00"],FJ:["679","0(?:0|52)","45\\d{5}|(?:0800\\d|[235-9])\\d{6}",[7,11],[["(\\d{3})(\\d{4})","$1 $2",["[235-9]|45"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["0"]]],0,0,0,0,0,0,[0,["(?:[279]\\d|45|5[01568]|8[034679])\\d{5}",[7]]],"00"],FK:["500","00","[2-7]\\d{4}",[5],0,0,0,0,0,0,0,[0,["[56]\\d{4}"]]],FM:["691","00","(?:[39]\\d\\d|820)\\d{4}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[389]"]]],0,0,0,0,0,0,[0,["31(?:00[67]|208|309)\\d\\d|(?:3(?:[2357]0[1-9]|602|804|905)|(?:820|9[2-7]\\d)\\d)\\d{3}"]]],FO:["298","00","[2-9]\\d{5}",[6],[["(\\d{6})","$1",["[2-9]"]]],0,0,"(10(?:01|[12]0|88))",0,0,0,[0,["(?:[27][1-9]|5\\d|9[16])\\d{4}"]]],FR:["33","00","[1-9]\\d{8}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"],"0 $1"],["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["[1-79]"],"0$1"]],"0",0,0,0,0,0,[0,["(?:6(?:[0-24-8]\\d|3[0-8]|9[589])|7(?:00|[3-9]\\d))\\d{6}"]]],GA:["241","00","(?:[067]\\d|11)\\d{6}|[2-7]\\d{6}",[7,8],[["(\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-7]"],"0$1"],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["0"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["11|[67]"],"0$1"]],0,0,"0(11\\d{6}|60\\d{6}|61\\d{6}|6[256]\\d{6}|7[467]\\d{6})","$1",0,0,[0,["(?:(?:0[2-7]|7[467])\\d|6(?:0[0-4]|10|[256]\\d))\\d{5}|[2-7]\\d{6}"]]],GB:["44","00","[1-357-9]\\d{9}|[18]\\d{8}|8\\d{6}",[7,9,10],[["(\\d{3})(\\d{4})","$1 $2",["800","8001","80011","800111","8001111"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["845","8454","84546","845464"],"0$1"],["(\\d{3})(\\d{6})","$1 $2",["800"],"0$1"],["(\\d{5})(\\d{4,5})","$1 $2",["1(?:38|5[23]|69|76|94)","1(?:(?:38|69)7|5(?:24|39)|768|946)","1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)"],"0$1"],["(\\d{4})(\\d{5,6})","$1 $2",["1(?:[2-69][02-9]|[78])"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["[25]|7(?:0|6[02-9])","[25]|7(?:0|6(?:[03-9]|2[356]))"],"0$1"],["(\\d{4})(\\d{6})","$1 $2",["7"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[1389]"],"0$1"]],"0",0,0,0,0,0,[0,["7(?:457[0-57-9]|700[01]|911[028])\\d{5}|7(?:[1-3]\\d\\d|4(?:[0-46-9]\\d|5[0-689])|5(?:0[0-8]|[13-9]\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\d|8[02-9]|9[0-689])|8(?:[014-9]\\d|[23][0-8])|9(?:[024-9]\\d|1[02-9]|3[0-689]))\\d{6}",[10]]],0," x"],GD:["1","011","(?:473|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([2-9]\\d{6})$","473$1",0,"473",[0,["473(?:4(?:0[2-79]|1[04-9]|2[0-5]|58)|5(?:2[01]|3[3-8])|901)\\d{4}"]]],GE:["995","00","(?:[3-57]\\d\\d|800)\\d{6}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["70"],"0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["32"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[57]"]],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[348]"],"0$1"]],"0",0,0,0,0,0,[0,["5(?:(?:0555|1(?:[17]77|555))[5-9]|757(?:7[7-9]|8[01]))\\d{3}|5(?:0070|11(?:33|51)|[25]222|3333)[0-4]\\d{3}|5(?:00(?:0\\d|5[05])|11(?:00|[124]\\d|3[01])|5200|75(?:00|[57]5)|8(?:0(?:[01]\\d|2[0-4])|58[89]|8(?:55|88)))\\d{4}|(?:5(?:[14]4|5[0157-9]|68|7[0147-9]|9[1-35-9])|790)\\d{6}"]]],GF:["594","00","(?:[56]94|80\\d|976)\\d{6}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[569]"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"],"0$1"]],"0",0,0,0,0,0,[0,["694(?:[0-249]\\d|3[0-8])\\d{4}"]]],GG:["44","00","(?:1481|[357-9]\\d{3})\\d{6}|8\\d{6}(?:\\d{2})?",[7,9,10],0,"0",0,"0|([25-9]\\d{5})$","1481$1",0,0,[0,["7(?:(?:781|839)\\d|911[17])\\d{5}",[10]]]],GH:["233","00","(?:[235]\\d{3}|800)\\d{5}",[8,9],[["(\\d{3})(\\d{5})","$1 $2",["8"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[235]"],"0$1"]],"0",0,0,0,0,0,[0,["(?:2(?:[0346-9]\\d|5[67])|5(?:[03-7]\\d|9[1-9]))\\d{6}",[9]]]],GI:["350","00","(?:[25]\\d\\d|606)\\d{5}",[8],[["(\\d{3})(\\d{5})","$1 $2",["2"]]],0,0,0,0,0,0,[0,["525(?:0\\d|1[0-4])\\d{3}|(?:5[146-8]\\d|606)\\d{5}"]]],GL:["299","00","(?:19|[2-689]\\d|70)\\d{4}",[6],[["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["19|[2-9]"]]],0,0,0,0,0,0,[0,["[245]\\d{5}"]]],GM:["220","00","[2-9]\\d{6}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[2-9]"]]],0,0,0,0,0,0,[0,["(?:[23679]\\d|5[0-389])\\d{5}"]]],GN:["224","00","722\\d{6}|(?:3|6\\d)\\d{7}",[8,9],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["3"]],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[67]"]]],0,0,0,0,0,0,[0,["6[0-356]\\d{7}",[9]]]],GP:["590","00","(?:590|(?:69|80)\\d|976)\\d{6}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[569]"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"],"0$1"]],"0",0,0,0,0,0,[0,["69(?:0\\d\\d|1(?:2[2-9]|3[0-5]))\\d{4}"]]],GQ:["240","00","222\\d{6}|(?:3\\d|55|[89]0)\\d{7}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[235]"]],["(\\d{3})(\\d{6})","$1 $2",["[89]"]]],0,0,0,0,0,0,[0,["(?:222|55\\d)\\d{6}"]]],GR:["30","00","5005000\\d{3}|8\\d{9,11}|(?:[269]\\d|70)\\d{8}",[10,11,12],[["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["21|7"]],["(\\d{4})(\\d{6})","$1 $2",["2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5"]],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[2689]"]],["(\\d{3})(\\d{3,4})(\\d{5})","$1 $2 $3",["8"]]],0,0,0,0,0,0,[0,["68[57-9]\\d{7}|(?:69|94)\\d{8}",[10]]]],GT:["502","00","(?:1\\d{3}|[2-7])\\d{7}",[8,11],[["(\\d{4})(\\d{4})","$1 $2",["[2-7]"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]]],0,0,0,0,0,0,[0,["[3-5]\\d{7}",[8]]]],GU:["1","011","(?:[58]\\d\\d|671|900)\\d{7}",[10],0,"1",0,"1|([3-9]\\d{6})$","671$1",0,"671",[0,["671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[02-46-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[48])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\d{4}"]]],GW:["245","00","[49]\\d{8}|4\\d{6}",[7,9],[["(\\d{3})(\\d{4})","$1 $2",["40"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[49]"]]],0,0,0,0,0,0,[0,["9(?:5\\d|6[569]|77)\\d{6}",[9]]]],GY:["592","001","9008\\d{3}|(?:[2-467]\\d\\d|862)\\d{4}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[2-46-9]"]]],0,0,0,0,0,0,[0,["(?:6\\d\\d|70[0-35-7])\\d{4}"]]],HK:["852","00(?:30|5[09]|[126-9]?)","8[0-46-9]\\d{6,7}|9\\d{4,7}|(?:[2-7]|9\\d{3})\\d{7}",[5,6,7,8,9,11],[["(\\d{3})(\\d{2,5})","$1 $2",["900","9003"]],["(\\d{4})(\\d{4})","$1 $2",["[2-7]|8[1-4]|9(?:0[1-9]|[1-8])"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8"]],["(\\d{3})(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3 $4",["9"]]],0,0,0,0,0,0,[0,["(?:4(?:44[5-9]|6(?:0[0-7]|1[0-6]|4[0-57-9]|6[0-4]|7[0-8]))|573[0-6]|6(?:26[013-8]|66[0-3])|70(?:7[1-5]|8[0-4])|848[015-9]|9(?:29[013-9]|59[0-4]))\\d{4}|(?:4(?:4[01]|6[2358])|5(?:[1-59][0-46-9]|6[0-4689]|7[0-246-9])|6(?:0[1-9]|[13-59]\\d|[268][0-57-9]|7[0-79])|84[09]|9(?:0[1-9]|1[02-9]|[2358][0-8]|[467]\\d))\\d{5}",[8]]],"00"],HN:["504","00","8\\d{10}|[237-9]\\d{7}",[8,11],[["(\\d{4})(\\d{4})","$1-$2",["[237-9]"]]],0,0,0,0,0,0,[0,["[37-9]\\d{7}",[8]]]],HR:["385","00","(?:[24-69]\\d|3[0-79])\\d{7}|80\\d{5,7}|[1-79]\\d{7}|6\\d{5,6}",[6,7,8,9],[["(\\d{2})(\\d{2})(\\d{2,3})","$1 $2 $3",["6[01]"],"0$1"],["(\\d{3})(\\d{2})(\\d{2,3})","$1 $2 $3",["8"],"0$1"],["(\\d)(\\d{4})(\\d{3})","$1 $2 $3",["1"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[67]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["9"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-5]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8"],"0$1"]],"0",0,0,0,0,0,[0,["98\\d{6,7}|975(?:1\\d|77|9[67])\\d{4}|9(?:0[1-9]|[1259]\\d|7[0679])\\d{6}",[8,9]]]],HT:["509","00","(?:[2-489]\\d|55)\\d{6}",[8],[["(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["[2-589]"]]],0,0,0,0,0,0,[0,["(?:[34]\\d|55)\\d{6}"]]],HU:["36","00","[235-7]\\d{8}|[1-9]\\d{7}",[8,9],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["1"],"(06 $1)"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]"],"(06 $1)"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-9]"],"06 $1"]],"06",0,0,0,0,0,[0,["(?:[257]0|3[01])\\d{7}",[9]]]],ID:["62","00[89]","(?:(?:00[1-9]|8\\d)\\d{4}|[1-36])\\d{6}|00\\d{10}|[1-9]\\d{8,10}|[2-9]\\d{7}",[7,8,9,10,11,12,13],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["15"]],["(\\d{2})(\\d{5,9})","$1 $2",["2[124]|[36]1"],"(0$1)"],["(\\d{3})(\\d{5,7})","$1 $2",["800"],"0$1"],["(\\d{3})(\\d{5,8})","$1 $2",["[2-79]"],"(0$1)"],["(\\d{3})(\\d{3,4})(\\d{3})","$1-$2-$3",["8[1-35-9]"],"0$1"],["(\\d{3})(\\d{6,8})","$1 $2",["1"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["804"],"0$1"],["(\\d{3})(\\d)(\\d{3})(\\d{3})","$1 $2 $3 $4",["80"],"0$1"],["(\\d{3})(\\d{4})(\\d{4,5})","$1-$2-$3",["8"],"0$1"]],"0",0,0,0,0,0,[0,["8[1-35-9]\\d{7,10}",[9,10,11,12]]]],IE:["353","00","(?:1\\d|[2569])\\d{6,8}|4\\d{6,9}|7\\d{8}|8\\d{8,9}",[7,8,9,10],[["(\\d{2})(\\d{5})","$1 $2",["2[24-9]|47|58|6[237-9]|9[35-9]"],"(0$1)"],["(\\d{3})(\\d{5})","$1 $2",["[45]0"],"(0$1)"],["(\\d)(\\d{3,4})(\\d{4})","$1 $2 $3",["1"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2569]|4[1-69]|7[14]"],"(0$1)"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["70"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["81"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[78]"],"0$1"],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1"]],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["4"],"(0$1)"],["(\\d{2})(\\d)(\\d{3})(\\d{4})","$1 $2 $3 $4",["8"],"0$1"]],"0",0,0,0,0,0,[0,["8(?:22|[35-9]\\d)\\d{6}",[9]]]],IL:["972","0(?:0|1[2-9])","1\\d{6}(?:\\d{3,5})?|[57]\\d{8}|[1-489]\\d{7}",[7,8,9,10,11,12],[["(\\d{4})(\\d{3})","$1-$2",["125"]],["(\\d{4})(\\d{2})(\\d{2})","$1-$2-$3",["121"]],["(\\d)(\\d{3})(\\d{4})","$1-$2-$3",["[2-489]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["[57]"],"0$1"],["(\\d{4})(\\d{3})(\\d{3})","$1-$2-$3",["12"]],["(\\d{4})(\\d{6})","$1-$2",["159"]],["(\\d)(\\d{3})(\\d{3})(\\d{3})","$1-$2-$3-$4",["1[7-9]"]],["(\\d{3})(\\d{1,2})(\\d{3})(\\d{4})","$1-$2 $3-$4",["15"]]],"0",0,0,0,0,0,[0,["5(?:(?:[02368]\\d|[19][2-9]|4[1-9])\\d|5(?:01|1[79]|2[2-9]|3[0-3]|4[34]|5[015689]|6[6-8]|7[0-267]|8[7-9]|9[1-9]))\\d{5}",[9]]]],IM:["44","00","1624\\d{6}|(?:[3578]\\d|90)\\d{8}",[10],0,"0",0,"0|([25-8]\\d{5})$","1624$1",0,"74576|(?:16|7[56])24",[0,["76245[06]\\d{4}|7(?:4576|[59]24\\d|624[0-4689])\\d{5}"]]],IN:["91","00","(?:000800|[2-9]\\d\\d)\\d{7}|1\\d{7,12}",[8,9,10,11,12,13],[["(\\d{8})","$1",["5(?:0|2[23]|3[03]|[67]1|88)","5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)","5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)"],0,1],["(\\d{4})(\\d{4,5})","$1 $2",["180","1800"],0,1],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["140"],0,1],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["11|2[02]|33|4[04]|79[1-7]|80[2-46]","11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])","11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])"],"0$1",1],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]","1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]","1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]"],"0$1",1],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807","1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]","1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\d|7(?:1(?:[013-8]\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\d|5[0-367])|70[13-7]))[2-7]"],"0$1",1],["(\\d{5})(\\d{5})","$1 $2",["[6-9]"],"0$1",1],["(\\d{4})(\\d{2,4})(\\d{4})","$1 $2 $3",["1(?:6|8[06])","1(?:6|8[06]0)"],0,1],["(\\d{4})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["18"],0,1]],"0",0,0,0,0,0,[0,["(?:61279|7(?:887[02-9]|9(?:313|79[07-9]))|8(?:079[04-9]|(?:84|91)7[02-8]))\\d{5}|(?:6(?:12|[2-47]1|5[17]|6[13]|80)[0189]|7(?:1(?:2[0189]|9[0-5])|2(?:[14][017-9]|8[0-59])|3(?:2[5-8]|[34][017-9]|9[016-9])|4(?:1[015-9]|[29][89]|39|8[389])|5(?:[15][017-9]|2[04-9]|9[7-9])|6(?:0[0-47]|1[0-257-9]|2[0-4]|3[19]|5[4589])|70[0289]|88[089]|97[02-8])|8(?:0(?:6[67]|7[02-8])|70[017-9]|84[01489]|91[0-289]))\\d{6}|(?:7(?:31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[0189]\\d|7[02-8])\\d{5}|(?:6(?:[09]\\d|1[04679]|2[03689]|3[05-9]|4[0489]|50|6[069]|7[07]|8[7-9])|7(?:0\\d|2[0235-79]|3[05-8]|40|5[0346-8]|6[6-9]|7[1-9]|8[0-79]|9[089])|8(?:0[01589]|1[0-57-9]|2[235-9]|3[03-57-9]|[45]\\d|6[02457-9]|7[1-69]|8[0-25-9]|9[02-9])|9\\d\\d)\\d{7}|(?:6(?:(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|8[124-6])\\d|7(?:[235689]\\d|4[0189]))|7(?:1(?:[013-8]\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-5])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\d|5[0-367])|70[13-7]|881))[0189]\\d{5}",[10]]]],IO:["246","00","3\\d{6}",[7],[["(\\d{3})(\\d{4})","$1 $2",["3"]]],0,0,0,0,0,0,[0,["38\\d{5}"]]],IQ:["964","00","(?:1|7\\d\\d)\\d{7}|[2-6]\\d{7,8}",[8,9,10],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["1"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-6]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"0$1"]],"0",0,0,0,0,0,[0,["7[3-9]\\d{8}",[10]]]],IR:["98","00","[1-9]\\d{9}|(?:[1-8]\\d\\d|9)\\d{3,4}",[4,5,6,7,10],[["(\\d{4,5})","$1",["96"],"0$1"],["(\\d{2})(\\d{4,5})","$1 $2",["(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["9"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["[1-8]"],"0$1"]],"0",0,0,0,0,0,[0,["9(?:(?:0(?:[0-35]\\d|4[4-6])|(?:[13]\\d|2[0-3])\\d)\\d|9(?:[0-46]\\d\\d|5[15]0|8(?:1\\d|88)|9(?:0[0-3]|[19]\\d|21|77|8[7-9])))\\d{5}",[10]]]],IS:["354","00|1(?:0(?:01|[12]0)|100)","(?:38\\d|[4-9])\\d{6}",[7,9],[["(\\d{3})(\\d{4})","$1 $2",["[4-9]"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["3"]]],0,0,0,0,0,0,[0,["(?:38[589]\\d\\d|6(?:1[1-8]|2[0-6]|3[026-9]|4[014679]|5[0159]|6[0-69]|70|8[06-8]|9\\d)|7(?:5[057]|[6-9]\\d)|8(?:2[0-59]|[3-69]\\d|8[238]))\\d{4}"]],"00"],IT:["39","00","0\\d{5,10}|1\\d{8,10}|3(?:[0-8]\\d{7,10}|9\\d{7,8})|(?:55|70)\\d{8}|8\\d{5}(?:\\d{2,4})?",[6,7,8,9,10,11],[["(\\d{2})(\\d{4,6})","$1 $2",["0[26]"]],["(\\d{3})(\\d{3,6})","$1 $2",["0[13-57-9][0159]|8(?:03|4[17]|9[2-5])","0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))"]],["(\\d{4})(\\d{2,6})","$1 $2",["0(?:[13-579][2-46-8]|8[236-8])"]],["(\\d{4})(\\d{4})","$1 $2",["894"]],["(\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3",["0[26]|5"]],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["1(?:44|[679])|[378]"]],["(\\d{3})(\\d{3,4})(\\d{4})","$1 $2 $3",["0[13-57-9][0159]|14"]],["(\\d{2})(\\d{4})(\\d{5})","$1 $2 $3",["0[26]"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["0"]],["(\\d{3})(\\d{4})(\\d{4,5})","$1 $2 $3",["3"]]],0,0,0,0,0,0,[0,["3[1-9]\\d{8}|3[2-9]\\d{7}",[9,10]]]],JE:["44","00","1534\\d{6}|(?:[3578]\\d|90)\\d{8}",[10],0,"0",0,"0|([0-24-8]\\d{5})$","1534$1",0,0,[0,["7(?:(?:(?:50|82)9|937)\\d|7(?:00[378]|97[7-9]))\\d{5}"]]],JM:["1","011","(?:[58]\\d\\d|658|900)\\d{7}",[10],0,"1",0,0,0,0,"658|876",[0,["(?:658295|876(?:2(?:0[1-9]|[13-9]\\d|2[013-9])|[348]\\d\\d|5(?:0[1-9]|[1-9]\\d)|6(?:4[89]|6[67])|7(?:0[07]|7\\d|8[1-47-9]|9[0-36-9])|9(?:[01]9|9[0579])))\\d{4}"]]],JO:["962","00","(?:(?:[2689]|7\\d)\\d|32|53)\\d{6}",[8,9],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[2356]|87"],"(0$1)"],["(\\d{3})(\\d{5,6})","$1 $2",["[89]"],"0$1"],["(\\d{2})(\\d{7})","$1 $2",["70"],"0$1"],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["7"],"0$1"]],"0",0,0,0,0,0,[0,["7(?:[78][0-25-9]|9\\d)\\d{6}",[9]]]],JP:["81","010","00[1-9]\\d{6,14}|[257-9]\\d{9}|(?:00|[1-9]\\d\\d)\\d{6}",[8,9,10,11,12,13,14,15,16,17],[["(\\d{3})(\\d{3})(\\d{3})","$1-$2-$3",["(?:12|57|99)0"],"0$1"],["(\\d{4})(\\d)(\\d{4})","$1-$2-$3",["1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51|63)|9(?:80|9[16])","1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9]|636)|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]","1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9]|636[457-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["60"],"0$1"],["(\\d)(\\d{4})(\\d{4})","$1-$2-$3",["[36]|4(?:2[09]|7[01])","[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[27-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])","1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9])|5(?:2|3[045]|4[0-369]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|49|51|6(?:[0-24]|36|5[0-3589]|72|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:49|55|83)[29]|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]","1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]","1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|7[015-9]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17|3[015-9]))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9(?:[019]|4[1-3]|6(?:[0-47-9]|5[01346-9])))|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|829(?:2|66)|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]"],"0$1"],["(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3",["[14]|[289][2-9]|5[3-9]|7[2-4679]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["800"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1-$2-$3",["[257-9]"],"0$1"]],"0",0,0,0,0,0,[0,["[7-9]0[1-9]\\d{7}",[10]]]],KE:["254","000","(?:[17]\\d\\d|900)\\d{6}|(?:2|80)0\\d{6,7}|[4-6]\\d{6,8}",[7,8,9,10],[["(\\d{2})(\\d{5,7})","$1 $2",["[24-6]"],"0$1"],["(\\d{3})(\\d{6})","$1 $2",["[17]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["[89]"],"0$1"]],"0",0,0,0,0,0,[0,["(?:1(?:0[0-6]|1[0-5]|2[014]|30)|7\\d\\d)\\d{6}",[9]]]],KG:["996","00","8\\d{9}|(?:[235-8]\\d|99)\\d{7}",[9,10],[["(\\d{4})(\\d{5})","$1 $2",["3(?:1[346]|[24-79])"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[235-79]|88"],"0$1"],["(\\d{3})(\\d{3})(\\d)(\\d{2,3})","$1 $2 $3 $4",["8"],"0$1"]],"0",0,0,0,0,0,[0,["312(?:58\\d|973)\\d{3}|(?:2(?:0[0-35]|2\\d)|5[0-24-7]\\d|600|7(?:[07]\\d|55)|88[08]|99[05-9])\\d{6}",[9]]]],KH:["855","00[14-9]","1\\d{9}|[1-9]\\d{7,8}",[8,9,10],[["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[1-9]"],"0$1"],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1"]]],"0",0,0,0,0,0,[0,["(?:(?:1[28]|3[18]|9[67])\\d|6[016-9]|7(?:[07-9]|[16]\\d)|8(?:[013-79]|8\\d))\\d{6}|(?:1\\d|9[0-57-9])\\d{6}|(?:2[3-6]|3[2-6]|4[2-4]|[5-7][2-5])48\\d{5}",[8,9]]]],KI:["686","00","(?:[37]\\d|6[0-79])\\d{6}|(?:[2-48]\\d|50)\\d{3}",[5,8],0,"0",0,0,0,0,0,[0,["(?:63\\d{3}|73(?:0[0-5]\\d|140))\\d{3}|[67]200[01]\\d{3}",[8]]]],KM:["269","00","[3478]\\d{6}",[7],[["(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["[3478]"]]],0,0,0,0,0,0,[0,["[34]\\d{6}"]]],KN:["1","011","(?:[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([2-7]\\d{6})$","869$1",0,"869",[0,["869(?:48[89]|55[6-8]|66\\d|76[02-7])\\d{4}"]]],KP:["850","00|99","85\\d{6}|(?:19\\d|[2-7])\\d{7}",[8,10],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["8"],"0$1"],["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[2-7]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["1"],"0$1"]],"0",0,0,0,0,0,[0,["19[1-3]\\d{7}",[10]]]],KR:["82","00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))","00[1-9]\\d{8,11}|(?:[12]|5\\d{3})\\d{7}|[13-6]\\d{9}|(?:[1-6]\\d|80)\\d{7}|[3-6]\\d{4,5}|(?:00|7)0\\d{8}",[5,6,8,9,10,11,12,13,14],[["(\\d{2})(\\d{3,4})","$1-$2",["(?:3[1-3]|[46][1-4]|5[1-5])1"],"0$1"],["(\\d{4})(\\d{4})","$1-$2",["1"]],["(\\d)(\\d{3,4})(\\d{4})","$1-$2-$3",["2"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["60|8"],"0$1"],["(\\d{2})(\\d{3,4})(\\d{4})","$1-$2-$3",["[1346]|5[1-5]"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1-$2-$3",["[57]"],"0$1"],["(\\d{2})(\\d{5})(\\d{4})","$1-$2-$3",["5"],"0$1"]],"0",0,"0(8(?:[1-46-8]|5\\d\\d))?",0,0,0,[0,["1(?:05(?:[0-8]\\d|9[0-6])|22[13]\\d)\\d{4,5}|1(?:0[1-46-9]|[16-9]\\d|2[013-9])\\d{6,7}",[9,10]]]],KW:["965","00","18\\d{5}|(?:[2569]\\d|41)\\d{6}",[7,8],[["(\\d{4})(\\d{3,4})","$1 $2",["[169]|2(?:[235]|4[1-35-9])|52"]],["(\\d{3})(\\d{5})","$1 $2",["[245]"]]],0,0,0,0,0,0,[0,["(?:41\\d\\d|5(?:(?:[05]\\d|1[0-7]|6[56])\\d|2(?:22|5[25])|7(?:55|77)|88[58])|6(?:(?:0[034679]|5[015-9]|6\\d)\\d|1(?:00|11|66)|222|3[36]3|444|7(?:0[013-9]|[67]\\d)|888|9(?:[069]\\d|3[039]))|9(?:(?:0[09]|22|[4679]\\d|8[057-9])\\d|1(?:1[01]|99)|3(?:00|33)|5(?:00|5\\d)))\\d{4}",[8]]]],KY:["1","011","(?:345|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([2-9]\\d{6})$","345$1",0,"345",[0,["345(?:32[1-9]|42[0-4]|5(?:1[67]|2[5-79]|4[6-9]|50|76)|649|82[56]|9(?:1[679]|2[2-9]|3[06-9]|90))\\d{4}"]]],KZ:["7","810","(?:33622|8\\d{8})\\d{5}|[78]\\d{9}",[10,14],0,"8",0,0,0,0,"33|7",[0,["7(?:0[0-25-8]|47|6[0-4]|7[15-8]|85)\\d{7}",[10]]],"8~10"],LA:["856","00","[23]\\d{9}|3\\d{8}|(?:[235-8]\\d|41)\\d{6}",[8,9,10],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["2[13]|3[14]|[4-8]"],"0$1"],["(\\d{2})(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4",["30[013-9]"],"0$1"],["(\\d{2})(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3 $4",["[23]"],"0$1"]],"0",0,0,0,0,0,[0,["(?:20(?:[239]\\d|5[24-9]|7[6-8]|88)|302\\d)\\d{6}",[10]]]],LB:["961","00","[27-9]\\d{7}|[13-9]\\d{6}",[7,8],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[27-9]"]]],"0",0,0,0,0,0,[0,["793(?:[01]\\d|2[0-4])\\d{3}|(?:(?:3|81)\\d|7(?:[01]\\d|6[013-9]|8[89]|9[12]))\\d{5}"]]],LC:["1","011","(?:[58]\\d\\d|758|900)\\d{7}",[10],0,"1",0,"1|([2-8]\\d{6})$","758$1",0,"758",[0,["758(?:28[4-7]|384|4(?:6[01]|8[4-9])|5(?:1[89]|20|84)|7(?:1[2-9]|2\\d|3[0-3])|812)\\d{4}"]]],LI:["423","00","[68]\\d{8}|(?:[2378]\\d|90)\\d{5}",[7,9],[["(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["[2379]|8(?:0[09]|7)","[2379]|8(?:0(?:02|9)|7)"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["69"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["6"]]],"0",0,"0|(1001)",0,0,0,[0,["(?:6(?:(?:4[5-9]|5[0-4])\\d|6(?:[0245]\\d|[17]0|3[7-9]))\\d|7(?:[37-9]\\d|42|56))\\d{4}"]]],LK:["94","00","[1-9]\\d{8}",[9],[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[1-689]"],"0$1"]],"0",0,0,0,0,0,[0,["7(?:[0-25-8]\\d|4[0-4])\\d{6}"]]],LR:["231","00","(?:[25]\\d|33|77|88)\\d{7}|(?:2\\d|[4-6])\\d{6}",[7,8,9],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[4-6]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["2"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[23578]"],"0$1"]],"0",0,0,0,0,0,[0,["(?:(?:(?:22|33)0|555|(?:77|88)\\d)\\d|4[67])\\d{5}|[56]\\d{6}",[7,9]]]],LS:["266","00","(?:[256]\\d\\d|800)\\d{5}",[8],[["(\\d{4})(\\d{4})","$1 $2",["[2568]"]]],0,0,0,0,0,0,[0,["[56]\\d{7}"]]],LT:["370","00","(?:[3469]\\d|52|[78]0)\\d{6}",[8],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["52[0-7]"],"(8-$1)",1],["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["[7-9]"],"8 $1",1],["(\\d{2})(\\d{6})","$1 $2",["37|4(?:[15]|6[1-8])"],"(8-$1)",1],["(\\d{3})(\\d{5})","$1 $2",["[3-6]"],"(8-$1)",1]],"8",0,"[08]",0,0,0,[0,["6\\d{7}"]]],LU:["352","00","35[013-9]\\d{4,8}|6\\d{8}|35\\d{2,4}|(?:[2457-9]\\d|3[0-46-9])\\d{2,9}",[4,5,6,7,8,9,10,11],[["(\\d{2})(\\d{3})","$1 $2",["2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])"]],["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])"]],["(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["20[2-689]"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})","$1 $2 $3 $4",["2(?:[0367]|4[3-8])"]],["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["80[01]|90[015]"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4",["20"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["6"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})","$1 $2 $3 $4 $5",["2(?:[0367]|4[3-8])"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{1,5})","$1 $2 $3 $4",["[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]"]]],0,0,"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\d)",0,0,0,[0,["6(?:[269][18]|5[1568]|7[189]|81)\\d{6}",[9]]]],LV:["371","00","(?:[268]\\d|90)\\d{6}",[8],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[269]|8[01]"]]],0,0,0,0,0,0,[0,["23(?:23[0-57-9]|33[0238])\\d{3}|2(?:[0-24-9]\\d\\d|3(?:0[07]|[14-9]\\d|2[024-9]|3[0-24-9]))\\d{4}"]]],LY:["218","00","[2-9]\\d{8}",[9],[["(\\d{2})(\\d{7})","$1-$2",["[2-9]"],"0$1"]],"0",0,0,0,0,0,[0,["9[1-6]\\d{7}"]]],MA:["212","00","[5-8]\\d{8}",[9],[["(\\d{5})(\\d{4})","$1-$2",["5(?:29|38)","5(?:29[1289]|389)","529(?:1[1-46-9]|2[013-8]|90)|5(?:298|389)[0-46-9]"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["5[45]"],"0$1"],["(\\d{4})(\\d{5})","$1-$2",["5(?:2[2-489]|3[5-9]|9)|892","5(?:2(?:[2-49]|8[235-9])|3[5-9]|9)|892"],"0$1"],["(\\d{2})(\\d{7})","$1-$2",["8"],"0$1"],["(\\d{3})(\\d{6})","$1-$2",["[5-7]"],"0$1"]],"0",0,0,0,0,0,[0,["(?:6(?:[0-79]\\d|8[0-247-9])|7(?:[017]\\d|2[0-2]|6[0-8]|8[0-3]))\\d{6}"]]],MC:["377","00","(?:[3489]|6\\d)\\d{7}",[8,9],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["4"],"0$1"],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[389]"]],["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["6"],"0$1"]],"0",0,0,0,0,0,[0,["4(?:[46]\\d|5[1-9])\\d{5}|(?:3|6\\d)\\d{7}"]]],MD:["373","00","(?:[235-7]\\d|[89]0)\\d{6}",[8],[["(\\d{3})(\\d{5})","$1 $2",["[89]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["22|3"],"0$1"],["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["[25-7]"],"0$1"]],"0",0,0,0,0,0,[0,["562\\d{5}|(?:6\\d|7[16-9])\\d{6}"]]],ME:["382","00","(?:20|[3-79]\\d)\\d{6}|80\\d{6,7}",[8,9],[["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-9]"],"0$1"]],"0",0,0,0,0,0,[0,["6(?:[07-9]\\d|3[024]|6[0-25])\\d{5}",[8]]]],MF:["590","00","(?:590|(?:69|80)\\d|976)\\d{6}",[9],0,"0",0,0,0,0,0,[0,["69(?:0\\d\\d|1(?:2[2-9]|3[0-5]))\\d{4}"]]],MG:["261","00","[23]\\d{8}",[9],[["(\\d{2})(\\d{2})(\\d{3})(\\d{2})","$1 $2 $3 $4",["[23]"],"0$1"]],"0",0,"0|([24-9]\\d{6})$","20$1",0,0,[0,["3[2-47-9]\\d{7}"]]],MH:["692","011","329\\d{4}|(?:[256]\\d|45)\\d{5}",[7],[["(\\d{3})(\\d{4})","$1-$2",["[2-6]"]]],"1",0,0,0,0,0,[0,["(?:(?:23|54)5|329|45[356])\\d{4}"]]],MK:["389","00","[2-578]\\d{7}",[8],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["2|34[47]|4(?:[37]7|5[47]|64)"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[347]"],"0$1"],["(\\d{3})(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4",["[58]"],"0$1"]],"0",0,0,0,0,0,[0,["7(?:3555|(?:474|9[019]7)7)\\d{3}|7(?:[0-25-8]\\d\\d|3(?:[1-48]\\d|7[01578])|4(?:2\\d|60|7[01578])|9(?:[2-4]\\d|7[015]))\\d{4}"]]],ML:["223","00","[24-9]\\d{7}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[24-9]"]]],0,0,0,0,0,0,[0,["2(?:0(?:01|79)|17\\d)\\d{4}|(?:5[01]|[679]\\d|8[2-49])\\d{6}"]]],MM:["95","00","1\\d{5,7}|95\\d{6}|(?:[4-7]|9[0-46-9])\\d{6,8}|(?:2|8\\d)\\d{5,8}",[6,7,8,9,10],[["(\\d)(\\d{2})(\\d{3})","$1 $2 $3",["16|2"],"0$1"],["(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["[45]|6(?:0[23]|[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-6]"],"0$1"],["(\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["[12]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[4-7]|8[1-35]"],"0$1"],["(\\d)(\\d{3})(\\d{4,6})","$1 $2 $3",["9(?:2[0-4]|[35-9]|4[137-9])"],"0$1"],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["2"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"],"0$1"],["(\\d)(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["92"],"0$1"],["(\\d)(\\d{5})(\\d{4})","$1 $2 $3",["9"],"0$1"]],"0",0,0,0,0,0,[0,["(?:17[01]|9(?:2(?:[0-4]|[56]\\d\\d)|(?:3(?:[0-36]|4\\d)|(?:6\\d|9[4-8])\\d|7(?:3|40|[5-9]\\d)|8(?:78|[89]\\d))\\d|4(?:(?:[0245]\\d|[1379])\\d|88)|5[0-6])\\d)\\d{4}|9[69]1\\d{6}|9(?:[68]\\d|9[089])\\d{5}",[7,8,9,10]]]],MN:["976","001","[12]\\d{7,9}|[5-9]\\d{7}",[8,9,10],[["(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["[12]1"],"0$1"],["(\\d{4})(\\d{4})","$1 $2",["[5-9]"]],["(\\d{3})(\\d{5,6})","$1 $2",["[12]2[1-3]"],"0$1"],["(\\d{4})(\\d{5,6})","$1 $2",["[12](?:27|3[2-8]|4[2-68]|5[1-4689])","[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]"],"0$1"],["(\\d{5})(\\d{4,5})","$1 $2",["[12]"],"0$1"]],"0",0,0,0,0,0,[0,["(?:83[01]|920)\\d{5}|(?:5[05]|6[06]|8[015689]|9[013-9])\\d{6}",[8]]]],MO:["853","00","0800\\d{3}|(?:28|[68]\\d)\\d{6}",[7,8],[["(\\d{4})(\\d{3})","$1 $2",["0"]],["(\\d{4})(\\d{4})","$1 $2",["[268]"]]],0,0,0,0,0,0,[0,["6800[0-79]\\d{3}|6(?:[235]\\d\\d|6(?:0[0-5]|[1-9]\\d)|8(?:0[1-9]|[14-8]\\d|2[5-9]|[39][0-4]))\\d{4}",[8]]]],MP:["1","011","[58]\\d{9}|(?:67|90)0\\d{7}",[10],0,"1",0,"1|([2-9]\\d{6})$","670$1",0,"670",[0,["670(?:2(?:3[3-7]|56|8[4-8])|32[1-38]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[3589]|8[3-9]8|989)\\d{4}"]]],MQ:["596","00","(?:69|80)\\d{7}|(?:59|97)6\\d{6}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[569]"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"],"0$1"]],"0",0,0,0,0,0,[0,["69(?:6(?:[0-46-9]\\d|5[0-6])|727)\\d{4}"]]],MR:["222","00","(?:[2-4]\\d\\d|800)\\d{5}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-48]"]]],0,0,0,0,0,0,[0,["[2-4][0-46-9]\\d{6}"]]],MS:["1","011","(?:[58]\\d\\d|664|900)\\d{7}",[10],0,"1",0,"1|([34]\\d{6})$","664$1",0,"664",[0,["664(?:3(?:49|9[1-6])|49[2-6])\\d{4}"]]],MT:["356","00","3550\\d{4}|(?:[2579]\\d\\d|800)\\d{5}",[8],[["(\\d{4})(\\d{4})","$1 $2",["[2357-9]"]]],0,0,0,0,0,0,[0,["(?:7(?:210|[79]\\d\\d)|9(?:[29]\\d\\d|69[67]|8(?:1[1-3]|89|97)))\\d{4}"]]],MU:["230","0(?:0|[24-7]0|3[03])","(?:[57]|8\\d\\d)\\d{7}|[2-468]\\d{6}",[7,8,10],[["(\\d{3})(\\d{4})","$1 $2",["[2-46]|8[013]"]],["(\\d{4})(\\d{4})","$1 $2",["[57]"]],["(\\d{5})(\\d{5})","$1 $2",["8"]]],0,0,0,0,0,0,[0,["5(?:4(?:2[1-389]|7[1-9])|87[15-8])\\d{4}|(?:5(?:2[5-9]|4[3-689]|[57]\\d|8[0-689]|9[0-8])|7(?:01|30))\\d{5}",[8]]],"020"],MV:["960","0(?:0|19)","(?:800|9[0-57-9]\\d)\\d{7}|[34679]\\d{6}",[7,10],[["(\\d{3})(\\d{4})","$1-$2",["[3467]|9[1-9]"]],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[89]"]]],0,0,0,0,0,0,[0,["46[46]\\d{4}|(?:7\\d|9[1-9])\\d{5}",[7]]],"00"],MW:["265","00","(?:[1289]\\d|31|77)\\d{7}|1\\d{6}",[7,9],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["1[2-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["2"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[137-9]"],"0$1"]],"0",0,0,0,0,0,[0,["111\\d{6}|(?:31|77|[89][89])\\d{7}",[9]]]],MX:["52","0[09]","1(?:(?:[27]2|44|99)[1-9]|65[0-689])\\d{7}|(?:1(?:[01]\\d|2[13-9]|[35][1-9]|4[0-35-9]|6[0-46-9]|7[013-9]|8[1-79]|9[1-8])|[2-9]\\d)\\d{8}",[10,11],[["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["33|5[56]|81"],0,1],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[2-9]"],0,1],["(\\d)(\\d{2})(\\d{4})(\\d{4})","$2 $3 $4",["1(?:33|5[56]|81)"],0,1],["(\\d)(\\d{3})(\\d{3})(\\d{4})","$2 $3 $4",["1"],0,1]],"01",0,"0(?:[12]|4[45])|1",0,0,0,[0,["657[12]\\d{6}|(?:1(?:2(?:2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[24-7][1-9]|3[1-8]|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69][1-9]|7[12]|8[1-8]))|2(?:2\\d|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[25-7][1-9]|3[1-8]|4\\d|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[13467][1-9]|2\\d|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|6[1-9]|7[12]|8[1-8]|9\\d))\\d{7}"]],"00"],MY:["60","00","1\\d{8,9}|(?:3\\d|[4-9])\\d{7}",[8,9,10],[["(\\d)(\\d{3})(\\d{4})","$1-$2 $3",["[4-79]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1-$2 $3",["1(?:[02469]|[378][1-9]|53)|8","1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8"],"0$1"],["(\\d)(\\d{4})(\\d{4})","$1-$2 $3",["3"],"0$1"],["(\\d)(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3-$4",["1(?:[367]|80)"]],["(\\d{3})(\\d{3})(\\d{4})","$1-$2 $3",["15"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1-$2 $3",["1"],"0$1"]],"0",0,0,0,0,0,[0,["1(?:1888[689]|4400|8(?:47|8[27])[0-4])\\d{4}|1(?:0(?:[23568]\\d|4[0-6]|7[016-9]|9[0-8])|1(?:[1-5]\\d\\d|6(?:0[5-9]|[1-9]\\d)|7(?:[0134]\\d|2[1-9]|5[0-6]))|(?:[269]\\d|[37][1-9]|4[235-9])\\d|5(?:31|9\\d\\d)|8(?:1[23]|[236]\\d|4[06]|5(?:46|[7-9])|7[016-9]|8[01]|9[0-8]))\\d{5}",[9,10]]]],MZ:["258","00","(?:2|8\\d)\\d{7}",[8,9],[["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["2|8[2-79]"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8"]]],0,0,0,0,0,0,[0,["8[2-79]\\d{7}",[9]]]],NA:["264","00","[68]\\d{7,8}",[8,9],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["88"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["6"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["87"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["8"],"0$1"]],"0",0,0,0,0,0,[0,["(?:60|8[1245])\\d{7}",[9]]]],NC:["687","00","(?:050|[2-57-9]\\d\\d)\\d{3}",[6],[["(\\d{2})(\\d{2})(\\d{2})","$1.$2.$3",["[02-57-9]"]]],0,0,0,0,0,0,[0,["(?:5[0-4]|[79]\\d|8[0-79])\\d{4}"]]],NE:["227","00","[027-9]\\d{7}",[8],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["08"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[089]|2[013]|7[04]"]]],0,0,0,0,0,0,[0,["(?:23|7[04]|[89]\\d)\\d{6}"]]],NF:["672","00","[13]\\d{5}",[6],[["(\\d{2})(\\d{4})","$1 $2",["1[0-3]"]],["(\\d)(\\d{5})","$1 $2",["[13]"]]],0,0,"([0-258]\\d{4})$","3$1",0,0,[0,["(?:14|3[58])\\d{4}"]]],NG:["234","009","(?:[124-7]|9\\d{3})\\d{6}|[1-9]\\d{7}|[78]\\d{9,13}",[7,8,10,11,12,13,14],[["(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["78"],"0$1"],["(\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["[12]|9(?:0[3-9]|[1-9])"],"0$1"],["(\\d{2})(\\d{3})(\\d{2,3})","$1 $2 $3",["[3-7]|8[2-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["[7-9]"],"0$1"],["(\\d{3})(\\d{4})(\\d{4,5})","$1 $2 $3",["[78]"],"0$1"],["(\\d{3})(\\d{5})(\\d{5,6})","$1 $2 $3",["[78]"],"0$1"]],"0",0,0,0,0,0,[0,["(?:702[0-24-9]|819[01])\\d{6}|(?:70[13-689]|8(?:0[1-9]|1[0-8])|9(?:0[1-9]|1[1-356]))\\d{7}",[10]]]],NI:["505","00","(?:1800|[25-8]\\d{3})\\d{4}",[8],[["(\\d{4})(\\d{4})","$1 $2",["[125-8]"]]],0,0,0,0,0,0,[0,["(?:5(?:5[0-7]|[78]\\d)|6(?:20|3[035]|4[045]|5[05]|77|8[1-9]|9[059])|(?:7[5-8]|8\\d)\\d)\\d{5}"]]],NL:["31","00","(?:[124-7]\\d\\d|3(?:[02-9]\\d|1[0-8]))\\d{6}|8\\d{6,9}|9\\d{6,10}|1\\d{4,5}",[5,6,7,8,9,10,11],[["(\\d{3})(\\d{4,7})","$1 $2",["[89]0"],"0$1"],["(\\d{2})(\\d{7})","$1 $2",["66"],"0$1"],["(\\d)(\\d{8})","$1 $2",["6"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["1[16-8]|2[259]|3[124]|4[17-9]|5[124679]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[1-578]|91"],"0$1"],["(\\d{3})(\\d{3})(\\d{5})","$1 $2 $3",["9"],"0$1"]],"0",0,0,0,0,0,[0,["(?:6[1-58]|970\\d)\\d{7}",[9,11]]]],NO:["47","00","(?:0|[2-9]\\d{3})\\d{4}",[5,8],[["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["[489]|59"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[235-7]"]]],0,0,0,0,0,"[02-689]|7[0-8]",[0,["(?:4[015-8]|59|9\\d)\\d{6}",[8]]]],NP:["977","00","(?:1\\d|9)\\d{9}|[1-9]\\d{7}",[8,10,11],[["(\\d)(\\d{7})","$1-$2",["1[2-6]"],"0$1"],["(\\d{2})(\\d{6})","$1-$2",["1[01]|[2-8]|9(?:[1-59]|[67][2-6])"],"0$1"],["(\\d{3})(\\d{7})","$1-$2",["9"]]],"0",0,0,0,0,0,[0,["9(?:6[0-3]|7[024-6]|8[0-24-68])\\d{7}",[10]]]],NR:["674","00","(?:444|(?:55|8\\d)\\d|666)\\d{4}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[4-68]"]]],0,0,0,0,0,0,[0,["(?:55[3-9]|666|8\\d\\d)\\d{4}"]]],NU:["683","00","(?:[47]|888\\d)\\d{3}",[4,7],[["(\\d{3})(\\d{4})","$1 $2",["8"]]],0,0,0,0,0,0,[0,["888[4-9]\\d{3}",[7]]]],NZ:["64","0(?:0|161)","[29]\\d{7,9}|50\\d{5}(?:\\d{2,3})?|6[0-35-9]\\d{6}|7\\d{7,8}|8\\d{4,9}|(?:11\\d|[34])\\d{7}",[5,6,7,8,9,10],[["(\\d{2})(\\d{3,8})","$1 $2",["8[1-579]"],"0$1"],["(\\d{3})(\\d{2})(\\d{2,3})","$1 $2 $3",["50[036-8]|[89]0","50(?:[0367]|88)|[89]0"],"0$1"],["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["24|[346]|7[2-57-9]|9[2-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["2(?:10|74)|[59]|80"],"0$1"],["(\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3",["1|2[028]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,5})","$1 $2 $3",["2(?:[169]|7[0-35-9])|7|86"],"0$1"]],"0",0,0,0,0,0,[0,["2[0-27-9]\\d{7,8}|21\\d{6}",[8,9,10]]],"00"],OM:["968","00","(?:1505|[279]\\d{3}|500)\\d{4}|800\\d{5,6}",[7,8,9],[["(\\d{3})(\\d{4,6})","$1 $2",["[58]"]],["(\\d{2})(\\d{6})","$1 $2",["2"]],["(\\d{4})(\\d{4})","$1 $2",["[179]"]]],0,0,0,0,0,0,[0,["1505\\d{4}|(?:7(?:[1289]\\d|7[0-5])|9(?:0[1-9]|[1-9]\\d))\\d{5}",[8]]]],PA:["507","00","(?:00800|8\\d{3})\\d{6}|[68]\\d{7}|[1-57-9]\\d{6}",[7,8,10,11],[["(\\d{3})(\\d{4})","$1-$2",["[1-57-9]"]],["(\\d{4})(\\d{4})","$1-$2",["[68]"]],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"]]],0,0,0,0,0,0,[0,["(?:1[16]1|21[89]|6\\d{3}|8(?:1[01]|7[23]))\\d{4}",[7,8]]]],PE:["51","00|19(?:1[124]|77|90)00","(?:[14-8]|9\\d)\\d{7}",[8,9],[["(\\d{3})(\\d{5})","$1 $2",["80"],"(0$1)"],["(\\d)(\\d{7})","$1 $2",["1"],"(0$1)"],["(\\d{2})(\\d{6})","$1 $2",["[4-8]"],"(0$1)"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["9"]]],"0",0,0,0,0,0,[0,["9\\d{8}",[9]]],"00"," Anexo "],PF:["689","00","4\\d{5}(?:\\d{2})?|8\\d{7,8}",[6,8,9],[["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["44"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["4|8[7-9]"]],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"]]],0,0,0,0,0,0,[0,["8[7-9]\\d{6}",[8]]]],PG:["675","00|140[1-3]","(?:180|[78]\\d{3})\\d{4}|(?:[2-589]\\d|64)\\d{5}",[7,8],[["(\\d{3})(\\d{4})","$1 $2",["18|[2-69]|85"]],["(\\d{4})(\\d{4})","$1 $2",["[78]"]]],0,0,0,0,0,0,[0,["(?:7\\d|8[128])\\d{6}",[8]]],"00"],PH:["63","00","(?:[2-7]|9\\d)\\d{8}|2\\d{5}|(?:1800|8)\\d{7,9}",[6,8,9,10,11,12,13],[["(\\d)(\\d{5})","$1 $2",["2"],"(0$1)"],["(\\d{4})(\\d{4,6})","$1 $2",["3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2","3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))"],"(0$1)"],["(\\d{5})(\\d{4})","$1 $2",["346|4(?:27|9[35])|883","3469|4(?:279|9(?:30|56))|8834"],"(0$1)"],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["2"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[3-7]|8[2-8]"],"(0$1)"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[89]"],"0$1"],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]],["(\\d{4})(\\d{1,2})(\\d{3})(\\d{4})","$1 $2 $3 $4",["1"]]],"0",0,0,0,0,0,[0,["(?:8(?:1[37]|9[5-8])|9(?:0[5-9]|1[0-24-9]|[235-7]\\d|4[2-9]|8[135-9]|9[1-9]))\\d{7}",[10]]]],PK:["92","00","122\\d{6}|[24-8]\\d{10,11}|9(?:[013-9]\\d{8,10}|2(?:[01]\\d\\d|2(?:[06-8]\\d|1[01]))\\d{7})|(?:[2-8]\\d{3}|92(?:[0-7]\\d|8[1-9]))\\d{6}|[24-9]\\d{8}|[89]\\d{7}",[8,9,10,11,12],[["(\\d{3})(\\d{3})(\\d{2,7})","$1 $2 $3",["[89]0"],"0$1"],["(\\d{4})(\\d{5})","$1 $2",["1"]],["(\\d{3})(\\d{6,7})","$1 $2",["2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])","9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]"],"(0$1)"],["(\\d{2})(\\d{7,8})","$1 $2",["(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]"],"(0$1)"],["(\\d{5})(\\d{5})","$1 $2",["58"],"(0$1)"],["(\\d{3})(\\d{7})","$1 $2",["3"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91"],"(0$1)"],["(\\d{3})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["[24-9]"],"(0$1)"]],"0",0,0,0,0,0,[0,["3(?:[0-24]\\d|3[0-7]|55|64)\\d{7}",[10]]]],PL:["48","00","(?:6|8\\d\\d)\\d{7}|[1-9]\\d{6}(?:\\d{2})?|[26]\\d{5}",[6,7,8,9,10],[["(\\d{5})","$1",["19"]],["(\\d{3})(\\d{3})","$1 $2",["11|20|64"]],["(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1","(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19"]],["(\\d{3})(\\d{2})(\\d{2,3})","$1 $2 $3",["64"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)"]],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[2-8]|[2-7]|8[1-79]|9[145]"]],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["8"]]],0,0,0,0,0,0,[0,["21(?:1(?:[145]\\d|3[1-5])|2[0-4]\\d)\\d{4}|(?:45|5[0137]|6[069]|7[2389]|88)\\d{7}",[9]]]],PM:["508","00","(?:[45]|80\\d\\d)\\d{5}",[6,9],[["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["[45]"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"],"0$1"]],"0",0,0,0,0,0,[0,["(?:4[02-4]|5[056])\\d{4}",[6]]]],PR:["1","011","(?:[589]\\d\\d|787)\\d{7}",[10],0,"1",0,0,0,0,"787|939",[0,["(?:787|939)[2-9]\\d{6}"]]],PS:["970","00","[2489]2\\d{6}|(?:1\\d|5)\\d{8}",[8,9,10],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[2489]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["5"],"0$1"],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1"]]],"0",0,0,0,0,0,[0,["5[69]\\d{7}",[9]]]],PT:["351","00","1693\\d{5}|(?:[26-9]\\d|30)\\d{7}",[9],[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["2[12]"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["16|[236-9]"]]],0,0,0,0,0,0,[0,["6(?:[06]92(?:30|9\\d)|[35]92(?:3[03]|9\\d))\\d{3}|(?:(?:16|6[0356])93|9(?:[1-36]\\d\\d|480))\\d{5}"]]],PW:["680","01[12]","(?:[24-8]\\d\\d|345|900)\\d{4}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[2-9]"]]],0,0,0,0,0,0,[0,["(?:(?:46|83)[0-5]|6[2-4689]0)\\d{4}|(?:45|77|88)\\d{5}"]]],PY:["595","00","59\\d{4,6}|9\\d{5,10}|(?:[2-46-8]\\d|5[0-8])\\d{4,7}",[6,7,8,9,10,11],[["(\\d{3})(\\d{3,6})","$1 $2",["[2-9]0"],"0$1"],["(\\d{2})(\\d{5})","$1 $2",["[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]"],"(0$1)"],["(\\d{3})(\\d{4,5})","$1 $2",["2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["87"]],["(\\d{3})(\\d{6})","$1 $2",["9(?:[5-79]|8[1-6])"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[2-8]"],"0$1"],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["9"]]],"0",0,0,0,0,0,[0,["9(?:51|6[129]|[78][1-6]|9[1-5])\\d{6}",[9]]]],QA:["974","00","800\\d{4}|(?:2|800)\\d{6}|(?:0080|[3-7])\\d{7}",[7,8,9,11],[["(\\d{3})(\\d{4})","$1 $2",["2[16]|8"]],["(\\d{4})(\\d{4})","$1 $2",["[3-7]"]]],0,0,0,0,0,0,[0,["[35-7]\\d{7}",[8]]]],RE:["262","00","976\\d{6}|(?:26|[68]\\d)\\d{7}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2689]"],"0$1"]],"0",0,0,0,0,"26[23]|69|[89]",[0,["(?:69(?:2\\d\\d|3(?:0[0-46]|1[013]|2[0-2]|3[0-39]|4\\d|5[0-5]|6[0-6]|7[0-27]|8[0-8]|9[0-479]))|976(?:2[27]|3[0-37]|9\\d))\\d{4}"]]],RO:["40","00","(?:[2378]\\d|90)\\d{7}|[23]\\d{5}",[6,9],[["(\\d{3})(\\d{3})","$1 $2",["2[3-6]","2[3-6]\\d9"],"0$1"],["(\\d{2})(\\d{4})","$1 $2",["219|31"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[23]1"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[237-9]"],"0$1"]],"0",0,0,0,0,0,[0,["7020\\d{5}|7(?:0[013-9]|1[0-3]|[2-7]\\d|8[03-8]|9[019])\\d{6}",[9]]],0," int "],RS:["381","00","38[02-9]\\d{6,9}|6\\d{7,9}|90\\d{4,8}|38\\d{5,6}|(?:7\\d\\d|800)\\d{3,9}|(?:[12]\\d|3[0-79])\\d{5,10}",[6,7,8,9,10,11,12],[["(\\d{3})(\\d{3,9})","$1 $2",["(?:2[389]|39)0|[7-9]"],"0$1"],["(\\d{2})(\\d{5,10})","$1 $2",["[1-36]"],"0$1"]],"0",0,0,0,0,0,[0,["6(?:[0-689]|7\\d)\\d{6,7}",[8,9,10]]]],RU:["7","810","8\\d{13}|[347-9]\\d{9}",[10,14],[["(\\d{4})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["7(?:1[0-8]|2[1-9])","7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))","7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2"],"8 ($1)",1],["(\\d{5})(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4",["7(?:1[0-68]|2[1-9])","7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))","7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]"],"8 ($1)",1],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"8 ($1)",1],["(\\d{3})(\\d{3})(\\d{2})(\\d{2})","$1 $2-$3-$4",["[349]|8(?:[02-7]|1[1-8])"],"8 ($1)",1],["(\\d{4})(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3 $4",["8"],"8 ($1)"]],"8",0,0,0,0,"3[04-689]|[489]",[0,["9\\d{9}",[10]]],"8~10"],RW:["250","00","(?:06|[27]\\d\\d|[89]00)\\d{6}",[8,9],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["0"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[7-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["2"]]],"0",0,0,0,0,0,[0,["7[2389]\\d{7}",[9]]]],SA:["966","00","92\\d{7}|(?:[15]|8\\d)\\d{8}",[9,10],[["(\\d{4})(\\d{5})","$1 $2",["9"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["1"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["5"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["81"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"]]],"0",0,0,0,0,0,[0,["579[01]\\d{5}|5(?:[013-689]\\d|7[0-35-8])\\d{6}",[9]]]],SB:["677","0[01]","(?:[1-6]|[7-9]\\d\\d)\\d{4}",[5,7],[["(\\d{2})(\\d{5})","$1 $2",["7|8[4-9]|9(?:[1-8]|9[0-8])"]]],0,0,0,0,0,0,[0,["48\\d{3}|(?:(?:7[1-9]|8[4-9])\\d|9(?:1[2-9]|2[013-9]|3[0-2]|[46]\\d|5[0-46-9]|7[0-689]|8[0-79]|9[0-8]))\\d{4}"]]],SC:["248","010|0[0-2]","800\\d{4}|(?:[249]\\d|64)\\d{5}",[7],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[246]|9[57]"]]],0,0,0,0,0,0,[0,["2[125-8]\\d{5}"]],"00"],SD:["249","00","[19]\\d{8}",[9],[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[19]"],"0$1"]],"0",0,0,0,0,0,[0,["(?:1[0-2]|9[0-3569])\\d{7}"]]],SE:["46","00","(?:[26]\\d\\d|9)\\d{9}|[1-9]\\d{8}|[1-689]\\d{7}|[1-4689]\\d{6}|2\\d{5}",[6,7,8,9,10],[["(\\d{2})(\\d{2,3})(\\d{2})","$1-$2 $3",["20"],"0$1",0,"$1 $2 $3"],["(\\d{3})(\\d{4})","$1-$2",["9(?:00|39|44|9)"],"0$1",0,"$1 $2"],["(\\d{2})(\\d{3})(\\d{2})","$1-$2 $3",["[12][136]|3[356]|4[0246]|6[03]|90[1-9]"],"0$1",0,"$1 $2 $3"],["(\\d)(\\d{2,3})(\\d{2})(\\d{2})","$1-$2 $3 $4",["8"],"0$1",0,"$1 $2 $3 $4"],["(\\d{3})(\\d{2,3})(\\d{2})","$1-$2 $3",["1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"],"0$1",0,"$1 $2 $3"],["(\\d{3})(\\d{2,3})(\\d{3})","$1-$2 $3",["9(?:00|39|44)"],"0$1",0,"$1 $2 $3"],["(\\d{2})(\\d{2,3})(\\d{2})(\\d{2})","$1-$2 $3 $4",["1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]"],"0$1",0,"$1 $2 $3 $4"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1-$2 $3 $4",["10|7"],"0$1",0,"$1 $2 $3 $4"],["(\\d)(\\d{3})(\\d{3})(\\d{2})","$1-$2 $3 $4",["8"],"0$1",0,"$1 $2 $3 $4"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1-$2 $3 $4",["[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"],"0$1",0,"$1 $2 $3 $4"],["(\\d{3})(\\d{2})(\\d{2})(\\d{3})","$1-$2 $3 $4",["9"],"0$1",0,"$1 $2 $3 $4"],["(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1-$2 $3 $4 $5",["[26]"],"0$1",0,"$1 $2 $3 $4 $5"]],"0",0,0,0,0,0,[0,["7[02369]\\d{7}",[9]]]],SG:["65","0[0-3]\\d","(?:(?:1\\d|8)\\d\\d|7000)\\d{7}|[3689]\\d{7}",[8,10,11],[["(\\d{4})(\\d{4})","$1 $2",["[369]|8(?:0[1-6]|[1-9])"]],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"]],["(\\d{4})(\\d{4})(\\d{3})","$1 $2 $3",["7"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]]],0,0,0,0,0,0,[0,["8(?:06[0-6]|95[0-2])\\d{4}|(?:8(?:0[1-5]|[1-8]\\d|9[0-4])|9[0-8]\\d)\\d{5}",[8]]]],SH:["290","00","(?:[256]\\d|8)\\d{3}",[4,5],0,0,0,0,0,0,"[256]",[0,["[56]\\d{4}",[5]]]],SI:["386","00|10(?:22|66|88|99)","[1-7]\\d{7}|8\\d{4,7}|90\\d{4,6}",[5,6,7,8],[["(\\d{2})(\\d{3,6})","$1 $2",["8[09]|9"],"0$1"],["(\\d{3})(\\d{5})","$1 $2",["59|8"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[37][01]|4[0139]|51|6"],"0$1"],["(\\d)(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[1-57]"],"(0$1)"]],"0",0,0,0,0,0,[0,["65(?:1\\d|5[56]|6[01]|70)\\d{4}|(?:[37][01]|4[0139]|51|6[489])\\d{6}",[8]]],"00"],SJ:["47","00","0\\d{4}|(?:[489]\\d|[57]9)\\d{6}",[5,8],0,0,0,0,0,0,"79",[0,["(?:4[015-8]|59|9\\d)\\d{6}",[8]]]],SK:["421","00","[2-689]\\d{8}|[2-59]\\d{6}|[2-5]\\d{5}",[6,7,9],[["(\\d)(\\d{2})(\\d{3,4})","$1 $2 $3",["21"],"0$1"],["(\\d{2})(\\d{2})(\\d{2,3})","$1 $2 $3",["[3-5][1-8]1","[3-5][1-8]1[67]"],"0$1"],["(\\d)(\\d{3})(\\d{3})(\\d{2})","$1/$2 $3 $4",["2"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[689]"],"0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1/$2 $3 $4",["[3-5]"],"0$1"]],"0",0,0,0,0,0,[0,["909[1-9]\\d{5}|9(?:0[1-8]|1[0-24-9]|4[03-57-9]|5\\d)\\d{6}",[9]]]],SL:["232","00","(?:[237-9]\\d|66)\\d{6}",[8],[["(\\d{2})(\\d{6})","$1 $2",["[236-9]"],"(0$1)"]],"0",0,0,0,0,0,[0,["(?:25|3[0-5]|66|7[2-9]|8[08]|9[09])\\d{6}"]]],SM:["378","00","(?:0549|[5-7]\\d)\\d{6}",[8,10],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-7]"]],["(\\d{4})(\\d{6})","$1 $2",["0"]]],0,0,"([89]\\d{5})$","0549$1",0,0,[0,["6[16]\\d{6}",[8]]]],SN:["221","00","(?:[378]\\d|93)\\d{7}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"]],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[379]"]]],0,0,0,0,0,0,[0,["7(?:(?:[06-8]\\d|21|90)\\d|5(?:01|[19]0|25|[38]3|[4-7]\\d))\\d{5}"]]],SO:["252","00","[346-9]\\d{8}|[12679]\\d{7}|[1-5]\\d{6}|[1348]\\d{5}",[6,7,8,9],[["(\\d{2})(\\d{4})","$1 $2",["8[125]"]],["(\\d{6})","$1",["[134]"]],["(\\d)(\\d{6})","$1 $2",["[15]|2[0-79]|3[0-46-8]|4[0-7]"]],["(\\d)(\\d{7})","$1 $2",["(?:2|90)4|[67]"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[3478]|64|90"]],["(\\d{2})(\\d{5,7})","$1 $2",["1|28|6(?:0[5-7]|[1-35-9])|9[2-9]"]]],"0",0,0,0,0,0,[0,["(?:(?:15|(?:3[59]|4[89]|79|8[08])\\d|6(?:0[5-7]|[1-9]\\d)|9(?:0\\d|[2-9]))\\d|2(?:4\\d|8))\\d{5}|(?:[67]\\d\\d|904)\\d{5}",[7,8,9]]]],SR:["597","00","(?:[2-5]|68|[78]\\d)\\d{5}",[6,7],[["(\\d{2})(\\d{2})(\\d{2})","$1-$2-$3",["56"]],["(\\d{3})(\\d{3})","$1-$2",["[2-5]"]],["(\\d{3})(\\d{4})","$1-$2",["[6-8]"]]],0,0,0,0,0,0,[0,["(?:7[124-7]|8[124-9])\\d{5}",[7]]]],SS:["211","00","[19]\\d{8}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[19]"],"0$1"]],"0",0,0,0,0,0,[0,["(?:12|9[1257-9])\\d{7}"]]],ST:["239","00","(?:22|9\\d)\\d{5}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[29]"]]],0,0,0,0,0,0,[0,["900[5-9]\\d{3}|9(?:0[1-9]|[89]\\d)\\d{4}"]]],SV:["503","00","[267]\\d{7}|[89]00\\d{4}(?:\\d{4})?",[7,8,11],[["(\\d{3})(\\d{4})","$1 $2",["[89]"]],["(\\d{4})(\\d{4})","$1 $2",["[267]"]],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["[89]"]]],0,0,0,0,0,0,[0,["66(?:[02-9]\\d\\d|1(?:[02-9]\\d|16))\\d{3}|(?:6[0-57-9]|7\\d)\\d{6}",[8]]]],SX:["1","011","7215\\d{6}|(?:[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|(5\\d{6})$","721$1",0,"721",[0,["7215(?:1[02]|2\\d|5[034679]|8[014-8])\\d{4}"]]],SY:["963","00","[1-39]\\d{8}|[1-5]\\d{7}",[8,9],[["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[1-5]"],"0$1",1],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["9"],"0$1",1]],"0",0,0,0,0,0,[0,["9[1-689]\\d{7}",[9]]]],SZ:["268","00","0800\\d{4}|(?:[237]\\d|900)\\d{6}",[8,9],[["(\\d{4})(\\d{4})","$1 $2",["[0237]"]],["(\\d{5})(\\d{4})","$1 $2",["9"]]],0,0,0,0,0,0,[0,["7[6-9]\\d{6}",[8]]]],TA:["290","00","8\\d{3}",[4],0,0,0,0,0,0,"8"],TC:["1","011","(?:[58]\\d\\d|649|900)\\d{7}",[10],0,"1",0,"1|([2-479]\\d{6})$","649$1",0,"649",[0,["649(?:2(?:3[129]|4[1-79])|3\\d\\d|4[34][1-3])\\d{4}"]]],TD:["235","00|16","(?:22|[69]\\d|77)\\d{6}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2679]"]]],0,0,0,0,0,0,[0,["(?:6[023568]|77|9\\d)\\d{6}"]],"00"],TG:["228","00","[279]\\d{7}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[279]"]]],0,0,0,0,0,0,[0,["(?:7[09]|9[0-36-9])\\d{6}"]]],TH:["66","00[1-9]","(?:001800|[2-57]|[689]\\d)\\d{7}|1\\d{7,9}",[8,9,10,13],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["2"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[13-9]"],"0$1"],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1"]]],"0",0,0,0,0,0,[0,["671[0-8]\\d{5}|(?:14|6[1-6]|[89]\\d)\\d{7}",[9]]]],TJ:["992","810","(?:00|[1-57-9]\\d)\\d{7}",[9],[["(\\d{6})(\\d)(\\d{2})","$1 $2 $3",["331","3317"]],["(\\d{3})(\\d{2})(\\d{4})","$1 $2 $3",["[34]7|91[78]"]],["(\\d{4})(\\d)(\\d{4})","$1 $2 $3",["3[1-5]"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[0-57-9]"]]],0,0,0,0,0,0,[0,["41[18]\\d{6}|(?:[034]0|1[017]|2[02]|5[05]|7[0178]|8[078]|9\\d)\\d{7}"]],"8~10"],TK:["690","00","[2-47]\\d{3,6}",[4,5,6,7],0,0,0,0,0,0,0,[0,["7[2-4]\\d{2,5}"]]],TL:["670","00","7\\d{7}|(?:[2-47]\\d|[89]0)\\d{5}",[7,8],[["(\\d{3})(\\d{4})","$1 $2",["[2-489]|70"]],["(\\d{4})(\\d{4})","$1 $2",["7"]]],0,0,0,0,0,0,[0,["7[2-8]\\d{6}",[8]]]],TM:["993","810","[1-6]\\d{7}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2-$3-$4",["12"],"(8 $1)"],["(\\d{3})(\\d)(\\d{2})(\\d{2})","$1 $2-$3-$4",["[1-5]"],"(8 $1)"],["(\\d{2})(\\d{6})","$1 $2",["6"],"8 $1"]],"8",0,0,0,0,0,[0,["6\\d{7}"]],"8~10"],TN:["216","00","[2-57-9]\\d{7}",[8],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[2-57-9]"]]],0,0,0,0,0,0,[0,["3(?:001|[12]40)\\d{4}|(?:(?:[259]\\d|4[0-7])\\d|3(?:1[1-35]|6[0-4]|91))\\d{5}"]]],TO:["676","00","(?:0800|(?:[5-8]\\d\\d|999)\\d)\\d{3}|[2-8]\\d{4}",[5,7],[["(\\d{2})(\\d{3})","$1-$2",["[2-4]|50|6[09]|7[0-24-69]|8[05]"]],["(\\d{4})(\\d{3})","$1 $2",["0"]],["(\\d{3})(\\d{4})","$1 $2",["[5-9]"]]],0,0,0,0,0,0,[0,["(?:55[4-6]|6(?:[09]\\d|3[02]|8[15-9])|(?:7\\d|8[46-9])\\d|999)\\d{4}",[7]]]],TR:["90","00","4\\d{6}|8\\d{11,12}|(?:[2-58]\\d\\d|900)\\d{7}",[7,10,12,13],[["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["512|8[01589]|90"],"0$1",1],["(\\d{3})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["5(?:[0-59]|61)","5(?:[0-59]|616)","5(?:[0-59]|6161)"],"0$1",1],["(\\d{3})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[24][1-8]|3[1-9]"],"(0$1)",1],["(\\d{3})(\\d{3})(\\d{6,7})","$1 $2 $3",["80"],"0$1",1]],"0",0,0,0,0,0,[0,["56161\\d{5}|5(?:0[15-7]|1[06]|24|[34]\\d|5[1-59]|9[46])\\d{7}",[10]]]],TT:["1","011","(?:[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([2-46-8]\\d{6})$","868$1",0,"868",[0,["868(?:(?:2[5-9]|3\\d)\\d|4(?:3[0-6]|[6-9]\\d)|6(?:20|78|8\\d)|7(?:0[1-9]|1[02-9]|[2-9]\\d))\\d{4}"]]],TV:["688","00","(?:2|7\\d\\d|90)\\d{4}",[5,6,7],[["(\\d{2})(\\d{3})","$1 $2",["2"]],["(\\d{2})(\\d{4})","$1 $2",["90"]],["(\\d{2})(\\d{5})","$1 $2",["7"]]],0,0,0,0,0,0,[0,["(?:7[01]\\d|90)\\d{4}",[6,7]]]],TW:["886","0(?:0[25-79]|19)","[2-689]\\d{8}|7\\d{9,10}|[2-8]\\d{7}|2\\d{6}",[7,8,9,10,11],[["(\\d{2})(\\d)(\\d{4})","$1 $2 $3",["202"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[258]0"],"0$1"],["(\\d)(\\d{3,4})(\\d{4})","$1 $2 $3",["[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]","[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[49]"],"0$1"],["(\\d{2})(\\d{4})(\\d{4,5})","$1 $2 $3",["7"],"0$1"]],"0",0,0,0,0,0,[0,["(?:40001[0-2]|9[0-8]\\d{4})\\d{3}",[9]]],0,"#"],TZ:["255","00[056]","(?:[25-8]\\d|41|90)\\d{7}",[9],[["(\\d{3})(\\d{2})(\\d{4})","$1 $2 $3",["[89]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[24]"],"0$1"],["(\\d{2})(\\d{7})","$1 $2",["5"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[67]"],"0$1"]],"0",0,0,0,0,0,[0,["77[2-9]\\d{6}|(?:6[125-9]|7[13-689])\\d{7}"]]],UA:["380","00","[89]\\d{9}|[3-9]\\d{8}",[9,10],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]","6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]"],"0$1"],["(\\d{4})(\\d{5})","$1 $2",["3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])","3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[3-7]|89|9[1-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["[89]"],"0$1"]],"0",0,0,0,0,0,[0,["(?:39|50|6[36-8]|7[1-3]|9[1-9])\\d{7}",[9]]],"0~0"],UG:["256","00[057]","800\\d{6}|(?:[29]0|[347]\\d)\\d{7}",[9],[["(\\d{4})(\\d{5})","$1 $2",["202","2024"],"0$1"],["(\\d{3})(\\d{6})","$1 $2",["[27-9]|4(?:6[45]|[7-9])"],"0$1"],["(\\d{2})(\\d{7})","$1 $2",["[34]"],"0$1"]],"0",0,0,0,0,0,[0,["726[01]\\d{5}|7(?:[01578]\\d|20|36|[46][0-4]|9[89])\\d{6}"]]],US:["1","011","[2-9]\\d{9}|3\\d{6}",[10],[["(\\d{3})(\\d{4})","$1-$2",["310"],0,1],["(\\d{3})(\\d{3})(\\d{4})","($1) $2-$3",["[2-9]"],0,1,"$1-$2-$3"]],"1",0,0,0,0,0,[0,["505(?:[2-57-9]\\d\\d|6(?:[0-35-9]\\d|4[46]))\\d{4}|(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[0-2]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\d{6}"]]],UY:["598","0(?:0|1[3-9]\\d)","(?:0004|4)\\d{9}|[1249]\\d{7}|(?:[49]\\d|80)\\d{5}",[7,8,10,13],[["(\\d{3})(\\d{4})","$1 $2",["405|8|90"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["9"],"0$1"],["(\\d{4})(\\d{4})","$1 $2",["[124]"]],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["4"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3 $4",["0"]]],"0",0,0,0,0,0,[0,["9[1-9]\\d{6}",[8]]],"00"," int. "],UZ:["998","810","(?:33|[5-79]\\d|88)\\d{7}",[9],[["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[35-9]"],"8 $1"]],"8",0,0,0,0,0,[0,["(?:(?:33|88|9[0-57-9])\\d{3}|5(?:0\\d{3}|5(?:50[013]|90\\d))|6(?:1(?:2(?:2[01]|98)|35[0-4]|50\\d|61[23]|7(?:[01][017]|4\\d|55|9[5-9]))|2(?:(?:11|7\\d)\\d|2(?:[12]1|9[01379])|5(?:[126]\\d|3[0-4]))|5(?:19[01]|2(?:27|9[26])|(?:30|59|7\\d)\\d)|6(?:2(?:1[5-9]|2[0367]|38|41|52|60)|(?:3[79]|9[0-3])\\d|4(?:56|83)|7(?:[07]\\d|1[017]|3[07]|4[047]|5[057]|67|8[0178]|9[79]))|7(?:2(?:24|3[237]|4[5-9]|7[15-8])|5(?:7[12]|8[0589])|7(?:0\\d|[39][07])|9(?:0\\d|7[079]))|9(?:2(?:1[1267]|3[01]|5\\d|7[0-4])|(?:5[67]|7\\d)\\d|6(?:2[0-26]|8\\d)))|7(?:[07]\\d{3}|1(?:13[01]|6(?:0[47]|1[67]|66)|71[3-69]|98\\d)|2(?:2(?:2[79]|95)|3(?:2[5-9]|6[0-6])|57\\d|7(?:0\\d|1[17]|2[27]|3[37]|44|5[057]|66|88))|3(?:2(?:1[0-6]|21|3[469]|7[159])|(?:33|9[4-6])\\d|5(?:0[0-4]|5[579]|9\\d)|7(?:[0-3579]\\d|4[0467]|6[67]|8[078]))|4(?:2(?:29|5[0257]|6[0-7]|7[1-57])|5(?:1[0-4]|8\\d|9[5-9])|7(?:0\\d|1[024589]|2[0-27]|3[0137]|[46][07]|5[01]|7[5-9]|9[079])|9(?:7[015-9]|[89]\\d))|5(?:112|2(?:0\\d|2[29]|[49]4)|3[1568]\\d|52[6-9]|7(?:0[01578]|1[017]|[23]7|4[047]|[5-7]\\d|8[78]|9[079]))|6(?:2(?:2[1245]|4[2-4])|39\\d|41[179]|5(?:[349]\\d|5[0-2])|7(?:0[017]|[13]\\d|22|44|55|67|88))|9(?:22[128]|3(?:2[0-4]|7\\d)|57[02569]|7(?:2[05-9]|3[37]|4\\d|60|7[2579]|87|9[07]))))\\d{4}"]],"8~10"],VA:["39","00","0\\d{5,10}|3[0-8]\\d{7,10}|55\\d{8}|8\\d{5}(?:\\d{2,4})?|(?:1\\d|39)\\d{7,8}",[6,7,8,9,10,11],0,0,0,0,0,0,"06698",[0,["3[1-9]\\d{8}|3[2-9]\\d{7}",[9,10]]]],VC:["1","011","(?:[58]\\d\\d|784|900)\\d{7}",[10],0,"1",0,"1|([2-7]\\d{6})$","784$1",0,"784",[0,["784(?:4(?:3[0-5]|5[45]|89|9[0-8])|5(?:2[6-9]|3[0-4])|720)\\d{4}"]]],VE:["58","00","[68]00\\d{7}|(?:[24]\\d|[59]0)\\d{8}",[10],[["(\\d{3})(\\d{7})","$1-$2",["[24-689]"],"0$1"]],"0",0,0,0,0,0,[0,["4(?:1[24-8]|2[46])\\d{7}"]]],VG:["1","011","(?:284|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([2-578]\\d{6})$","284$1",0,"284",[0,["284496[6-9]\\d{3}|284(?:245|3(?:0[0-3]|4[0-7]|68|9[34])|4(?:4[0-6]|68|99)|5(?:4[0-7]|68|9[69]))\\d{4}"]]],VI:["1","011","[58]\\d{9}|(?:34|90)0\\d{7}",[10],0,"1",0,"1|([2-9]\\d{6})$","340$1",0,"340",[0,["340(?:2(?:0[0-368]|2[06-8]|4[49]|77)|3(?:32|44)|4(?:2[23]|44|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|2[57]|7\\d)|884|998)\\d{4}"]]],VN:["84","00","[12]\\d{9}|[135-9]\\d{8}|[16]\\d{7}|[16-8]\\d{6}",[7,8,9,10],[["(\\d{2})(\\d{5})","$1 $2",["80"],"0$1",1],["(\\d{4})(\\d{4,6})","$1 $2",["1"],0,1],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[69]"],"0$1",1],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[3578]"],"0$1",1],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["2[48]"],"0$1",1],["(\\d{3})(\\d{4})(\\d{3})","$1 $2 $3",["2"],"0$1",1]],"0",0,0,0,0,0,[0,["(?:5(?:2[238]|59)|89[6-9]|99[013-9])\\d{6}|(?:3\\d|5[689]|7[06-9]|8[1-8]|9[0-8])\\d{7}",[9]]]],VU:["678","00","[57-9]\\d{6}|(?:[238]\\d|48)\\d{3}",[5,7],[["(\\d{3})(\\d{4})","$1 $2",["[57-9]"]]],0,0,0,0,0,0,[0,["(?:[58]\\d|7[013-7])\\d{5}",[7]]]],WF:["681","00","(?:40|72)\\d{4}|8\\d{5}(?:\\d{3})?",[6,9],[["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["[478]"]],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"]]],0,0,0,0,0,0,[0,["(?:72|8[23])\\d{4}",[6]]]],WS:["685","0","(?:[2-6]|8\\d{5})\\d{4}|[78]\\d{6}|[68]\\d{5}",[5,6,7,10],[["(\\d{5})","$1",["[2-5]|6[1-9]"]],["(\\d{3})(\\d{3,7})","$1 $2",["[68]"]],["(\\d{2})(\\d{5})","$1 $2",["7"]]],0,0,0,0,0,0,[0,["(?:7[1-35-7]|8(?:[3-7]|9\\d{3}))\\d{5}",[7,10]]]],XK:["383","00","[23]\\d{7,8}|(?:4\\d\\d|[89]00)\\d{5}",[8,9],[["(\\d{3})(\\d{5})","$1 $2",["[89]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[2-4]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[23]"],"0$1"]],"0",0,0,0,0,0,[0,["4[3-9]\\d{6}",[8]]]],YE:["967","00","(?:1|7\\d)\\d{7}|[1-7]\\d{6}",[7,8,9],[["(\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["[1-6]|7(?:[24-6]|8[0-7])"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["7"],"0$1"]],"0",0,0,0,0,0,[0,["7[01378]\\d{7}",[9]]]],YT:["262","00","80\\d{7}|(?:26|63)9\\d{6}",[9],0,"0",0,0,0,0,"269|63",[0,["639(?:0[0-79]|1[019]|[267]\\d|3[09]|40|5[05-9]|9[04-79])\\d{4}"]]],ZA:["27","00","[1-79]\\d{8}|8\\d{4,9}",[5,6,7,8,9,10],[["(\\d{2})(\\d{3,4})","$1 $2",["8[1-4]"],"0$1"],["(\\d{2})(\\d{3})(\\d{2,3})","$1 $2 $3",["8[1-4]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["860"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[1-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"],"0$1"]],"0",0,0,0,0,0,[0,["(?:1(?:3492[0-25]|4495[0235]|549(?:20|5[01]))|4[34]492[01])\\d{3}|8[1-4]\\d{3,7}|(?:2[27]|47|54)4950\\d{3}|(?:1(?:049[2-4]|9[12]\\d\\d)|(?:6\\d|7[0-46-9])\\d{3}|8(?:5\\d{3}|7(?:08[67]|158|28[5-9]|310)))\\d{4}|(?:1[6-8]|28|3[2-69]|4[025689]|5[36-8])4920\\d{3}|(?:12|[2-5]1)492\\d{4}",[5,6,7,8,9]]]],ZM:["260","00","800\\d{6}|(?:21|63|[79]\\d)\\d{7}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[28]"],"0$1"],["(\\d{2})(\\d{7})","$1 $2",["[79]"],"0$1"]],"0",0,0,0,0,0,[0,["(?:7[5-79]|9[5-8])\\d{7}"]]],ZW:["263","00","2(?:[0-57-9]\\d{6,8}|6[0-24-9]\\d{6,7})|[38]\\d{9}|[35-8]\\d{8}|[3-6]\\d{7}|[1-689]\\d{6}|[1-3569]\\d{5}|[1356]\\d{4}",[5,6,7,8,9,10],[["(\\d{3})(\\d{3,5})","$1 $2",["2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]"],"0$1"],["(\\d)(\\d{3})(\\d{2,4})","$1 $2 $3",["[49]"],"0$1"],["(\\d{3})(\\d{4})","$1 $2",["80"],"0$1"],["(\\d{2})(\\d{7})","$1 $2",["24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2","2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)","2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)"],"0$1"],["(\\d{4})(\\d{6})","$1 $2",["8"],"0$1"],["(\\d{2})(\\d{3,5})","$1 $2",["1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["29[013-9]|39|54"],"0$1"],["(\\d{4})(\\d{3,5})","$1 $2",["(?:25|54)8","258|5483"],"0$1"]],"0",0,0,0,0,0,[0,["7(?:[178]\\d|3[1-9])\\d{6}",[9]]]]},nonGeographic:{800:["800",0,"(?:00|[1-9]\\d)\\d{6}",[8],[["(\\d{4})(\\d{4})","$1 $2",["\\d"]]],0,0,0,0,0,0,[0,0,["(?:00|[1-9]\\d)\\d{6}"]]],808:["808",0,"[1-9]\\d{7}",[8],[["(\\d{4})(\\d{4})","$1 $2",["[1-9]"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,0,["[1-9]\\d{7}"]]],870:["870",0,"7\\d{11}|[35-7]\\d{8}",[9,12],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[35-7]"]]],0,0,0,0,0,0,[0,["(?:[356]|774[45])\\d{8}|7[6-8]\\d{7}"]]],878:["878",0,"10\\d{10}",[12],[["(\\d{2})(\\d{5})(\\d{5})","$1 $2 $3",["1"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,["10\\d{10}"]]],881:["881",0,"[0-36-9]\\d{8}",[9],[["(\\d)(\\d{3})(\\d{5})","$1 $2 $3",["[0-36-9]"]]],0,0,0,0,0,0,[0,["[0-36-9]\\d{8}"]]],882:["882",0,"[13]\\d{6}(?:\\d{2,5})?|[19]\\d{7}|(?:[25]\\d\\d|4)\\d{7}(?:\\d{2})?",[7,8,9,10,11,12],[["(\\d{2})(\\d{5})","$1 $2",["16|342"]],["(\\d{2})(\\d{6})","$1 $2",["49"]],["(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["1[36]|9"]],["(\\d{2})(\\d{4})(\\d{3})","$1 $2 $3",["3[23]"]],["(\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3",["16"]],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["10|23|3(?:[15]|4[57])|4|51"]],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["34"]],["(\\d{2})(\\d{4,5})(\\d{5})","$1 $2 $3",["[1-35]"]]],0,0,0,0,0,0,[0,["342\\d{4}|(?:337|49)\\d{6}|(?:3(?:2|47|7\\d{3})|50\\d{3})\\d{7}",[7,8,9,10,12]],0,0,0,0,0,0,["1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\d{4}|6\\d{5,10})|(?:345\\d|9[89])\\d{6}|(?:10|2(?:3|85\\d)|3(?:[15]|[69]\\d\\d)|4[15-8]|51)\\d{8}"]]],883:["883",0,"(?:[1-4]\\d|51)\\d{6,10}",[8,9,10,11,12],[["(\\d{3})(\\d{3})(\\d{2,8})","$1 $2 $3",["[14]|2[24-689]|3[02-689]|51[24-9]"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["510"]],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["21"]],["(\\d{4})(\\d{4})(\\d{4})","$1 $2 $3",["51[13]"]],["(\\d{3})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["[235]"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,["(?:2(?:00\\d\\d|10)|(?:370[1-9]|51\\d0)\\d)\\d{7}|51(?:00\\d{5}|[24-9]0\\d{4,7})|(?:1[013-79]|2[24-689]|3[02-689]|4[0-4])0\\d{5,9}"]]],888:["888",0,"\\d{11}",[11],[["(\\d{3})(\\d{3})(\\d{5})","$1 $2 $3"]],0,0,0,0,0,0,[0,0,0,0,0,0,["\\d{11}"]]],979:["979",0,"[1359]\\d{8}",[9],[["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["[1359]"]]],0,0,0,0,0,0,[0,0,0,["[1359]\\d{8}"]]]}};function n(d,$){var t=Array.prototype.slice.call($);return t.push(e),d.apply(this,t)}}}]);
+"use strict";(globalThis.webpackChunktinode_webapp=globalThis.webpackChunktinode_webapp||[]).push([[765],{8006:(d,$,t)=>{t.d($,{Z:()=>I});var e=t(2581),n=t(5864),r=t(1316),o=t(1089);function a(d,$,t){var n=new e.ZP(t).getCountryCodesForCallingCode(d);return n?n.filter((function(d){return function(d,$,t){var n=new e.ZP(t);if(n.selectNumberingPlan($),n.numberingPlan.possibleLengths().indexOf(d.length)>=0)return!0;return!1}($,d,t)})):[]}var i=t(5619);var u=/(\$\d)/;function l(d,$,t){var e=t.useInternationalFormat,n=t.withNationalPrefix,r=(t.carrierCode,t.metadata,d.replace(new RegExp($.pattern()),e?$.internationalFormat():n&&$.nationalPrefixFormattingRule()?$.format().replace(u,$.nationalPrefixFormattingRule()):$.format()));return e?function(d){return d.replace(new RegExp("[".concat(i.uv,"]+"),"g")," ").trim()}(r):r}var c=/^[\d]+(?:[~\u2053\u223C\uFF5E][\d]+)?$/;var f=t(457);function s(d,$){var t="undefined"!=typeof Symbol&&d[Symbol.iterator]||d["@@iterator"];if(t)return(t=t.call(d)).next.bind(t);if(Array.isArray(d)||(t=function(d,$){if(!d)return;if("string"==typeof d)return y(d,$);var t=Object.prototype.toString.call(d).slice(8,-1);"Object"===t&&d.constructor&&(t=d.constructor.name);if("Map"===t||"Set"===t)return Array.from(d);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return y(d,$)}(d))||$&&d&&"number"==typeof d.length){t&&(d=t);var e=0;return function(){return e>=d.length?{done:!0}:{done:!1,value:d[e++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function y(d,$){(null==$||$>d.length)&&($=d.length);for(var t=0,e=new Array($);t<$;t++)e[t]=d[t];return e}function h(d,$){var t=Object.keys(d);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(d);$&&(e=e.filter((function($){return Object.getOwnPropertyDescriptor(d,$).enumerable}))),t.push.apply(t,e)}return t}function p(d){for(var $=1;$0){var o=n.leadingDigitsPatterns()[n.leadingDigitsPatterns().length-1];if(0!==$.search(o))continue}if((0,r.Z)($,n.pattern()))return n}}(e.formats(),d);return o?l(d,o,{useInternationalFormat:"INTERNATIONAL"===t,withNationalPrefix:!o.nationalPrefixIsOptionalWhenFormattingInNationalFormat()||!n||!1!==n.nationalPrefix,carrierCode:$,metadata:e}):d}function C(d,$,t,e){return $?e(d,$,t):d}function P(d,$){var t=Object.keys(d);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(d);$&&(e=e.filter((function($){return Object.getOwnPropertyDescriptor(d,$).enumerable}))),t.push.apply(t,e)}return t}function O(d){for(var $=1;${t.d($,{ex:()=>e,sJ:()=>n,uv:()=>a,xc:()=>o,xg:()=>r,xy:()=>i});var e=2,n=17,r=3,o="0-90-9٠-٩۰-۹",a="".concat("-‐-―−ー-").concat("//").concat("..").concat(" ").concat("()()[]\\[\\]").concat("~⁓∼~"),i="++"},457:(d,$,t)=>{t.d($,{Y:()=>i,m:()=>a});var e=t(3345);function n(d,$){return function(d){if(Array.isArray(d))return d}(d)||function(d,$){var t=null==d?null:"undefined"!=typeof Symbol&&d[Symbol.iterator]||d["@@iterator"];if(null==t)return;var e,n,r=[],o=!0,a=!1;try{for(t=t.call(d);!(o=(e=t.next()).done)&&(r.push(e.value),!$||r.length!==$);o=!0);}catch(d){a=!0,n=d}finally{try{o||null==t.return||t.return()}finally{if(a)throw n}}return r}(d,$)||r(d,$)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function r(d,$){if(d){if("string"==typeof d)return o(d,$);var t=Object.prototype.toString.call(d).slice(8,-1);return"Object"===t&&d.constructor&&(t=d.constructor.name),"Map"===t||"Set"===t?Array.from(d):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?o(d,$):void 0}}function o(d,$){(null==$||$>d.length)&&($=d.length);for(var t=0,e=new Array($);t<$;t++)e[t]=d[t];return e}function a(d){for(var $,t,o,a=function(d,$){var t="undefined"!=typeof Symbol&&d[Symbol.iterator]||d["@@iterator"];if(t)return(t=t.call(d)).next.bind(t);if(Array.isArray(d)||(t=r(d))||$&&d&&"number"==typeof d.length){t&&(d=t);var e=0;return function(){return e>=d.length?{done:!0}:{done:!1,value:d[e++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}((d=d.replace(/^tel:/,"tel=")).split(";"));!(o=a()).done;){var i=n(o.value.split("="),2),u=i[0],l=i[1];switch(u){case"tel":$=l;break;case"ext":t=l;break;case"phone-context":"+"===l[0]&&($=l+$)}}if(!(0,e.ZP)($))return{};var c={number:$};return t&&(c.ext=t),c}function i(d){var $=d.number,t=d.ext;if(!$)return"";if("+"!==$[0])throw new Error('"formatRFC3966()" expects "number" to be in E.164 format.');return"tel:".concat($).concat(t?";ext="+t:"")}},7856:(d,$,t)=>{function e(d,$){var t="undefined"!=typeof Symbol&&d[Symbol.iterator]||d["@@iterator"];if(t)return(t=t.call(d)).next.bind(t);if(Array.isArray(d)||(t=function(d,$){if(!d)return;if("string"==typeof d)return n(d,$);var t=Object.prototype.toString.call(d).slice(8,-1);"Object"===t&&d.constructor&&(t=d.constructor.name);if("Map"===t||"Set"===t)return Array.from(d);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return n(d,$)}(d))||$&&d&&"number"==typeof d.length){t&&(d=t);var e=0;return function(){return e>=d.length?{done:!0}:{done:!1,value:d[e++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function n(d,$){(null==$||$>d.length)&&($=d.length);for(var t=0,e=new Array($);t<$;t++)e[t]=d[t];return e}function r(d,$){return o(d,void 0,$)}function o(d,$,t){var n=t.type($),r=n&&n.possibleLengths()||t.possibleLengths();if(!r)return"IS_POSSIBLE";if("FIXED_LINE_OR_MOBILE"===$){if(!t.type("FIXED_LINE"))return o(d,"MOBILE",t);var a=t.type("MOBILE");a&&(r=function(d,$){for(var t,n=d.slice(),r=e($);!(t=r()).done;){var o=t.value;d.indexOf(o)<0&&n.push(o)}return n.sort((function(d,$){return d-$}))}(r,a.possibleLengths()))}else if($&&!n)return"INVALID_LENGTH";var i=d.length,u=r[0];return u===i?"IS_POSSIBLE":u>i?"TOO_SHORT":r[r.length-1]=0?"IS_POSSIBLE":"INVALID_LENGTH"}t.d($,{Z:()=>r})},3878:(d,$,t)=>{t.d($,{Z:()=>o});var e=t(5619),n=";ext=",r=function(d){return"([".concat(e.xc,"]{1,").concat(d,"})")};function o(d){var $="[ \\t,]*",t="[:\\..]?[ \\t,-]*",e="#?",o="[ \\t]*";return n+r("20")+"|"+($+"(?:e?xt(?:ensi(?:ó?|ó))?n?|e?xtn?|доб|anexo)"+t+r("20")+e)+"|"+($+"(?:[xx##~~]|int|int)"+t+r("9")+e)+"|"+("[- ]+"+r("6")+"#")+"|"+(o+"(?:,{2}|;)"+t+r("15")+e)+"|"+(o+"(?:,)+"+t+r("9")+e)}},1089:(d,$,t)=>{t.d($,{Z:()=>i});var e=t(2581),n=t(1316);function r(d,$){var t="undefined"!=typeof Symbol&&d[Symbol.iterator]||d["@@iterator"];if(t)return(t=t.call(d)).next.bind(t);if(Array.isArray(d)||(t=function(d,$){if(!d)return;if("string"==typeof d)return o(d,$);var t=Object.prototype.toString.call(d).slice(8,-1);"Object"===t&&d.constructor&&(t=d.constructor.name);if("Map"===t||"Set"===t)return Array.from(d);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return o(d,$)}(d))||$&&d&&"number"==typeof d.length){t&&(d=t);var e=0;return function(){return e>=d.length?{done:!0}:{done:!1,value:d[e++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function o(d,$){(null==$||$>d.length)&&($=d.length);for(var t=0,e=new Array($);t<$;t++)e[t]=d[t];return e}var a=["MOBILE","PREMIUM_RATE","TOLL_FREE","SHARED_COST","VOIP","PERSONAL_NUMBER","PAGER","UAN","VOICEMAIL"];function i(d,$,t){if($=$||{},d.country){(t=new e.ZP(t)).selectNumberingPlan(d.country,d.countryCallingCode);var o=$.v2?d.nationalNumber:d.phone;if((0,n.Z)(o,t.nationalNumberPattern())){if(u(o,"FIXED_LINE",t))return t.type("MOBILE")&&""===t.type("MOBILE").pattern()?"FIXED_LINE_OR_MOBILE":t.type("MOBILE")?u(o,"MOBILE",t)?"FIXED_LINE_OR_MOBILE":"FIXED_LINE":"FIXED_LINE_OR_MOBILE";for(var i,l=r(a);!(i=l()).done;){var c=i.value;if(u(o,c,t))return c}}}}function u(d,$,t){return!(!($=t.type($))||!$.pattern())&&(!($.possibleLengths()&&$.possibleLengths().indexOf(d.length)<0)&&(0,n.Z)(d,$.pattern()))}},3345:(d,$,t)=>{t.d($,{ZP:()=>l,ch:()=>c});var e=t(5619),n=t(3878),r="["+e.xc+"]{"+e.ex+"}",o="["+e.xy+"]{0,1}(?:["+e.uv+"]*["+e.xc+"]){3,}["+e.uv+e.xc+"]*",a=new RegExp("^["+e.xy+"]{0,1}(?:["+e.uv+"]*["+e.xc+"]){1,2}$","i"),i=o+"(?:"+(0,n.Z)()+")?",u=new RegExp("^"+r+"$|^"+i+"$","i");function l(d){return d.length>=e.ex&&u.test(d)}function c(d){return a.test(d)}},1316:(d,$,t)=>{function e(d,$){return d=d||"",new RegExp("^(?:"+$+")$").test(d)}t.d($,{Z:()=>e})},5864:(d,$,t)=>{t.d($,{D:()=>o,Z:()=>r});var e=t(2581),n=t(7856);function r(d,$,t){if(void 0===$&&($={}),t=new e.ZP(t),$.v2){if(!d.countryCallingCode)throw new Error("Invalid phone number object passed");t.selectNumberingPlan(d.countryCallingCode)}else{if(!d.phone)return!1;if(d.country){if(!t.hasCountry(d.country))throw new Error("Unknown country: ".concat(d.country));t.country(d.country)}else{if(!d.countryCallingCode)throw new Error("Invalid phone number object passed");t.selectNumberingPlan(d.countryCallingCode)}}if(t.possibleLengths())return o(d.phone||d.nationalNumber,t);if(d.countryCallingCode&&t.isNonGeographicCallingCode(d.countryCallingCode))return!0;throw new Error('Missing "possibleLengths" in metadata. Perhaps the metadata has been generated before v1.0.18.')}function o(d,$){return"IS_POSSIBLE"===(0,n.Z)(d,$)}},2581:(d,$,t)=>{function e(d,$){d=d.split("-"),$=$.split("-");for(var t=d[0].split("."),e=$[0].split("."),n=0;n<3;n++){var r=Number(t[n]),o=Number(e[n]);if(r>o)return 1;if(o>r)return-1;if(!isNaN(r)&&isNaN(o))return 1;if(isNaN(r)&&!isNaN(o))return-1}return d[1]&&$[1]?d[1]>$[1]?1:d[1]<$[1]?-1:0:!d[1]&&$[1]?1:d[1]&&!$[1]?-1:0}function n(d){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(d){return typeof d}:function(d){return d&&"function"==typeof Symbol&&d.constructor===Symbol&&d!==Symbol.prototype?"symbol":typeof d},n(d)}function r(d,$){if(!(d instanceof $))throw new TypeError("Cannot call a class as a function")}function o(d,$){for(var t=0;t<$.length;t++){var e=$[t];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(d,e.key,e)}}function a(d,$,t){return $&&o(d.prototype,$),t&&o(d,t),Object.defineProperty(d,"prototype",{writable:!1}),d}t.d($,{ZP:()=>f,Gg:()=>v});var i="1.2.0",u="1.7.35",l=" ext. ",c=/^\d+$/,f=function(){function d($){r(this,d),function(d){if(!d)throw new Error("[libphonenumber-js] `metadata` argument not passed. Check your arguments.");if(!g(d)||!g(d.countries))throw new Error("[libphonenumber-js] `metadata` argument was passed but it's not a valid metadata. Must be an object having `.countries` child object property. Got ".concat(g(d)?"an object of shape: { "+Object.keys(d).join(", ")+" }":"a "+b(d)+": "+d,"."))}($),this.metadata=$,C.call(this,$)}return a(d,[{key:"getCountries",value:function(){return Object.keys(this.metadata.countries).filter((function(d){return"001"!==d}))}},{key:"getCountryMetadata",value:function(d){return this.metadata.countries[d]}},{key:"nonGeographic",value:function(){if(!(this.v1||this.v2||this.v3))return this.metadata.nonGeographic||this.metadata.nonGeographical}},{key:"hasCountry",value:function(d){return void 0!==this.getCountryMetadata(d)}},{key:"hasCallingCode",value:function(d){if(this.getCountryCodesForCallingCode(d))return!0;if(this.nonGeographic()){if(this.nonGeographic()[d])return!0}else{var $=this.countryCallingCodes()[d];if($&&1===$.length&&"001"===$[0])return!0}}},{key:"isNonGeographicCallingCode",value:function(d){return this.nonGeographic()?!!this.nonGeographic()[d]:!this.getCountryCodesForCallingCode(d)}},{key:"country",value:function(d){return this.selectNumberingPlan(d)}},{key:"selectNumberingPlan",value:function(d,$){if(d&&c.test(d)&&($=d,d=null),d&&"001"!==d){if(!this.hasCountry(d))throw new Error("Unknown country: ".concat(d));this.numberingPlan=new s(this.getCountryMetadata(d),this)}else if($){if(!this.hasCallingCode($))throw new Error("Unknown calling code: ".concat($));this.numberingPlan=new s(this.getNumberingPlanMetadata($),this)}else this.numberingPlan=void 0;return this}},{key:"getCountryCodesForCallingCode",value:function(d){var $=this.countryCallingCodes()[d];if($){if(1===$.length&&3===$[0].length)return;return $}}},{key:"getCountryCodeForCallingCode",value:function(d){var $=this.getCountryCodesForCallingCode(d);if($)return $[0]}},{key:"getNumberingPlanMetadata",value:function(d){var $=this.getCountryCodeForCallingCode(d);if($)return this.getCountryMetadata($);if(this.nonGeographic()){var t=this.nonGeographic()[d];if(t)return t}else{var e=this.countryCallingCodes()[d];if(e&&1===e.length&&"001"===e[0])return this.metadata.countries["001"]}}},{key:"countryCallingCode",value:function(){return this.numberingPlan.callingCode()}},{key:"IDDPrefix",value:function(){return this.numberingPlan.IDDPrefix()}},{key:"defaultIDDPrefix",value:function(){return this.numberingPlan.defaultIDDPrefix()}},{key:"nationalNumberPattern",value:function(){return this.numberingPlan.nationalNumberPattern()}},{key:"possibleLengths",value:function(){return this.numberingPlan.possibleLengths()}},{key:"formats",value:function(){return this.numberingPlan.formats()}},{key:"nationalPrefixForParsing",value:function(){return this.numberingPlan.nationalPrefixForParsing()}},{key:"nationalPrefixTransformRule",value:function(){return this.numberingPlan.nationalPrefixTransformRule()}},{key:"leadingDigits",value:function(){return this.numberingPlan.leadingDigits()}},{key:"hasTypes",value:function(){return this.numberingPlan.hasTypes()}},{key:"type",value:function(d){return this.numberingPlan.type(d)}},{key:"ext",value:function(){return this.numberingPlan.ext()}},{key:"countryCallingCodes",value:function(){return this.v1?this.metadata.country_phone_code_to_countries:this.metadata.country_calling_codes}},{key:"chooseCountryByCountryCallingCode",value:function(d){return this.selectNumberingPlan(d)}},{key:"hasSelectedNumberingPlan",value:function(){return void 0!==this.numberingPlan}}]),d}(),s=function(){function d($,t){r(this,d),this.globalMetadataObject=t,this.metadata=$,C.call(this,t.metadata)}return a(d,[{key:"callingCode",value:function(){return this.metadata[0]}},{key:"getDefaultCountryMetadataForRegion",value:function(){return this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode())}},{key:"IDDPrefix",value:function(){if(!this.v1&&!this.v2)return this.metadata[1]}},{key:"defaultIDDPrefix",value:function(){if(!this.v1&&!this.v2)return this.metadata[12]}},{key:"nationalNumberPattern",value:function(){return this.v1||this.v2?this.metadata[1]:this.metadata[2]}},{key:"possibleLengths",value:function(){if(!this.v1)return this.metadata[this.v2?2:3]}},{key:"_getFormats",value:function(d){return d[this.v1?2:this.v2?3:4]}},{key:"formats",value:function(){var d=this,$=this._getFormats(this.metadata)||this._getFormats(this.getDefaultCountryMetadataForRegion())||[];return $.map((function($){return new y($,d)}))}},{key:"nationalPrefix",value:function(){return this.metadata[this.v1?3:this.v2?4:5]}},{key:"_getNationalPrefixFormattingRule",value:function(d){return d[this.v1?4:this.v2?5:6]}},{key:"nationalPrefixFormattingRule",value:function(){return this._getNationalPrefixFormattingRule(this.metadata)||this._getNationalPrefixFormattingRule(this.getDefaultCountryMetadataForRegion())}},{key:"_nationalPrefixForParsing",value:function(){return this.metadata[this.v1?5:this.v2?6:7]}},{key:"nationalPrefixForParsing",value:function(){return this._nationalPrefixForParsing()||this.nationalPrefix()}},{key:"nationalPrefixTransformRule",value:function(){return this.metadata[this.v1?6:this.v2?7:8]}},{key:"_getNationalPrefixIsOptionalWhenFormatting",value:function(){return!!this.metadata[this.v1?7:this.v2?8:9]}},{key:"nationalPrefixIsOptionalWhenFormattingInNationalFormat",value:function(){return this._getNationalPrefixIsOptionalWhenFormatting(this.metadata)||this._getNationalPrefixIsOptionalWhenFormatting(this.getDefaultCountryMetadataForRegion())}},{key:"leadingDigits",value:function(){return this.metadata[this.v1?8:this.v2?9:10]}},{key:"types",value:function(){return this.metadata[this.v1?9:this.v2?10:11]}},{key:"hasTypes",value:function(){return(!this.types()||0!==this.types().length)&&!!this.types()}},{key:"type",value:function(d){if(this.hasTypes()&&m(this.types(),d))return new p(m(this.types(),d),this)}},{key:"ext",value:function(){return this.v1||this.v2?l:this.metadata[13]||l}}]),d}(),y=function(){function d($,t){r(this,d),this._format=$,this.metadata=t}return a(d,[{key:"pattern",value:function(){return this._format[0]}},{key:"format",value:function(){return this._format[1]}},{key:"leadingDigitsPatterns",value:function(){return this._format[2]||[]}},{key:"nationalPrefixFormattingRule",value:function(){return this._format[3]||this.metadata.nationalPrefixFormattingRule()}},{key:"nationalPrefixIsOptionalWhenFormattingInNationalFormat",value:function(){return!!this._format[4]||this.metadata.nationalPrefixIsOptionalWhenFormattingInNationalFormat()}},{key:"nationalPrefixIsMandatoryWhenFormattingInNationalFormat",value:function(){return this.usesNationalPrefix()&&!this.nationalPrefixIsOptionalWhenFormattingInNationalFormat()}},{key:"usesNationalPrefix",value:function(){return!(!this.nationalPrefixFormattingRule()||h.test(this.nationalPrefixFormattingRule()))}},{key:"internationalFormat",value:function(){return this._format[5]||this.format()}}]),d}(),h=/^\(?\$1\)?$/,p=function(){function d($,t){r(this,d),this.type=$,this.metadata=t}return a(d,[{key:"pattern",value:function(){return this.metadata.v1?this.type:this.type[0]}},{key:"possibleLengths",value:function(){if(!this.metadata.v1)return this.type[1]||this.metadata.possibleLengths()}}]),d}();function m(d,$){switch($){case"FIXED_LINE":return d[0];case"MOBILE":return d[1];case"TOLL_FREE":return d[2];case"PREMIUM_RATE":return d[3];case"PERSONAL_NUMBER":return d[4];case"VOICEMAIL":return d[5];case"UAN":return d[6];case"PAGER":return d[7];case"VOIP":return d[8];case"SHARED_COST":return d[9]}}var g=function(d){return"object"===n(d)},b=function(d){return n(d)};function v(d,$){if(($=new f($)).hasCountry(d))return $.country(d).countryCallingCode();throw new Error("Unknown country: ".concat(d))}function C(d){var $=d.version;"number"==typeof $?(this.v1=1===$,this.v2=2===$,this.v3=3===$,this.v4=4===$):$?-1===e($,i)?this.v2=!0:-1===e($,u)?this.v3=!0:this.v4=!0:this.v1=!0}},6359:(d,$,t)=>{t.d($,{Z:()=>e});const e={AC:"40123",AD:"312345",AE:"501234567",AF:"701234567",AG:"2684641234",AI:"2642351234",AL:"672123456",AM:"77123456",AO:"923123456",AR:"91123456789",AS:"6847331234",AT:"664123456",AU:"412345678",AW:"5601234",AX:"412345678",AZ:"401234567",BA:"61123456",BB:"2462501234",BD:"1812345678",BE:"470123456",BF:"70123456",BG:"43012345",BH:"36001234",BI:"79561234",BJ:"90011234",BL:"690001234",BM:"4413701234",BN:"7123456",BO:"71234567",BQ:"3181234",BR:"11961234567",BS:"2423591234",BT:"17123456",BW:"71123456",BY:"294911911",BZ:"6221234",CA:"5062345678",CC:"412345678",CD:"991234567",CF:"70012345",CG:"061234567",CH:"781234567",CI:"0123456789",CK:"71234",CL:"221234567",CM:"671234567",CN:"13123456789",CO:"3211234567",CR:"83123456",CU:"51234567",CV:"9911234",CW:"95181234",CX:"412345678",CY:"96123456",CZ:"601123456",DE:"15123456789",DJ:"77831001",DK:"32123456",DM:"7672251234",DO:"8092345678",DZ:"551234567",EC:"991234567",EE:"51234567",EG:"1001234567",EH:"650123456",ER:"7123456",ES:"612345678",ET:"911234567",FI:"412345678",FJ:"7012345",FK:"51234",FM:"3501234",FO:"211234",FR:"612345678",GA:"06031234",GB:"7400123456",GD:"4734031234",GE:"555123456",GF:"694201234",GG:"7781123456",GH:"231234567",GI:"57123456",GL:"221234",GM:"3012345",GN:"601123456",GP:"690001234",GQ:"222123456",GR:"6912345678",GT:"51234567",GU:"6713001234",GW:"955012345",GY:"6091234",HK:"51234567",HN:"91234567",HR:"921234567",HT:"34101234",HU:"201234567",ID:"812345678",IE:"850123456",IL:"502345678",IM:"7924123456",IN:"8123456789",IO:"3801234",IQ:"7912345678",IR:"9123456789",IS:"6111234",IT:"3123456789",JE:"7797712345",JM:"8762101234",JO:"790123456",JP:"9012345678",KE:"712123456",KG:"700123456",KH:"91234567",KI:"72001234",KM:"3212345",KN:"8697652917",KP:"1921234567",KR:"1020000000",KW:"50012345",KY:"3453231234",KZ:"7710009998",LA:"2023123456",LB:"71123456",LC:"7582845678",LI:"660234567",LK:"712345678",LR:"770123456",LS:"50123456",LT:"61234567",LU:"628123456",LV:"21234567",LY:"912345678",MA:"650123456",MC:"612345678",MD:"62112345",ME:"67622901",MF:"690001234",MG:"321234567",MH:"2351234",MK:"72345678",ML:"65012345",MM:"92123456",MN:"88123456",MO:"66123456",MP:"6702345678",MQ:"696201234",MR:"22123456",MS:"6644923456",MT:"96961234",MU:"52512345",MV:"7712345",MW:"991234567",MX:"12221234567",MY:"123456789",MZ:"821234567",NA:"811234567",NC:"751234",NE:"93123456",NF:"381234",NG:"8021234567",NI:"81234567",NL:"612345678",NO:"40612345",NP:"9841234567",NR:"5551234",NU:"8884012",NZ:"211234567",OM:"92123456",PA:"61234567",PE:"912345678",PF:"87123456",PG:"70123456",PH:"9051234567",PK:"3012345678",PL:"512345678",PM:"551234",PR:"7872345678",PS:"599123456",PT:"912345678",PW:"6201234",PY:"961456789",QA:"33123456",RE:"692123456",RO:"712034567",RS:"601234567",RU:"9123456789",RW:"720123456",SA:"512345678",SB:"7421234",SC:"2510123",SD:"911231234",SE:"701234567",SG:"81234567",SH:"51234",SI:"31234567",SJ:"41234567",SK:"912123456",SL:"25123456",SM:"66661212",SN:"701234567",SO:"71123456",SR:"7412345",SS:"977123456",ST:"9812345",SV:"70123456",SX:"7215205678",SY:"944567890",SZ:"76123456",TA:"8999",TC:"6492311234",TD:"63012345",TG:"90112345",TH:"812345678",TJ:"917123456",TK:"7290",TL:"77212345",TM:"66123456",TN:"20123456",TO:"7715123",TR:"5012345678",TT:"8682911234",TV:"901234",TW:"912345678",TZ:"621234567",UA:"501234567",UG:"712345678",US:"2015550123",UY:"94231234",UZ:"912345678",VA:"3123456789",VC:"7844301234",VE:"4121234567",VG:"2843001234",VI:"3406421234",VN:"912345678",VU:"5912345",WF:"821234",WS:"7212345",XK:"43201234",YE:"712345678",YT:"639012345",ZA:"711234567",ZM:"955123456",ZW:"712345678"}},2689:(d,$,t)=>{t.d($,{L:()=>o});var e=t(8659),n=t(8006);function r(d,$,t){if($[d])return new n.Z(d,$[d],t)}function o(){return(0,e.Z)(r,arguments)}},2703:(d,$,t)=>{t.d($,{h:()=>z});var e=t(8659),n=t(5619);function r(d){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(d){return typeof d}:function(d){return d&&"function"==typeof Symbol&&d.constructor===Symbol&&d!==Symbol.prototype?"symbol":typeof d},r(d)}function o(d,$){for(var t=0;t<$.length;t++){var e=$[t];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(d,e.key,e)}}function a(d){var $=c();return function(){var t,e=s(d);if($){var n=s(this).constructor;t=Reflect.construct(e,arguments,n)}else t=e.apply(this,arguments);return function(d,$){if($&&("object"===r($)||"function"==typeof $))return $;if(void 0!==$)throw new TypeError("Derived constructors may only return object or undefined");return i(d)}(this,t)}}function i(d){if(void 0===d)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return d}function u(d){var $="function"==typeof Map?new Map:void 0;return u=function(d){if(null===d||(t=d,-1===Function.toString.call(t).indexOf("[native code]")))return d;var t;if("function"!=typeof d)throw new TypeError("Super expression must either be null or a function");if(void 0!==$){if($.has(d))return $.get(d);$.set(d,e)}function e(){return l(d,arguments,s(this).constructor)}return e.prototype=Object.create(d.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),f(e,d)},u(d)}function l(d,$,t){return l=c()?Reflect.construct:function(d,$,t){var e=[null];e.push.apply(e,$);var n=new(Function.bind.apply(d,e));return t&&f(n,t.prototype),n},l.apply(null,arguments)}function c(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(d){return!1}}function f(d,$){return f=Object.setPrototypeOf||function(d,$){return d.__proto__=$,d},f(d,$)}function s(d){return s=Object.setPrototypeOf?Object.getPrototypeOf:function(d){return d.__proto__||Object.getPrototypeOf(d)},s(d)}var y=function(d){!function(d,$){if("function"!=typeof $&&null!==$)throw new TypeError("Super expression must either be null or a function");d.prototype=Object.create($&&$.prototype,{constructor:{value:d,writable:!0,configurable:!0}}),Object.defineProperty(d,"prototype",{writable:!1}),$&&f(d,$)}(r,d);var $,t,e,n=a(r);function r(d){var $;return function(d,$){if(!(d instanceof $))throw new TypeError("Cannot call a class as a function")}(this,r),$=n.call(this,d),Object.setPrototypeOf(i($),r.prototype),$.name=$.constructor.name,$}return $=r,t&&o($.prototype,t),e&&o($,e),Object.defineProperty($,"prototype",{writable:!1}),$}(u(Error)),h=t(2581),p=t(3345),m=t(3878),g=new RegExp("(?:"+(0,m.Z)()+")$","i");var b={0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9","0":"0","1":"1","2":"2","3":"3","4":"4","5":"5","6":"6","7":"7","8":"8","9":"9","٠":"0","١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","۰":"0","۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9"};function v(d){return b[d]}function C(d,$){var t="undefined"!=typeof Symbol&&d[Symbol.iterator]||d["@@iterator"];if(t)return(t=t.call(d)).next.bind(t);if(Array.isArray(d)||(t=function(d,$){if(!d)return;if("string"==typeof d)return P(d,$);var t=Object.prototype.toString.call(d).slice(8,-1);"Object"===t&&d.constructor&&(t=d.constructor.name);if("Map"===t||"Set"===t)return Array.from(d);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return P(d,$)}(d))||$&&d&&"number"==typeof d.length){t&&(d=t);var e=0;return function(){return e>=d.length?{done:!0}:{done:!1,value:d[e++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function P(d,$){(null==$||$>d.length)&&($=d.length);for(var t=0,e=new Array($);t<$;t++)e[t]=d[t];return e}function O(d){for(var $,t="",e=C(d.split(""));!($=e()).done;){t+=N($.value,t)||""}return t}function N(d,$){if("+"===d){if($)return;return"+"}return v(d)}var E=t(5864),S=t(457),I=t(8006),w=t(1316),A=new RegExp("(["+n.xc+"])");var M=t(7856);function T(d,$){var t=function(d,$){if(d&&$.numberingPlan.nationalPrefixForParsing()){var t=new RegExp("^(?:"+$.numberingPlan.nationalPrefixForParsing()+")"),e=t.exec(d);if(e){var n,r,o,a=e.length-1,i=a>0&&e[a];if($.nationalPrefixTransformRule()&&i)n=d.replace(t,$.nationalPrefixTransformRule()),a>1&&(r=e[1]);else{var u=e[0];n=d.slice(u.length),i&&(r=e[1])}if(i){var l=d.indexOf(e[1]);d.slice(0,l)===$.numberingPlan.nationalPrefix()&&(o=$.numberingPlan.nationalPrefix())}else o=e[0];return{nationalNumber:n,nationalPrefix:o,carrierCode:r}}}return{nationalNumber:d}}(d,$),e=t.carrierCode,n=t.nationalNumber;if(n!==d){if(!function(d,$,t){if((0,w.Z)(d,t.nationalNumberPattern())&&!(0,w.Z)($,t.nationalNumberPattern()))return!1;return!0}(d,n,$))return{nationalNumber:d};if($.possibleLengths()&&!function(d,$){switch((0,M.Z)(d,$)){case"TOO_SHORT":case"INVALID_LENGTH":return!1;default:return!0}}(n,$))return{nationalNumber:d}}return{nationalNumber:n,carrierCode:e}}function x(d,$,t,e){if(!d)return{};if("+"!==d[0]){var r=function(d,$,t,e){if($){var n=new h.ZP(e);n.selectNumberingPlan($,t);var r=new RegExp(n.IDDPrefix());if(0===d.search(r)){var o=(d=d.slice(d.match(r)[0].length)).match(A);if(!(o&&null!=o[1]&&o[1].length>0&&"0"===o[1]))return d}}}(d,$,t,e);if(!r||r===d){if($||t){var o=function(d,$,t,e){var n=$?(0,h.Gg)($,e):t;if(0===d.indexOf(n)){(e=new h.ZP(e)).selectNumberingPlan($,t);var r=d.slice(n.length),o=T(r,e).nationalNumber,a=T(d,e).nationalNumber;if(!(0,w.Z)(a,e.nationalNumberPattern())&&(0,w.Z)(o,e.nationalNumberPattern())||"TOO_LONG"===(0,M.Z)(a,e))return{countryCallingCode:n,number:r}}return{number:d}}(d,$,t,e),a=o.countryCallingCode,i=o.number;if(a)return{countryCallingCode:a,number:i}}return{number:d}}d="+"+r}if("0"===d[1])return{};e=new h.ZP(e);for(var u=2;u-1<=n.xg&&u<=d.length;){var l=d.slice(1,u);if(e.hasCallingCode(l))return e.selectNumberingPlan(l),{countryCallingCode:l,number:d.slice(u)};u++}return{}}var R=t(1089);function L(d,$){var t="undefined"!=typeof Symbol&&d[Symbol.iterator]||d["@@iterator"];if(t)return(t=t.call(d)).next.bind(t);if(Array.isArray(d)||(t=function(d,$){if(!d)return;if("string"==typeof d)return G(d,$);var t=Object.prototype.toString.call(d).slice(8,-1);"Object"===t&&d.constructor&&(t=d.constructor.name);if("Map"===t||"Set"===t)return Array.from(d);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return G(d,$)}(d))||$&&d&&"number"==typeof d.length){t&&(d=t);var e=0;return function(){return e>=d.length?{done:!0}:{done:!1,value:d[e++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function G(d,$){(null==$||$>d.length)&&($=d.length);for(var t=0,e=new Array($);t<$;t++)e[t]=d[t];return e}var D=!1;function F(d,$,t){if(D&&t.isNonGeographicCallingCode(d))return"001";var e=t.getCountryCodesForCallingCode(d);return e?1===e.length?e[0]:function(d,$,t){t=new h.ZP(t);for(var e,n=L(d);!(e=n()).done;){var r=e.value;if(t.country(r),t.leadingDigits()){if($&&0===$.search(t.leadingDigits()))return r}else if((0,R.Z)({phone:$,country:r},void 0,t.metadata))return r}}(e,$,t.metadata):void 0}var j=250,B=new RegExp("["+n.xy+n.xc+"]"),k=new RegExp("[^"+n.xc+"#]+$"),Z=!1;function _(d,$,t){if($=$||{},t=new h.ZP(t),$.defaultCountry&&!t.hasCountry($.defaultCountry)){if($.v2)throw new y("INVALID_COUNTRY");throw new Error("Unknown country: ".concat($.defaultCountry))}var e=function(d,$,t){if(d&&0===d.indexOf("tel:"))return(0,S.m)(d);var e=function(d,$,t){if(!d)return;if(d.length>j){if(t)throw new y("TOO_LONG");return}if(!1===$)return d;var e=d.search(B);if(e<0)return;return d.slice(e).replace(k,"")}(d,t,$);if(!e)return{};if(!(0,p.ZP)(e))return(0,p.ch)(e)?{error:"TOO_SHORT"}:{};var n=function(d){var $=d.search(g);if($<0)return{};for(var t=d.slice(0,$),e=d.match(g),n=1;nn.sJ){if($.v2)throw new y("TOO_LONG");return{}}if($.v2){var s=new I.Z(c,l,t.metadata);return u&&(s.country=u),f&&(s.carrierCode=f),o&&(s.ext=o),s}var m=!!($.extended?t.hasSelectedNumberingPlan():u)&&(0,w.Z)(l,t.nationalNumberPattern());return $.extended?{country:u,countryCallingCode:c,carrierCode:f,valid:m,possible:!!m||!(!0!==$.extended||!t.possibleLengths()||!(0,E.D)(l,t)),phone:l,ext:o}:m?function(d,$,t){var e={country:d,phone:$};t&&(e.ext=t);return e}(u,l,o):{}}function U(d,$){var t=Object.keys(d);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(d);$&&(e=e.filter((function($){return Object.getOwnPropertyDescriptor(d,$).enumerable}))),t.push.apply(t,e)}return t}function K(d){for(var $=1;$d.length)&&($=d.length);for(var t=0,e=new Array($);t<$;t++)e[t]=d[t];return e}function Q(){var d=function(d){var $,t,e,n=J(Array.prototype.slice.call(d),4),r=n[0],o=n[1],a=n[2],i=n[3];if("string"!=typeof r)throw new TypeError("A text for parsing must be a string.");$=r;if(o&&"string"!=typeof o){if(!q(o))throw new Error("Invalid second argument: ".concat(o));a?(t=o,e=a):e=o}else i?(t=a,e=i):(t=void 0,e=a),o&&(t=function(d){for(var $=1;${t.d($,{Z:()=>n});const e={version:4,country_calling_codes:{1:["US","AG","AI","AS","BB","BM","BS","CA","DM","DO","GD","GU","JM","KN","KY","LC","MP","MS","PR","SX","TC","TT","VC","VG","VI"],7:["RU","KZ"],20:["EG"],27:["ZA"],30:["GR"],31:["NL"],32:["BE"],33:["FR"],34:["ES"],36:["HU"],39:["IT","VA"],40:["RO"],41:["CH"],43:["AT"],44:["GB","GG","IM","JE"],45:["DK"],46:["SE"],47:["NO","SJ"],48:["PL"],49:["DE"],51:["PE"],52:["MX"],53:["CU"],54:["AR"],55:["BR"],56:["CL"],57:["CO"],58:["VE"],60:["MY"],61:["AU","CC","CX"],62:["ID"],63:["PH"],64:["NZ"],65:["SG"],66:["TH"],81:["JP"],82:["KR"],84:["VN"],86:["CN"],90:["TR"],91:["IN"],92:["PK"],93:["AF"],94:["LK"],95:["MM"],98:["IR"],211:["SS"],212:["MA","EH"],213:["DZ"],216:["TN"],218:["LY"],220:["GM"],221:["SN"],222:["MR"],223:["ML"],224:["GN"],225:["CI"],226:["BF"],227:["NE"],228:["TG"],229:["BJ"],230:["MU"],231:["LR"],232:["SL"],233:["GH"],234:["NG"],235:["TD"],236:["CF"],237:["CM"],238:["CV"],239:["ST"],240:["GQ"],241:["GA"],242:["CG"],243:["CD"],244:["AO"],245:["GW"],246:["IO"],247:["AC"],248:["SC"],249:["SD"],250:["RW"],251:["ET"],252:["SO"],253:["DJ"],254:["KE"],255:["TZ"],256:["UG"],257:["BI"],258:["MZ"],260:["ZM"],261:["MG"],262:["RE","YT"],263:["ZW"],264:["NA"],265:["MW"],266:["LS"],267:["BW"],268:["SZ"],269:["KM"],290:["SH","TA"],291:["ER"],297:["AW"],298:["FO"],299:["GL"],350:["GI"],351:["PT"],352:["LU"],353:["IE"],354:["IS"],355:["AL"],356:["MT"],357:["CY"],358:["FI","AX"],359:["BG"],370:["LT"],371:["LV"],372:["EE"],373:["MD"],374:["AM"],375:["BY"],376:["AD"],377:["MC"],378:["SM"],380:["UA"],381:["RS"],382:["ME"],383:["XK"],385:["HR"],386:["SI"],387:["BA"],389:["MK"],420:["CZ"],421:["SK"],423:["LI"],500:["FK"],501:["BZ"],502:["GT"],503:["SV"],504:["HN"],505:["NI"],506:["CR"],507:["PA"],508:["PM"],509:["HT"],590:["GP","BL","MF"],591:["BO"],592:["GY"],593:["EC"],594:["GF"],595:["PY"],596:["MQ"],597:["SR"],598:["UY"],599:["CW","BQ"],670:["TL"],672:["NF"],673:["BN"],674:["NR"],675:["PG"],676:["TO"],677:["SB"],678:["VU"],679:["FJ"],680:["PW"],681:["WF"],682:["CK"],683:["NU"],685:["WS"],686:["KI"],687:["NC"],688:["TV"],689:["PF"],690:["TK"],691:["FM"],692:["MH"],850:["KP"],852:["HK"],853:["MO"],855:["KH"],856:["LA"],880:["BD"],886:["TW"],960:["MV"],961:["LB"],962:["JO"],963:["SY"],964:["IQ"],965:["KW"],966:["SA"],967:["YE"],968:["OM"],970:["PS"],971:["AE"],972:["IL"],973:["BH"],974:["QA"],975:["BT"],976:["MN"],977:["NP"],992:["TJ"],993:["TM"],994:["AZ"],995:["GE"],996:["KG"],998:["UZ"]},countries:{AC:["247","00","(?:[01589]\\d|[46])\\d{4}",[5,6],0,0,0,0,0,0,0,[0,["4\\d{4}",[5]]]],AD:["376","00","(?:1|6\\d)\\d{7}|[135-9]\\d{5}",[6,8,9],[["(\\d{3})(\\d{3})","$1 $2",["[135-9]"]],["(\\d{4})(\\d{4})","$1 $2",["1"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["6"]]],0,0,0,0,0,0,[0,["690\\d{6}|[356]\\d{5}",[6,9]]]],AE:["971","00","(?:[4-7]\\d|9[0-689])\\d{7}|800\\d{2,9}|[2-4679]\\d{7}",[5,6,7,8,9,10,11,12],[["(\\d{3})(\\d{2,9})","$1 $2",["60|8"]],["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[236]|[479][2-8]"],"0$1"],["(\\d{3})(\\d)(\\d{5})","$1 $2 $3",["[479]"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["5"],"0$1"]],"0",0,0,0,0,0,[0,["5[024-68]\\d{7}",[9]]]],AF:["93","00","[2-7]\\d{8}",[9],[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[2-7]"],"0$1"]],"0",0,0,0,0,0,[0,["7\\d{8}"]]],AG:["1","011","(?:268|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([457]\\d{6})$","268$1",0,"268",[0,["268(?:464|7(?:1[3-9]|[28]\\d|3[0246]|64|7[0-689]))\\d{4}"]]],AI:["1","011","(?:264|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([2457]\\d{6})$","264$1",0,"264",[0,["264(?:235|4(?:69|76)|5(?:3[6-9]|8[1-4])|7(?:29|72))\\d{4}"]]],AL:["355","00","(?:700\\d\\d|900)\\d{3}|8\\d{5,7}|(?:[2-5]|6\\d)\\d{7}",[6,7,8,9],[["(\\d{3})(\\d{3,4})","$1 $2",["80|9"],"0$1"],["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["4[2-6]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[2358][2-5]|4"],"0$1"],["(\\d{3})(\\d{5})","$1 $2",["[23578]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["6"],"0$1"]],"0",0,0,0,0,0,[0,["6(?:[78][2-9]|9\\d)\\d{6}",[9]]]],AM:["374","00","(?:[1-489]\\d|55|60|77)\\d{6}",[8],[["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["[89]0"],"0 $1"],["(\\d{3})(\\d{5})","$1 $2",["2|3[12]"],"(0$1)"],["(\\d{2})(\\d{6})","$1 $2",["1|47"],"(0$1)"],["(\\d{2})(\\d{6})","$1 $2",["[3-9]"],"0$1"]],"0",0,0,0,0,0,[0,["(?:33|4[1349]|55|77|88|9[13-9])\\d{6}"]]],AO:["244","00","[29]\\d{8}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[29]"]]],0,0,0,0,0,0,[0,["9[1-59]\\d{7}"]]],AR:["54","00","(?:11|[89]\\d\\d)\\d{8}|[2368]\\d{9}",[10,11],[["(\\d{4})(\\d{2})(\\d{4})","$1 $2-$3",["2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])","2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)","2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]","2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]"],"0$1",1],["(\\d{2})(\\d{4})(\\d{4})","$1 $2-$3",["1"],"0$1",1],["(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["[68]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2-$3",["[23]"],"0$1",1],["(\\d)(\\d{4})(\\d{2})(\\d{4})","$2 15-$3-$4",["9(?:2[2-469]|3[3-578])","9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))","9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)","9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]","9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]"],"0$1",0,"$1 $2 $3-$4"],["(\\d)(\\d{2})(\\d{4})(\\d{4})","$2 15-$3-$4",["91"],"0$1",0,"$1 $2 $3-$4"],["(\\d{3})(\\d{3})(\\d{5})","$1-$2-$3",["8"],"0$1"],["(\\d)(\\d{3})(\\d{3})(\\d{4})","$2 15-$3-$4",["9"],"0$1",0,"$1 $2 $3-$4"]],"0",0,"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?","9$1",0,0,[0,["93(?:7(?:1[15]|81)[46]|8(?:(?:21|4[16]|69|9[12])[46]|88[013-9]))\\d{5}|9(?:29(?:54|66)|3(?:7(?:55|77)|865))[2-8]\\d{5}|9(?:2(?:2(?:2[59]|44|52)|3(?:26|44)|473|9(?:[07]2|2[26]|34|46))|3327)[45]\\d{5}|9(?:2(?:284|3(?:02|23)|657|920)|3(?:4(?:8[27]|92)|541|878))[2-7]\\d{5}|9(?:2(?:(?:26|62)2|320|477|9(?:42|83))|3(?:329|4(?:[47]6|62|89)|564))[2-6]\\d{5}|(?:675\\d|9(?:11[1-8]\\d|2(?:2(?:0[45]|1[2-6]|3[3-6])|3(?:[06]4|7[45])|494|6(?:04|1[2-8]|[36][45]|4[3-6])|80[45]|9(?:[17][4-6]|[48][45]|9[3-6]))|3(?:364|4(?:1[2-7]|[235][4-6]|84)|5(?:1[2-9]|[38][4-6])|6(?:2[45]|44)|7[069][45]|8(?:0[45]|[17][2-6]|3[4-6]|[58][3-6]))))\\d{6}|92(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|475|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\d{5}|9(?:2(?:2(?:57|81)|3(?:24|46|92)|9(?:01|23|64))|3(?:4(?:42|71)|5(?:25|37|4[347]|71)|7(?:18|5[17])))[3-6]\\d{5}|9(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|25|[45][25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[03-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[145]|4[13]|5[468]|7[2-5]|8[26])|8(?:2[5-7]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\d{5}"]]],AS:["1","011","(?:[58]\\d\\d|684|900)\\d{7}",[10],0,"1",0,"1|([267]\\d{6})$","684$1",0,"684",[0,["684(?:2(?:48|5[2468]|7[26])|7(?:3[13]|70|82))\\d{4}"]]],AT:["43","00","1\\d{3,12}|2\\d{6,12}|43(?:(?:0\\d|5[02-9])\\d{3,9}|2\\d{4,5}|[3467]\\d{4}|8\\d{4,6}|9\\d{4,7})|5\\d{4,12}|8\\d{7,12}|9\\d{8,12}|(?:[367]\\d|4[0-24-9])\\d{4,11}",[4,5,6,7,8,9,10,11,12,13],[["(\\d)(\\d{3,12})","$1 $2",["1(?:11|[2-9])"],"0$1"],["(\\d{3})(\\d{2})","$1 $2",["517"],"0$1"],["(\\d{2})(\\d{3,5})","$1 $2",["5[079]"],"0$1"],["(\\d{3})(\\d{3,10})","$1 $2",["(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]"],"0$1"],["(\\d{4})(\\d{3,9})","$1 $2",["[2-467]|5[2-6]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["5"],"0$1"],["(\\d{2})(\\d{4})(\\d{4,7})","$1 $2 $3",["5"],"0$1"]],"0",0,0,0,0,0,[0,["6(?:5[0-3579]|6[013-9]|[7-9]\\d)\\d{4,10}",[7,8,9,10,11,12,13]]]],AU:["61","001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011","1(?:[0-79]\\d{7}(?:\\d(?:\\d{2})?)?|8[0-24-9]\\d{7})|[2-478]\\d{8}|1\\d{4,7}",[5,6,7,8,9,10,12],[["(\\d{2})(\\d{3,4})","$1 $2",["16"],"0$1"],["(\\d{2})(\\d{3})(\\d{2,4})","$1 $2 $3",["16"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["14|4"],"0$1"],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["[2378]"],"(0$1)"],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1(?:30|[89])"]]],"0",0,"0|(183[12])",0,0,0,[0,["4(?:83[0-389]|93[0-6])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\d{6}",[9]]],"0011"],AW:["297","00","(?:[25-79]\\d\\d|800)\\d{4}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[25-9]"]]],0,0,0,0,0,0,[0,["(?:290|5[69]\\d|6(?:[03]0|22|4[0-2]|[69]\\d)|7(?:[34]\\d|7[07])|9(?:6[45]|9[4-8]))\\d{4}"]]],AX:["358","00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))","2\\d{4,9}|35\\d{4,5}|(?:60\\d\\d|800)\\d{4,6}|7\\d{5,11}|(?:[14]\\d|3[0-46-9]|50)\\d{4,8}",[5,6,7,8,9,10,11,12],0,"0",0,0,0,0,"18",[0,["4946\\d{2,6}|(?:4[0-8]|50)\\d{4,8}",[6,7,8,9,10]]],"00"],AZ:["994","00","365\\d{6}|(?:[124579]\\d|60|88)\\d{7}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["90"],"0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[28]|2|365|46","1[28]|2|365[45]|46","1[28]|2|365(?:4|5[02])|46"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[13-9]"],"0$1"]],"0",0,0,0,0,0,[0,["36554\\d{4}|(?:[16]0|4[04]|5[015]|7[07]|99)\\d{7}"]]],BA:["387","00","6\\d{8}|(?:[35689]\\d|49|70)\\d{6}",[8,9],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["6[1-3]|[7-9]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2-$3",["[3-5]|6[56]"],"0$1"],["(\\d{2})(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4",["6"],"0$1"]],"0",0,0,0,0,0,[0,["6040\\d{5}|6(?:03|[1-356]|44|7\\d)\\d{6}"]]],BB:["1","011","(?:246|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([2-9]\\d{6})$","246$1",0,"246",[0,["246(?:(?:2(?:[3568]\\d|4[0-57-9])|3(?:5[2-9]|6[0-6])|4(?:46|5\\d)|69[5-7]|8(?:[2-5]\\d|83))\\d|52(?:1[147]|20))\\d{3}"]]],BD:["880","00","[1-469]\\d{9}|8[0-79]\\d{7,8}|[2-79]\\d{8}|[2-9]\\d{7}|[3-9]\\d{6}|[57-9]\\d{5}",[6,7,8,9,10],[["(\\d{2})(\\d{4,6})","$1-$2",["31[5-8]|[459]1"],"0$1"],["(\\d{3})(\\d{3,7})","$1-$2",["3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:28|4[14]|5)|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]"],"0$1"],["(\\d{4})(\\d{3,6})","$1-$2",["[13-9]|22"],"0$1"],["(\\d)(\\d{7,8})","$1-$2",["2"],"0$1"]],"0",0,0,0,0,0,[0,["(?:1[13-9]\\d|644)\\d{7}|(?:3[78]|44|66)[02-9]\\d{7}",[10]]]],BE:["32","00","4\\d{8}|[1-9]\\d{7}",[8,9],[["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["(?:80|9)0"],"0$1"],["(\\d)(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[239]|4[23]"],"0$1"],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[15-8]"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["4"],"0$1"]],"0",0,0,0,0,0,[0,["4[5-9]\\d{7}",[9]]]],BF:["226","00","[025-7]\\d{7}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[025-7]"]]],0,0,0,0,0,0,[0,["(?:0[1-35-7]|5[1-8]|[67]\\d)\\d{6}"]]],BG:["359","00","00800\\d{7}|[2-7]\\d{6,7}|[89]\\d{6,8}|2\\d{5}",[6,7,8,9,12],[["(\\d)(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4",["2"],"0$1"],["(\\d{3})(\\d{4})","$1 $2",["43[1-6]|70[1-9]"],"0$1"],["(\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["2"],"0$1"],["(\\d{2})(\\d{3})(\\d{2,3})","$1 $2 $3",["[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]"],"0$1"],["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["(?:70|8)0"],"0$1"],["(\\d{3})(\\d{3})(\\d{2})","$1 $2 $3",["43[1-7]|7"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[48]|9[08]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["9"],"0$1"]],"0",0,0,0,0,0,[0,["(?:43[07-9]|99[69]\\d)\\d{5}|(?:8[7-9]|98)\\d{7}",[8,9]]]],BH:["973","00","[136-9]\\d{7}",[8],[["(\\d{4})(\\d{4})","$1 $2",["[13679]|8[047]"]]],0,0,0,0,0,0,[0,["(?:3(?:[1-79]\\d|8[0-47-9])\\d|6(?:3(?:00|33|6[16])|6(?:3[03-9]|[69]\\d|7[0-6])))\\d{4}"]]],BI:["257","00","(?:[267]\\d|31)\\d{6}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2367]"]]],0,0,0,0,0,0,[0,["(?:29|[67][125-9])\\d{6}"]]],BJ:["229","00","[24-689]\\d{7}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[24-689]"]]],0,0,0,0,0,0,[0,["(?:4[0-2]|[56]\\d|9[013-9])\\d{6}"]]],BL:["590","00","(?:590|(?:69|80)\\d|976)\\d{6}",[9],0,"0",0,0,0,0,0,[0,["69(?:0\\d\\d|1(?:2[2-9]|3[0-5]))\\d{4}"]]],BM:["1","011","(?:441|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([2-9]\\d{6})$","441$1",0,"441",[0,["441(?:[2378]\\d|5[0-39]|92)\\d{5}"]]],BN:["673","00","[2-578]\\d{6}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[2-578]"]]],0,0,0,0,0,0,[0,["(?:22[89]|[78]\\d\\d)\\d{4}"]]],BO:["591","00(?:1\\d)?","(?:[2-467]\\d\\d|8001)\\d{5}",[8,9],[["(\\d)(\\d{7})","$1 $2",["[23]|4[46]"]],["(\\d{8})","$1",["[67]"]],["(\\d{3})(\\d{2})(\\d{4})","$1 $2 $3",["8"]]],"0",0,"0(1\\d)?",0,0,0,[0,["[67]\\d{7}",[8]]]],BQ:["599","00","(?:[34]1|7\\d)\\d{5}",[7],0,0,0,0,0,0,"[347]",[0,["(?:31(?:8[14-8]|9[14578])|416[14-9]|7(?:0[01]|7[07]|8\\d|9[056])\\d)\\d{3}"]]],BR:["55","00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)","(?:[1-46-9]\\d\\d|5(?:[0-46-9]\\d|5[0-46-9]))\\d{8}|[1-9]\\d{9}|[3589]\\d{8}|[34]\\d{7}",[8,9,10,11],[["(\\d{4})(\\d{4})","$1-$2",["300|4(?:0[02]|37)","4(?:02|37)0|[34]00"]],["(\\d{3})(\\d{2,3})(\\d{4})","$1 $2 $3",["(?:[358]|90)0"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1 $2-$3",["(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]"],"($1)"],["(\\d{2})(\\d{5})(\\d{4})","$1 $2-$3",["[16][1-9]|[2-57-9]"],"($1)"]],"0",0,"(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\d{10,11}))?","$2",0,0,[0,["(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])(?:7|9\\d)\\d{7}",[10,11]]]],BS:["1","011","(?:242|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([3-8]\\d{6})$","242$1",0,"242",[0,["242(?:3(?:5[79]|7[56]|95)|4(?:[23][1-9]|4[1-35-9]|5[1-8]|6[2-8]|7\\d|81)|5(?:2[45]|3[35]|44|5[1-46-9]|65|77)|6[34]6|7(?:27|38)|8(?:0[1-9]|1[02-9]|2\\d|[89]9))\\d{4}"]]],BT:["975","00","[17]\\d{7}|[2-8]\\d{6}",[7,8],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[2-68]|7[246]"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[67]|7"]]],0,0,0,0,0,0,[0,["(?:1[67]|77)\\d{6}",[8]]]],BW:["267","00","(?:0800|(?:[37]|800)\\d)\\d{6}|(?:[2-6]\\d|90)\\d{5}",[7,8,10],[["(\\d{2})(\\d{5})","$1 $2",["90"]],["(\\d{3})(\\d{4})","$1 $2",["[24-6]|3[15-79]"]],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[37]"]],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["0"]],["(\\d{3})(\\d{4})(\\d{3})","$1 $2 $3",["8"]]],0,0,0,0,0,0,[0,["(?:321|7(?:[1-7]\\d|8[0-4]))\\d{5}",[8]]]],BY:["375","810","(?:[12]\\d|33|44|902)\\d{7}|8(?:0[0-79]\\d{5,7}|[1-7]\\d{9})|8(?:1[0-489]|[5-79]\\d)\\d{7}|8[1-79]\\d{6,7}|8[0-79]\\d{5}|8\\d{5}",[6,7,8,9,10,11],[["(\\d{3})(\\d{3})","$1 $2",["800"],"8 $1"],["(\\d{3})(\\d{2})(\\d{2,4})","$1 $2 $3",["800"],"8 $1"],["(\\d{4})(\\d{2})(\\d{3})","$1 $2-$3",["1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])","1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])"],"8 0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2-$3-$4",["1(?:[56]|7[467])|2[1-3]"],"8 0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2-$3-$4",["[1-4]"],"8 0$1"],["(\\d{3})(\\d{3,4})(\\d{4})","$1 $2 $3",["[89]"],"8 $1"]],"8",0,"0|80?",0,0,0,[0,["(?:2(?:5[5-79]|9[1-9])|(?:33|44)\\d)\\d{6}",[9]]],"8~10"],BZ:["501","00","(?:0800\\d|[2-8])\\d{6}",[7,11],[["(\\d{3})(\\d{4})","$1-$2",["[2-8]"]],["(\\d)(\\d{3})(\\d{4})(\\d{3})","$1-$2-$3-$4",["0"]]],0,0,0,0,0,0,[0,["6[0-35-7]\\d{5}",[7]]]],CA:["1","011","(?:[2-8]\\d|90)\\d{8}|3\\d{6}",[7,10],0,"1",0,0,0,0,0,[0,["(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|3[178]|50|68|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\d{6}",[10]]]],CC:["61","001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011","1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}",[6,7,8,9,10,12],0,"0",0,"0|([59]\\d{7})$","8$1",0,0,[0,["4(?:83[0-389]|93[0-6])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\d{6}",[9]]],"0011"],CD:["243","00","[189]\\d{8}|[1-68]\\d{6}",[7,9],[["(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["88"],"0$1"],["(\\d{2})(\\d{5})","$1 $2",["[1-6]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["1"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[89]"],"0$1"]],"0",0,0,0,0,0,[0,["88\\d{5}|(?:8[0-59]|9[017-9])\\d{7}"]]],CF:["236","00","(?:[27]\\d{3}|8776)\\d{4}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[278]"]]],0,0,0,0,0,0,[0,["7[02457]\\d{6}"]]],CG:["242","00","222\\d{6}|(?:0\\d|80)\\d{7}",[9],[["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["8"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[02]"]]],0,0,0,0,0,0,[0,["026(?:1[0-5]|6[6-9])\\d{4}|0(?:[14-6]\\d\\d|2(?:40|5[5-8]|6[07-9]))\\d{5}"]]],CH:["41","00","8\\d{11}|[2-9]\\d{8}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8[047]|90"],"0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-79]|81"],"0$1"],["(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["8"],"0$1"]],"0",0,0,0,0,0,[0,["7[35-9]\\d{7}"]]],CI:["225","00","[02]\\d{9}",[10],[["(\\d{2})(\\d{2})(\\d)(\\d{5})","$1 $2 $3 $4",["2"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3 $4",["0"]]],0,0,0,0,0,0,[0,["0[157]\\d{8}"]]],CK:["682","00","[2-578]\\d{4}",[5],[["(\\d{2})(\\d{3})","$1 $2",["[2-578]"]]],0,0,0,0,0,0,[0,["[578]\\d{4}"]]],CL:["56","(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0","12300\\d{6}|6\\d{9,10}|[2-9]\\d{8}",[9,10,11],[["(\\d{5})(\\d{4})","$1 $2",["219","2196"],"($1)"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["44"]],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["2[1-36]"],"($1)"],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["9[2-9]"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])"],"($1)"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["60|8"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]],["(\\d{3})(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3 $4",["60"]]],0,0,0,0,0,0,[0,["2(?:1982[0-6]|3314[05-9])\\d{3}|(?:2(?:1(?:160|962)|3(?:2\\d\\d|3(?:[0346]\\d|1[0-35-9]|2[1-9]|5[0-24-9]|7[0-3])|600)|646[59])|80[1-9]\\d\\d|9(?:3(?:[0-57-9]\\d\\d|6(?:0[02-9]|[1-9]\\d))|6(?:[0-8]\\d\\d|9(?:[02-79]\\d|1[05-9]))|7[1-9]\\d\\d|9(?:[03-9]\\d\\d|1(?:[0235-9]\\d|4[0-24-9])|2(?:[0-79]\\d|8[0-46-9]))))\\d{4}|(?:22|3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|8[1-9]|9[2458])\\d{7}",[9]]]],CM:["237","00","[26]\\d{8}|88\\d{6,7}",[8,9],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["88"]],["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["[26]|88"]]],0,0,0,0,0,0,[0,["(?:24[23]|6[25-9]\\d)\\d{6}",[9]]]],CN:["86","00|1(?:[12]\\d|79)\\d\\d00","1[127]\\d{8,9}|2\\d{9}(?:\\d{2})?|[12]\\d{6,7}|86\\d{6}|(?:1[03-689]\\d|6)\\d{7,9}|(?:[3-579]\\d|8[0-57-9])\\d{6,9}",[7,8,9,10,11,12],[["(\\d{2})(\\d{5,6})","$1 $2",["(?:10|2[0-57-9])[19]","(?:10|2[0-57-9])(?:10|9[56])","10(?:10|9[56])|2[0-57-9](?:100|9[56])"],"0$1"],["(\\d{3})(\\d{5,6})","$1 $2",["3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]","(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))[19]","85[23](?:10|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:10|9[56])","85[23](?:100|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:100|9[56])"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["(?:4|80)0"]],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["10|2(?:[02-57-9]|1[1-9])","10|2(?:[02-57-9]|1[1-9])","10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])"],"0$1",1],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]"],"0$1",1],["(\\d{3})(\\d{7,8})","$1 $2",["9"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["80"],"0$1",1],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["[3-578]"],"0$1",1],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["1[3-9]"]],["(\\d{2})(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3 $4",["[12]"],"0$1",1]],"0",0,"0|(1(?:[12]\\d|79)\\d\\d)",0,0,0,[0,["1740[0-5]\\d{6}|1(?:[38]\\d|4[57]|[59][0-35-9]|6[25-7]|7[0-35-8])\\d{8}",[11]]],"00"],CO:["57","00(?:4(?:[14]4|56)|[579])","(?:60\\d\\d|9101)\\d{6}|(?:1\\d|3)\\d{9}",[10,11],[["(\\d{3})(\\d{7})","$1 $2",["6"],"($1)"],["(\\d{3})(\\d{7})","$1 $2",["3[0-357]|91"]],["(\\d)(\\d{3})(\\d{7})","$1-$2-$3",["1"],"0$1",0,"$1 $2 $3"]],"0",0,"0(4(?:[14]4|56)|[579])?",0,0,0,[0,["3333(?:0(?:0\\d|1[0-5])|[4-9]\\d\\d)\\d{3}|(?:3(?:24[1-9]|3(?:00|3[0-24-9]))|9101)\\d{6}|3(?:0[0-5]|1\\d|2[0-3]|5[01]|70)\\d{7}",[10]]]],CR:["506","00","(?:8\\d|90)\\d{8}|(?:[24-8]\\d{3}|3005)\\d{4}",[8,10],[["(\\d{4})(\\d{4})","$1 $2",["[2-7]|8[3-9]"]],["(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["[89]"]]],0,0,"(19(?:0[0-2468]|1[09]|20|66|77|99))",0,0,0,[0,["(?:3005\\d|6500[01])\\d{3}|(?:5[07]|6[0-4]|7[0-3]|8[3-9])\\d{6}",[8]]]],CU:["53","119","[27]\\d{6,7}|[34]\\d{5,7}|(?:5|8\\d\\d)\\d{7}",[6,7,8,10],[["(\\d{2})(\\d{4,6})","$1 $2",["2[1-4]|[34]"],"(0$1)"],["(\\d)(\\d{6,7})","$1 $2",["7"],"(0$1)"],["(\\d)(\\d{7})","$1 $2",["5"],"0$1"],["(\\d{3})(\\d{7})","$1 $2",["8"],"0$1"]],"0",0,0,0,0,0,[0,["5\\d{7}",[8]]]],CV:["238","0","(?:[2-59]\\d\\d|800)\\d{4}",[7],[["(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["[2-589]"]]],0,0,0,0,0,0,[0,["(?:36|5[1-389]|9\\d)\\d{5}"]]],CW:["599","00","(?:[34]1|60|(?:7|9\\d)\\d)\\d{5}",[7,8],[["(\\d{3})(\\d{4})","$1 $2",["[3467]"]],["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["9[4-8]"]]],0,0,0,0,0,"[69]",[0,["953[01]\\d{4}|9(?:5[12467]|6[5-9])\\d{5}"]]],CX:["61","001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011","1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}",[6,7,8,9,10,12],0,"0",0,"0|([59]\\d{7})$","8$1",0,0,[0,["4(?:83[0-389]|93[0-6])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\d{6}",[9]]],"0011"],CY:["357","00","(?:[279]\\d|[58]0)\\d{6}",[8],[["(\\d{2})(\\d{6})","$1 $2",["[257-9]"]]],0,0,0,0,0,0,[0,["9(?:10|[4-79]\\d)\\d{5}"]]],CZ:["420","00","(?:[2-578]\\d|60)\\d{7}|9\\d{8,11}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[2-8]|9[015-7]"]],["(\\d{2})(\\d{3})(\\d{3})(\\d{2})","$1 $2 $3 $4",["96"]],["(\\d{2})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["9"]],["(\\d{3})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["9"]]],0,0,0,0,0,0,[0,["(?:60[1-8]|7(?:0[2-5]|[2379]\\d))\\d{6}"]]],DE:["49","00","[2579]\\d{5,14}|49(?:[34]0|69|8\\d)\\d\\d?|49(?:37|49|60|7[089]|9\\d)\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\d{1,8}|(?:1|[368]\\d|4[0-8])\\d{3,13}|49(?:[015]\\d|2[13]|31|[46][1-8])\\d{1,9}",[4,5,6,7,8,9,10,11,12,13,14,15],[["(\\d{2})(\\d{3,13})","$1 $2",["3[02]|40|[68]9"],"0$1"],["(\\d{3})(\\d{3,12})","$1 $2",["2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1","2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1"],"0$1"],["(\\d{4})(\\d{2,11})","$1 $2",["[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]","[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]"],"0$1"],["(\\d{3})(\\d{4})","$1 $2",["138"],"0$1"],["(\\d{5})(\\d{2,10})","$1 $2",["3"],"0$1"],["(\\d{3})(\\d{5,11})","$1 $2",["181"],"0$1"],["(\\d{3})(\\d)(\\d{4,10})","$1 $2 $3",["1(?:3|80)|9"],"0$1"],["(\\d{3})(\\d{7,8})","$1 $2",["1[67]"],"0$1"],["(\\d{3})(\\d{7,12})","$1 $2",["8"],"0$1"],["(\\d{5})(\\d{6})","$1 $2",["185","1850","18500"],"0$1"],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["7"],"0$1"],["(\\d{4})(\\d{7})","$1 $2",["18[68]"],"0$1"],["(\\d{5})(\\d{6})","$1 $2",["15[0568]"],"0$1"],["(\\d{4})(\\d{7})","$1 $2",["15[1279]"],"0$1"],["(\\d{3})(\\d{8})","$1 $2",["18"],"0$1"],["(\\d{3})(\\d{2})(\\d{7,8})","$1 $2 $3",["1(?:6[023]|7)"],"0$1"],["(\\d{4})(\\d{2})(\\d{7})","$1 $2 $3",["15[279]"],"0$1"],["(\\d{3})(\\d{2})(\\d{8})","$1 $2 $3",["15"],"0$1"]],"0",0,0,0,0,0,[0,["15[0-25-9]\\d{8}|1(?:6[023]|7\\d)\\d{7,8}",[10,11]]]],DJ:["253","00","(?:2\\d|77)\\d{6}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[27]"]]],0,0,0,0,0,0,[0,["77\\d{6}"]]],DK:["45","00","[2-9]\\d{7}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-9]"]]],0,0,0,0,0,0,[0,["(?:[2-7]\\d|8[126-9]|9[1-46-9])\\d{6}"]]],DM:["1","011","(?:[58]\\d\\d|767|900)\\d{7}",[10],0,"1",0,"1|([2-7]\\d{6})$","767$1",0,"767",[0,["767(?:2(?:[2-4689]5|7[5-7])|31[5-7]|61[1-8]|70[1-6])\\d{4}"]]],DO:["1","011","(?:[58]\\d\\d|900)\\d{7}",[10],0,"1",0,0,0,0,"8001|8[024]9",[0,["8[024]9[2-9]\\d{6}"]]],DZ:["213","00","(?:[1-4]|[5-79]\\d|80)\\d{7}",[8,9],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[1-4]"],"0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["9"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-8]"],"0$1"]],"0",0,0,0,0,0,[0,["(?:5(?:4[0-29]|5\\d|6[0-2])|6(?:[569]\\d|7[0-6])|7[7-9]\\d)\\d{6}",[9]]]],EC:["593","00","1\\d{9,10}|(?:[2-7]|9\\d)\\d{7}",[8,9,10,11],[["(\\d)(\\d{3})(\\d{4})","$1 $2-$3",["[2-7]"],"(0$1)",0,"$1-$2-$3"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["9"],"0$1"],["(\\d{4})(\\d{3})(\\d{3,4})","$1 $2 $3",["1"]]],"0",0,0,0,0,0,[0,["964[0-2]\\d{5}|9(?:39|[57][89]|6[0-36-9]|[89]\\d)\\d{6}",[9]]]],EE:["372","00","8\\d{9}|[4578]\\d{7}|(?:[3-8]\\d|90)\\d{5}",[7,8,10],[["(\\d{3})(\\d{4})","$1 $2",["[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88","[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88"]],["(\\d{4})(\\d{3,4})","$1 $2",["[45]|8(?:00|[1-49])","[45]|8(?:00[1-9]|[1-49])"]],["(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["7"]],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["8"]]],0,0,0,0,0,0,[0,["(?:5\\d{5}|8(?:1(?:0(?:000|[3-9]\\d\\d)|(?:1(?:0[236]|1\\d)|(?:2[0-59]|[3-79]\\d)\\d)\\d)|2(?:0(?:000|(?:19|[2-7]\\d)\\d)|(?:(?:[124-6]\\d|3[5-9])\\d|7(?:[3679]\\d|8[13-9])|8(?:[2-6]\\d|7[01]))\\d)|[349]\\d{4}))\\d\\d|5(?:(?:[02]\\d|5[0-478])\\d|1(?:[0-8]\\d|95)|6(?:4[0-4]|5[1-589]))\\d{3}",[7,8]]]],EG:["20","00","[189]\\d{8,9}|[24-6]\\d{8}|[135]\\d{7}",[8,9,10],[["(\\d)(\\d{7,8})","$1 $2",["[23]"],"0$1"],["(\\d{2})(\\d{6,7})","$1 $2",["1[35]|[4-6]|8[2468]|9[235-7]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[189]"],"0$1"]],"0",0,0,0,0,0,[0,["1[0-25]\\d{8}",[10]]]],EH:["212","00","[5-8]\\d{8}",[9],0,"0",0,0,0,0,"528[89]",[0,["(?:6(?:[0-79]\\d|8[0-247-9])|7(?:[017]\\d|2[0-2]|6[0-8]|8[0-3]))\\d{6}"]]],ER:["291","00","[178]\\d{6}",[7],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[178]"],"0$1"]],"0",0,0,0,0,0,[0,["(?:17[1-3]|7\\d\\d)\\d{4}"]]],ES:["34","00","[5-9]\\d{8}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[89]00"]],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-9]"]]],0,0,0,0,0,0,[0,["(?:590[16]00\\d|9(?:6906(?:09|10)|7390\\d\\d))\\d\\d|(?:6\\d|7[1-48])\\d{7}"]]],ET:["251","00","(?:11|[2-579]\\d)\\d{7}",[9],[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[1-579]"],"0$1"]],"0",0,0,0,0,0,[0,["7001\\d{5}|(?:7(?:0[1-9]|1[01]|77|86|99)|9\\d\\d)\\d{6}"]]],FI:["358","00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))","[1-35689]\\d{4}|7\\d{10,11}|(?:[124-7]\\d|3[0-46-9])\\d{8}|[1-9]\\d{5,8}",[5,6,7,8,9,10,11,12],[["(\\d)(\\d{4,9})","$1 $2",["[2568][1-8]|3(?:0[1-9]|[1-9])|9"],"0$1"],["(\\d{3})(\\d{3,7})","$1 $2",["[12]00|[368]|70[07-9]"],"0$1"],["(\\d{2})(\\d{4,8})","$1 $2",["[1245]|7[135]"],"0$1"],["(\\d{2})(\\d{6,10})","$1 $2",["7"],"0$1"]],"0",0,0,0,0,"1[03-79]|[2-9]",[0,["4946\\d{2,6}|(?:4[0-8]|50)\\d{4,8}",[6,7,8,9,10]]],"00"],FJ:["679","0(?:0|52)","45\\d{5}|(?:0800\\d|[235-9])\\d{6}",[7,11],[["(\\d{3})(\\d{4})","$1 $2",["[235-9]|45"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["0"]]],0,0,0,0,0,0,[0,["(?:[279]\\d|45|5[01568]|8[034679])\\d{5}",[7]]],"00"],FK:["500","00","[2-7]\\d{4}",[5],0,0,0,0,0,0,0,[0,["[56]\\d{4}"]]],FM:["691","00","(?:[39]\\d\\d|820)\\d{4}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[389]"]]],0,0,0,0,0,0,[0,["31(?:00[67]|208|309)\\d\\d|(?:3(?:[2357]0[1-9]|602|804|905)|(?:820|9[2-7]\\d)\\d)\\d{3}"]]],FO:["298","00","[2-9]\\d{5}",[6],[["(\\d{6})","$1",["[2-9]"]]],0,0,"(10(?:01|[12]0|88))",0,0,0,[0,["(?:[27][1-9]|5\\d|9[16])\\d{4}"]]],FR:["33","00","[1-9]\\d{8}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"],"0 $1"],["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["[1-79]"],"0$1"]],"0",0,0,0,0,0,[0,["(?:6(?:[0-24-8]\\d|3[0-8]|9[589])|7(?:00|[3-9]\\d))\\d{6}"]]],GA:["241","00","(?:[067]\\d|11)\\d{6}|[2-7]\\d{6}",[7,8],[["(\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-7]"],"0$1"],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["0"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["11|[67]"],"0$1"]],0,0,"0(11\\d{6}|60\\d{6}|61\\d{6}|6[256]\\d{6}|7[467]\\d{6})","$1",0,0,[0,["(?:(?:0[2-7]|7[467])\\d|6(?:0[0-4]|10|[256]\\d))\\d{5}|[2-7]\\d{6}"]]],GB:["44","00","[1-357-9]\\d{9}|[18]\\d{8}|8\\d{6}",[7,9,10],[["(\\d{3})(\\d{4})","$1 $2",["800","8001","80011","800111","8001111"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["845","8454","84546","845464"],"0$1"],["(\\d{3})(\\d{6})","$1 $2",["800"],"0$1"],["(\\d{5})(\\d{4,5})","$1 $2",["1(?:38|5[23]|69|76|94)","1(?:(?:38|69)7|5(?:24|39)|768|946)","1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)"],"0$1"],["(\\d{4})(\\d{5,6})","$1 $2",["1(?:[2-69][02-9]|[78])"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["[25]|7(?:0|6[02-9])","[25]|7(?:0|6(?:[03-9]|2[356]))"],"0$1"],["(\\d{4})(\\d{6})","$1 $2",["7"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[1389]"],"0$1"]],"0",0,0,0,0,0,[0,["7(?:457[0-57-9]|700[01]|911[028])\\d{5}|7(?:[1-3]\\d\\d|4(?:[0-46-9]\\d|5[0-689])|5(?:0[0-8]|[13-9]\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\d|8[02-9]|9[0-689])|8(?:[014-9]\\d|[23][0-8])|9(?:[024-9]\\d|1[02-9]|3[0-689]))\\d{6}",[10]]],0," x"],GD:["1","011","(?:473|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([2-9]\\d{6})$","473$1",0,"473",[0,["473(?:4(?:0[2-79]|1[04-9]|2[0-5]|58)|5(?:2[01]|3[3-8])|901)\\d{4}"]]],GE:["995","00","(?:[3-57]\\d\\d|800)\\d{6}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["70"],"0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["32"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[57]"]],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[348]"],"0$1"]],"0",0,0,0,0,0,[0,["5(?:(?:0555|1(?:[17]77|555))[5-9]|757(?:7[7-9]|8[01]))\\d{3}|5(?:0070|11(?:33|51)|[25]222|3333)[0-4]\\d{3}|5(?:00(?:0\\d|5[05])|11(?:00|[124]\\d|3[01])|5200|75(?:00|[57]5)|8(?:0(?:[01]\\d|2[0-4])|58[89]|8(?:55|88)))\\d{4}|(?:5(?:[14]4|5[0157-9]|68|7[0147-9]|9[1-35-9])|790)\\d{6}"]]],GF:["594","00","(?:[56]94|80\\d|976)\\d{6}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[569]"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"],"0$1"]],"0",0,0,0,0,0,[0,["694(?:[0-249]\\d|3[0-8])\\d{4}"]]],GG:["44","00","(?:1481|[357-9]\\d{3})\\d{6}|8\\d{6}(?:\\d{2})?",[7,9,10],0,"0",0,"0|([25-9]\\d{5})$","1481$1",0,0,[0,["7(?:(?:781|839)\\d|911[17])\\d{5}",[10]]]],GH:["233","00","(?:[235]\\d{3}|800)\\d{5}",[8,9],[["(\\d{3})(\\d{5})","$1 $2",["8"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[235]"],"0$1"]],"0",0,0,0,0,0,[0,["(?:2(?:[0346-9]\\d|5[67])|5(?:[03-7]\\d|9[1-9]))\\d{6}",[9]]]],GI:["350","00","(?:[25]\\d\\d|606)\\d{5}",[8],[["(\\d{3})(\\d{5})","$1 $2",["2"]]],0,0,0,0,0,0,[0,["525(?:0\\d|1[0-4])\\d{3}|(?:5[146-8]\\d|606)\\d{5}"]]],GL:["299","00","(?:19|[2-689]\\d|70)\\d{4}",[6],[["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["19|[2-9]"]]],0,0,0,0,0,0,[0,["[245]\\d{5}"]]],GM:["220","00","[2-9]\\d{6}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[2-9]"]]],0,0,0,0,0,0,[0,["(?:[23679]\\d|5[0-389])\\d{5}"]]],GN:["224","00","722\\d{6}|(?:3|6\\d)\\d{7}",[8,9],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["3"]],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[67]"]]],0,0,0,0,0,0,[0,["6[0-356]\\d{7}",[9]]]],GP:["590","00","(?:590|(?:69|80)\\d|976)\\d{6}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[569]"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"],"0$1"]],"0",0,0,0,0,0,[0,["69(?:0\\d\\d|1(?:2[2-9]|3[0-5]))\\d{4}"]]],GQ:["240","00","222\\d{6}|(?:3\\d|55|[89]0)\\d{7}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[235]"]],["(\\d{3})(\\d{6})","$1 $2",["[89]"]]],0,0,0,0,0,0,[0,["(?:222|55\\d)\\d{6}"]]],GR:["30","00","5005000\\d{3}|8\\d{9,11}|(?:[269]\\d|70)\\d{8}",[10,11,12],[["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["21|7"]],["(\\d{4})(\\d{6})","$1 $2",["2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5"]],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[2689]"]],["(\\d{3})(\\d{3,4})(\\d{5})","$1 $2 $3",["8"]]],0,0,0,0,0,0,[0,["68[57-9]\\d{7}|(?:69|94)\\d{8}",[10]]]],GT:["502","00","(?:1\\d{3}|[2-7])\\d{7}",[8,11],[["(\\d{4})(\\d{4})","$1 $2",["[2-7]"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]]],0,0,0,0,0,0,[0,["[3-5]\\d{7}",[8]]]],GU:["1","011","(?:[58]\\d\\d|671|900)\\d{7}",[10],0,"1",0,"1|([3-9]\\d{6})$","671$1",0,"671",[0,["671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[02-46-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[48])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\d{4}"]]],GW:["245","00","[49]\\d{8}|4\\d{6}",[7,9],[["(\\d{3})(\\d{4})","$1 $2",["40"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[49]"]]],0,0,0,0,0,0,[0,["9(?:5\\d|6[569]|77)\\d{6}",[9]]]],GY:["592","001","9008\\d{3}|(?:[2-467]\\d\\d|862)\\d{4}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[2-46-9]"]]],0,0,0,0,0,0,[0,["(?:6\\d\\d|70[0-35-7])\\d{4}"]]],HK:["852","00(?:30|5[09]|[126-9]?)","8[0-46-9]\\d{6,7}|9\\d{4,7}|(?:[2-7]|9\\d{3})\\d{7}",[5,6,7,8,9,11],[["(\\d{3})(\\d{2,5})","$1 $2",["900","9003"]],["(\\d{4})(\\d{4})","$1 $2",["[2-7]|8[1-4]|9(?:0[1-9]|[1-8])"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8"]],["(\\d{3})(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3 $4",["9"]]],0,0,0,0,0,0,[0,["(?:4(?:44[5-9]|6(?:0[0-7]|1[0-6]|4[0-57-9]|6[0-4]|7[0-8]))|573[0-6]|6(?:26[013-8]|66[0-3])|70(?:7[1-5]|8[0-4])|848[015-9]|9(?:29[013-9]|59[0-4]))\\d{4}|(?:4(?:4[01]|6[2358])|5(?:[1-59][0-46-9]|6[0-4689]|7[0-246-9])|6(?:0[1-9]|[13-59]\\d|[268][0-57-9]|7[0-79])|84[09]|9(?:0[1-9]|1[02-9]|[2358][0-8]|[467]\\d))\\d{5}",[8]]],"00"],HN:["504","00","8\\d{10}|[237-9]\\d{7}",[8,11],[["(\\d{4})(\\d{4})","$1-$2",["[237-9]"]]],0,0,0,0,0,0,[0,["[37-9]\\d{7}",[8]]]],HR:["385","00","(?:[24-69]\\d|3[0-79])\\d{7}|80\\d{5,7}|[1-79]\\d{7}|6\\d{5,6}",[6,7,8,9],[["(\\d{2})(\\d{2})(\\d{2,3})","$1 $2 $3",["6[01]"],"0$1"],["(\\d{3})(\\d{2})(\\d{2,3})","$1 $2 $3",["8"],"0$1"],["(\\d)(\\d{4})(\\d{3})","$1 $2 $3",["1"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[67]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["9"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-5]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8"],"0$1"]],"0",0,0,0,0,0,[0,["98\\d{6,7}|975(?:1\\d|77|9[67])\\d{4}|9(?:0[1-9]|[1259]\\d|7[0679])\\d{6}",[8,9]]]],HT:["509","00","(?:[2-489]\\d|55)\\d{6}",[8],[["(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["[2-589]"]]],0,0,0,0,0,0,[0,["(?:[34]\\d|55)\\d{6}"]]],HU:["36","00","[235-7]\\d{8}|[1-9]\\d{7}",[8,9],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["1"],"(06 $1)"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]"],"(06 $1)"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-9]"],"06 $1"]],"06",0,0,0,0,0,[0,["(?:[257]0|3[01])\\d{7}",[9]]]],ID:["62","00[89]","(?:(?:00[1-9]|8\\d)\\d{4}|[1-36])\\d{6}|00\\d{10}|[1-9]\\d{8,10}|[2-9]\\d{7}",[7,8,9,10,11,12,13],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["15"]],["(\\d{2})(\\d{5,9})","$1 $2",["2[124]|[36]1"],"(0$1)"],["(\\d{3})(\\d{5,7})","$1 $2",["800"],"0$1"],["(\\d{3})(\\d{5,8})","$1 $2",["[2-79]"],"(0$1)"],["(\\d{3})(\\d{3,4})(\\d{3})","$1-$2-$3",["8[1-35-9]"],"0$1"],["(\\d{3})(\\d{6,8})","$1 $2",["1"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["804"],"0$1"],["(\\d{3})(\\d)(\\d{3})(\\d{3})","$1 $2 $3 $4",["80"],"0$1"],["(\\d{3})(\\d{4})(\\d{4,5})","$1-$2-$3",["8"],"0$1"]],"0",0,0,0,0,0,[0,["8[1-35-9]\\d{7,10}",[9,10,11,12]]]],IE:["353","00","(?:1\\d|[2569])\\d{6,8}|4\\d{6,9}|7\\d{8}|8\\d{8,9}",[7,8,9,10],[["(\\d{2})(\\d{5})","$1 $2",["2[24-9]|47|58|6[237-9]|9[35-9]"],"(0$1)"],["(\\d{3})(\\d{5})","$1 $2",["[45]0"],"(0$1)"],["(\\d)(\\d{3,4})(\\d{4})","$1 $2 $3",["1"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2569]|4[1-69]|7[14]"],"(0$1)"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["70"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["81"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[78]"],"0$1"],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1"]],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["4"],"(0$1)"],["(\\d{2})(\\d)(\\d{3})(\\d{4})","$1 $2 $3 $4",["8"],"0$1"]],"0",0,0,0,0,0,[0,["8(?:22|[35-9]\\d)\\d{6}",[9]]]],IL:["972","0(?:0|1[2-9])","1\\d{6}(?:\\d{3,5})?|[57]\\d{8}|[1-489]\\d{7}",[7,8,9,10,11,12],[["(\\d{4})(\\d{3})","$1-$2",["125"]],["(\\d{4})(\\d{2})(\\d{2})","$1-$2-$3",["121"]],["(\\d)(\\d{3})(\\d{4})","$1-$2-$3",["[2-489]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["[57]"],"0$1"],["(\\d{4})(\\d{3})(\\d{3})","$1-$2-$3",["12"]],["(\\d{4})(\\d{6})","$1-$2",["159"]],["(\\d)(\\d{3})(\\d{3})(\\d{3})","$1-$2-$3-$4",["1[7-9]"]],["(\\d{3})(\\d{1,2})(\\d{3})(\\d{4})","$1-$2 $3-$4",["15"]]],"0",0,0,0,0,0,[0,["5(?:(?:[02368]\\d|[19][2-9]|4[1-9])\\d|5(?:01|1[79]|2[2-9]|3[0-3]|4[34]|5[015689]|6[6-8]|7[0-267]|8[7-9]|9[1-9]))\\d{5}",[9]]]],IM:["44","00","1624\\d{6}|(?:[3578]\\d|90)\\d{8}",[10],0,"0",0,"0|([25-8]\\d{5})$","1624$1",0,"74576|(?:16|7[56])24",[0,["76245[06]\\d{4}|7(?:4576|[59]24\\d|624[0-4689])\\d{5}"]]],IN:["91","00","(?:000800|[2-9]\\d\\d)\\d{7}|1\\d{7,12}",[8,9,10,11,12,13],[["(\\d{8})","$1",["5(?:0|2[23]|3[03]|[67]1|88)","5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)","5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)"],0,1],["(\\d{4})(\\d{4,5})","$1 $2",["180","1800"],0,1],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["140"],0,1],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["11|2[02]|33|4[04]|79[1-7]|80[2-46]","11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])","11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])"],"0$1",1],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]","1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]","1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]"],"0$1",1],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807","1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]","1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\d|7(?:1(?:[013-8]\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\d|5[0-367])|70[13-7]))[2-7]"],"0$1",1],["(\\d{5})(\\d{5})","$1 $2",["[6-9]"],"0$1",1],["(\\d{4})(\\d{2,4})(\\d{4})","$1 $2 $3",["1(?:6|8[06])","1(?:6|8[06]0)"],0,1],["(\\d{4})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["18"],0,1]],"0",0,0,0,0,0,[0,["(?:61279|7(?:887[02-9]|9(?:313|79[07-9]))|8(?:079[04-9]|(?:84|91)7[02-8]))\\d{5}|(?:6(?:12|[2-47]1|5[17]|6[13]|80)[0189]|7(?:1(?:2[0189]|9[0-5])|2(?:[14][017-9]|8[0-59])|3(?:2[5-8]|[34][017-9]|9[016-9])|4(?:1[015-9]|[29][89]|39|8[389])|5(?:[15][017-9]|2[04-9]|9[7-9])|6(?:0[0-47]|1[0-257-9]|2[0-4]|3[19]|5[4589])|70[0289]|88[089]|97[02-8])|8(?:0(?:6[67]|7[02-8])|70[017-9]|84[01489]|91[0-289]))\\d{6}|(?:7(?:31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[0189]\\d|7[02-8])\\d{5}|(?:6(?:[09]\\d|1[04679]|2[03689]|3[05-9]|4[0489]|50|6[069]|7[07]|8[7-9])|7(?:0\\d|2[0235-79]|3[05-8]|40|5[0346-8]|6[6-9]|7[1-9]|8[0-79]|9[089])|8(?:0[01589]|1[0-57-9]|2[235-9]|3[03-57-9]|[45]\\d|6[02457-9]|7[1-69]|8[0-25-9]|9[02-9])|9\\d\\d)\\d{7}|(?:6(?:(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|8[124-6])\\d|7(?:[235689]\\d|4[0189]))|7(?:1(?:[013-8]\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-5])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\d|5[0-367])|70[13-7]|881))[0189]\\d{5}",[10]]]],IO:["246","00","3\\d{6}",[7],[["(\\d{3})(\\d{4})","$1 $2",["3"]]],0,0,0,0,0,0,[0,["38\\d{5}"]]],IQ:["964","00","(?:1|7\\d\\d)\\d{7}|[2-6]\\d{7,8}",[8,9,10],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["1"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-6]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"0$1"]],"0",0,0,0,0,0,[0,["7[3-9]\\d{8}",[10]]]],IR:["98","00","[1-9]\\d{9}|(?:[1-8]\\d\\d|9)\\d{3,4}",[4,5,6,7,10],[["(\\d{4,5})","$1",["96"],"0$1"],["(\\d{2})(\\d{4,5})","$1 $2",["(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["9"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["[1-8]"],"0$1"]],"0",0,0,0,0,0,[0,["9(?:(?:0(?:[0-35]\\d|4[4-6])|(?:[13]\\d|2[0-3])\\d)\\d|9(?:[0-46]\\d\\d|5[15]0|8(?:1\\d|88)|9(?:0[0-3]|[19]\\d|21|77|8[7-9])))\\d{5}",[10]]]],IS:["354","00|1(?:0(?:01|[12]0)|100)","(?:38\\d|[4-9])\\d{6}",[7,9],[["(\\d{3})(\\d{4})","$1 $2",["[4-9]"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["3"]]],0,0,0,0,0,0,[0,["(?:38[589]\\d\\d|6(?:1[1-8]|2[0-6]|3[026-9]|4[014679]|5[0159]|6[0-69]|70|8[06-8]|9\\d)|7(?:5[057]|[6-9]\\d)|8(?:2[0-59]|[3-69]\\d|8[238]))\\d{4}"]],"00"],IT:["39","00","0\\d{5,10}|1\\d{8,10}|3(?:[0-8]\\d{7,10}|9\\d{7,8})|(?:55|70)\\d{8}|8\\d{5}(?:\\d{2,4})?",[6,7,8,9,10,11],[["(\\d{2})(\\d{4,6})","$1 $2",["0[26]"]],["(\\d{3})(\\d{3,6})","$1 $2",["0[13-57-9][0159]|8(?:03|4[17]|9[2-5])","0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))"]],["(\\d{4})(\\d{2,6})","$1 $2",["0(?:[13-579][2-46-8]|8[236-8])"]],["(\\d{4})(\\d{4})","$1 $2",["894"]],["(\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3",["0[26]|5"]],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["1(?:44|[679])|[378]"]],["(\\d{3})(\\d{3,4})(\\d{4})","$1 $2 $3",["0[13-57-9][0159]|14"]],["(\\d{2})(\\d{4})(\\d{5})","$1 $2 $3",["0[26]"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["0"]],["(\\d{3})(\\d{4})(\\d{4,5})","$1 $2 $3",["3"]]],0,0,0,0,0,0,[0,["3[1-9]\\d{8}|3[2-9]\\d{7}",[9,10]]]],JE:["44","00","1534\\d{6}|(?:[3578]\\d|90)\\d{8}",[10],0,"0",0,"0|([0-24-8]\\d{5})$","1534$1",0,0,[0,["7(?:(?:(?:50|82)9|937)\\d|7(?:00[378]|97[7-9]))\\d{5}"]]],JM:["1","011","(?:[58]\\d\\d|658|900)\\d{7}",[10],0,"1",0,0,0,0,"658|876",[0,["(?:658295|876(?:2(?:0[1-9]|[13-9]\\d|2[013-9])|[348]\\d\\d|5(?:0[1-9]|[1-9]\\d)|6(?:4[89]|6[67])|7(?:0[07]|7\\d|8[1-47-9]|9[0-36-9])|9(?:[01]9|9[0579])))\\d{4}"]]],JO:["962","00","(?:(?:[2689]|7\\d)\\d|32|53)\\d{6}",[8,9],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[2356]|87"],"(0$1)"],["(\\d{3})(\\d{5,6})","$1 $2",["[89]"],"0$1"],["(\\d{2})(\\d{7})","$1 $2",["70"],"0$1"],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["7"],"0$1"]],"0",0,0,0,0,0,[0,["7(?:[78][0-25-9]|9\\d)\\d{6}",[9]]]],JP:["81","010","00[1-9]\\d{6,14}|[257-9]\\d{9}|(?:00|[1-9]\\d\\d)\\d{6}",[8,9,10,11,12,13,14,15,16,17],[["(\\d{3})(\\d{3})(\\d{3})","$1-$2-$3",["(?:12|57|99)0"],"0$1"],["(\\d{4})(\\d)(\\d{4})","$1-$2-$3",["1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51|63)|9(?:80|9[16])","1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9]|636)|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]","1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9]|636[457-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["60"],"0$1"],["(\\d)(\\d{4})(\\d{4})","$1-$2-$3",["[36]|4(?:2[09]|7[01])","[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[27-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])","1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9])|5(?:2|3[045]|4[0-369]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|49|51|6(?:[0-24]|36|5[0-3589]|72|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:49|55|83)[29]|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]","1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]","1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|7[015-9]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17|3[015-9]))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9(?:[019]|4[1-3]|6(?:[0-47-9]|5[01346-9])))|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|829(?:2|66)|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]"],"0$1"],["(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3",["[14]|[289][2-9]|5[3-9]|7[2-4679]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["800"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1-$2-$3",["[257-9]"],"0$1"]],"0",0,0,0,0,0,[0,["[7-9]0[1-9]\\d{7}",[10]]]],KE:["254","000","(?:[17]\\d\\d|900)\\d{6}|(?:2|80)0\\d{6,7}|[4-6]\\d{6,8}",[7,8,9,10],[["(\\d{2})(\\d{5,7})","$1 $2",["[24-6]"],"0$1"],["(\\d{3})(\\d{6})","$1 $2",["[17]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["[89]"],"0$1"]],"0",0,0,0,0,0,[0,["(?:1(?:0[0-6]|1[0-5]|2[014]|30)|7\\d\\d)\\d{6}",[9]]]],KG:["996","00","8\\d{9}|(?:[235-8]\\d|99)\\d{7}",[9,10],[["(\\d{4})(\\d{5})","$1 $2",["3(?:1[346]|[24-79])"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[235-79]|88"],"0$1"],["(\\d{3})(\\d{3})(\\d)(\\d{2,3})","$1 $2 $3 $4",["8"],"0$1"]],"0",0,0,0,0,0,[0,["312(?:58\\d|973)\\d{3}|(?:2(?:0[0-35]|2\\d)|5[0-24-7]\\d|600|7(?:[07]\\d|55)|88[08]|99[05-9])\\d{6}",[9]]]],KH:["855","00[14-9]","1\\d{9}|[1-9]\\d{7,8}",[8,9,10],[["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[1-9]"],"0$1"],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1"]]],"0",0,0,0,0,0,[0,["(?:(?:1[28]|3[18]|9[67])\\d|6[016-9]|7(?:[07-9]|[16]\\d)|8(?:[013-79]|8\\d))\\d{6}|(?:1\\d|9[0-57-9])\\d{6}|(?:2[3-6]|3[2-6]|4[2-4]|[5-7][2-5])48\\d{5}",[8,9]]]],KI:["686","00","(?:[37]\\d|6[0-79])\\d{6}|(?:[2-48]\\d|50)\\d{3}",[5,8],0,"0",0,0,0,0,0,[0,["(?:63\\d{3}|73(?:0[0-5]\\d|140))\\d{3}|[67]200[01]\\d{3}",[8]]]],KM:["269","00","[3478]\\d{6}",[7],[["(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["[3478]"]]],0,0,0,0,0,0,[0,["[34]\\d{6}"]]],KN:["1","011","(?:[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([2-7]\\d{6})$","869$1",0,"869",[0,["869(?:48[89]|55[6-8]|66\\d|76[02-7])\\d{4}"]]],KP:["850","00|99","85\\d{6}|(?:19\\d|[2-7])\\d{7}",[8,10],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["8"],"0$1"],["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[2-7]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["1"],"0$1"]],"0",0,0,0,0,0,[0,["19[1-3]\\d{7}",[10]]]],KR:["82","00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))","00[1-9]\\d{8,11}|(?:[12]|5\\d{3})\\d{7}|[13-6]\\d{9}|(?:[1-6]\\d|80)\\d{7}|[3-6]\\d{4,5}|(?:00|7)0\\d{8}",[5,6,8,9,10,11,12,13,14],[["(\\d{2})(\\d{3,4})","$1-$2",["(?:3[1-3]|[46][1-4]|5[1-5])1"],"0$1"],["(\\d{4})(\\d{4})","$1-$2",["1"]],["(\\d)(\\d{3,4})(\\d{4})","$1-$2-$3",["2"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["60|8"],"0$1"],["(\\d{2})(\\d{3,4})(\\d{4})","$1-$2-$3",["[1346]|5[1-5]"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1-$2-$3",["[57]"],"0$1"],["(\\d{2})(\\d{5})(\\d{4})","$1-$2-$3",["5"],"0$1"]],"0",0,"0(8(?:[1-46-8]|5\\d\\d))?",0,0,0,[0,["1(?:05(?:[0-8]\\d|9[0-6])|22[13]\\d)\\d{4,5}|1(?:0[1-46-9]|[16-9]\\d|2[013-9])\\d{6,7}",[9,10]]]],KW:["965","00","18\\d{5}|(?:[2569]\\d|41)\\d{6}",[7,8],[["(\\d{4})(\\d{3,4})","$1 $2",["[169]|2(?:[235]|4[1-35-9])|52"]],["(\\d{3})(\\d{5})","$1 $2",["[245]"]]],0,0,0,0,0,0,[0,["(?:41\\d\\d|5(?:(?:[05]\\d|1[0-7]|6[56])\\d|2(?:22|5[25])|7(?:55|77)|88[58])|6(?:(?:0[034679]|5[015-9]|6\\d)\\d|1(?:00|11|66)|222|3[36]3|444|7(?:0[013-9]|[67]\\d)|888|9(?:[069]\\d|3[039]))|9(?:(?:0[09]|22|[4679]\\d|8[057-9])\\d|1(?:1[01]|99)|3(?:00|33)|5(?:00|5\\d)))\\d{4}",[8]]]],KY:["1","011","(?:345|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([2-9]\\d{6})$","345$1",0,"345",[0,["345(?:32[1-9]|42[0-4]|5(?:1[67]|2[5-79]|4[6-9]|50|76)|649|82[56]|9(?:1[679]|2[2-9]|3[06-9]|90))\\d{4}"]]],KZ:["7","810","(?:33622|8\\d{8})\\d{5}|[78]\\d{9}",[10,14],0,"8",0,0,0,0,"33|7",[0,["7(?:0[0-25-8]|47|6[0-4]|7[15-8]|85)\\d{7}",[10]]],"8~10"],LA:["856","00","[23]\\d{9}|3\\d{8}|(?:[235-8]\\d|41)\\d{6}",[8,9,10],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["2[13]|3[14]|[4-8]"],"0$1"],["(\\d{2})(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4",["30[013-9]"],"0$1"],["(\\d{2})(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3 $4",["[23]"],"0$1"]],"0",0,0,0,0,0,[0,["(?:20(?:[239]\\d|5[24-9]|7[6-8]|88)|302\\d)\\d{6}",[10]]]],LB:["961","00","[27-9]\\d{7}|[13-9]\\d{6}",[7,8],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[27-9]"]]],"0",0,0,0,0,0,[0,["793(?:[01]\\d|2[0-4])\\d{3}|(?:(?:3|81)\\d|7(?:[01]\\d|6[013-9]|8[89]|9[12]))\\d{5}"]]],LC:["1","011","(?:[58]\\d\\d|758|900)\\d{7}",[10],0,"1",0,"1|([2-8]\\d{6})$","758$1",0,"758",[0,["758(?:28[4-7]|384|4(?:6[01]|8[4-9])|5(?:1[89]|20|84)|7(?:1[2-9]|2\\d|3[0-3])|812)\\d{4}"]]],LI:["423","00","[68]\\d{8}|(?:[2378]\\d|90)\\d{5}",[7,9],[["(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["[2379]|8(?:0[09]|7)","[2379]|8(?:0(?:02|9)|7)"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["69"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["6"]]],"0",0,"0|(1001)",0,0,0,[0,["(?:6(?:(?:4[5-9]|5[0-4])\\d|6(?:[0245]\\d|[17]0|3[7-9]))\\d|7(?:[37-9]\\d|42|56))\\d{4}"]]],LK:["94","00","[1-9]\\d{8}",[9],[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[1-689]"],"0$1"]],"0",0,0,0,0,0,[0,["7(?:[0-25-8]\\d|4[0-4])\\d{6}"]]],LR:["231","00","(?:[25]\\d|33|77|88)\\d{7}|(?:2\\d|[4-6])\\d{6}",[7,8,9],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[4-6]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["2"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[23578]"],"0$1"]],"0",0,0,0,0,0,[0,["(?:(?:(?:22|33)0|555|(?:77|88)\\d)\\d|4[67])\\d{5}|[56]\\d{6}",[7,9]]]],LS:["266","00","(?:[256]\\d\\d|800)\\d{5}",[8],[["(\\d{4})(\\d{4})","$1 $2",["[2568]"]]],0,0,0,0,0,0,[0,["[56]\\d{7}"]]],LT:["370","00","(?:[3469]\\d|52|[78]0)\\d{6}",[8],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["52[0-7]"],"(8-$1)",1],["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["[7-9]"],"8 $1",1],["(\\d{2})(\\d{6})","$1 $2",["37|4(?:[15]|6[1-8])"],"(8-$1)",1],["(\\d{3})(\\d{5})","$1 $2",["[3-6]"],"(8-$1)",1]],"8",0,"[08]",0,0,0,[0,["6\\d{7}"]]],LU:["352","00","35[013-9]\\d{4,8}|6\\d{8}|35\\d{2,4}|(?:[2457-9]\\d|3[0-46-9])\\d{2,9}",[4,5,6,7,8,9,10,11],[["(\\d{2})(\\d{3})","$1 $2",["2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])"]],["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])"]],["(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["20[2-689]"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})","$1 $2 $3 $4",["2(?:[0367]|4[3-8])"]],["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["80[01]|90[015]"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4",["20"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["6"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})","$1 $2 $3 $4 $5",["2(?:[0367]|4[3-8])"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{1,5})","$1 $2 $3 $4",["[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]"]]],0,0,"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\d)",0,0,0,[0,["6(?:[269][18]|5[1568]|7[189]|81)\\d{6}",[9]]]],LV:["371","00","(?:[268]\\d|90)\\d{6}",[8],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[269]|8[01]"]]],0,0,0,0,0,0,[0,["23(?:23[0-57-9]|33[0238])\\d{3}|2(?:[0-24-9]\\d\\d|3(?:0[07]|[14-9]\\d|2[024-9]|3[0-24-9]))\\d{4}"]]],LY:["218","00","[2-9]\\d{8}",[9],[["(\\d{2})(\\d{7})","$1-$2",["[2-9]"],"0$1"]],"0",0,0,0,0,0,[0,["9[1-6]\\d{7}"]]],MA:["212","00","[5-8]\\d{8}",[9],[["(\\d{5})(\\d{4})","$1-$2",["5(?:29|38)","5(?:29[1289]|389)","529(?:1[1-46-9]|2[013-8]|90)|5(?:298|389)[0-46-9]"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["5[45]"],"0$1"],["(\\d{4})(\\d{5})","$1-$2",["5(?:2[2-489]|3[5-9]|9)|892","5(?:2(?:[2-49]|8[235-9])|3[5-9]|9)|892"],"0$1"],["(\\d{2})(\\d{7})","$1-$2",["8"],"0$1"],["(\\d{3})(\\d{6})","$1-$2",["[5-7]"],"0$1"]],"0",0,0,0,0,0,[0,["(?:6(?:[0-79]\\d|8[0-247-9])|7(?:[017]\\d|2[0-2]|6[0-8]|8[0-3]))\\d{6}"]]],MC:["377","00","(?:[3489]|6\\d)\\d{7}",[8,9],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["4"],"0$1"],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[389]"]],["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["6"],"0$1"]],"0",0,0,0,0,0,[0,["4(?:[46]\\d|5[1-9])\\d{5}|(?:3|6\\d)\\d{7}"]]],MD:["373","00","(?:[235-7]\\d|[89]0)\\d{6}",[8],[["(\\d{3})(\\d{5})","$1 $2",["[89]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["22|3"],"0$1"],["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["[25-7]"],"0$1"]],"0",0,0,0,0,0,[0,["562\\d{5}|(?:6\\d|7[16-9])\\d{6}"]]],ME:["382","00","(?:20|[3-79]\\d)\\d{6}|80\\d{6,7}",[8,9],[["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-9]"],"0$1"]],"0",0,0,0,0,0,[0,["6(?:[07-9]\\d|3[024]|6[0-25])\\d{5}",[8]]]],MF:["590","00","(?:590|(?:69|80)\\d|976)\\d{6}",[9],0,"0",0,0,0,0,0,[0,["69(?:0\\d\\d|1(?:2[2-9]|3[0-5]))\\d{4}"]]],MG:["261","00","[23]\\d{8}",[9],[["(\\d{2})(\\d{2})(\\d{3})(\\d{2})","$1 $2 $3 $4",["[23]"],"0$1"]],"0",0,"0|([24-9]\\d{6})$","20$1",0,0,[0,["3[2-47-9]\\d{7}"]]],MH:["692","011","329\\d{4}|(?:[256]\\d|45)\\d{5}",[7],[["(\\d{3})(\\d{4})","$1-$2",["[2-6]"]]],"1",0,0,0,0,0,[0,["(?:(?:23|54)5|329|45[356])\\d{4}"]]],MK:["389","00","[2-578]\\d{7}",[8],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["2|34[47]|4(?:[37]7|5[47]|64)"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[347]"],"0$1"],["(\\d{3})(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4",["[58]"],"0$1"]],"0",0,0,0,0,0,[0,["7(?:3555|(?:474|9[019]7)7)\\d{3}|7(?:[0-25-8]\\d\\d|3(?:[1-48]\\d|7[01578])|4(?:2\\d|60|7[01578])|9(?:[2-4]\\d|7[015]))\\d{4}"]]],ML:["223","00","[24-9]\\d{7}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[24-9]"]]],0,0,0,0,0,0,[0,["2(?:0(?:01|79)|17\\d)\\d{4}|(?:5[01]|[679]\\d|8[2-49])\\d{6}"]]],MM:["95","00","1\\d{5,7}|95\\d{6}|(?:[4-7]|9[0-46-9])\\d{6,8}|(?:2|8\\d)\\d{5,8}",[6,7,8,9,10],[["(\\d)(\\d{2})(\\d{3})","$1 $2 $3",["16|2"],"0$1"],["(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["[45]|6(?:0[23]|[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-6]"],"0$1"],["(\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["[12]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[4-7]|8[1-35]"],"0$1"],["(\\d)(\\d{3})(\\d{4,6})","$1 $2 $3",["9(?:2[0-4]|[35-9]|4[137-9])"],"0$1"],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["2"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"],"0$1"],["(\\d)(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["92"],"0$1"],["(\\d)(\\d{5})(\\d{4})","$1 $2 $3",["9"],"0$1"]],"0",0,0,0,0,0,[0,["(?:17[01]|9(?:2(?:[0-4]|[56]\\d\\d)|(?:3(?:[0-36]|4\\d)|(?:6\\d|9[4-8])\\d|7(?:3|40|[5-9]\\d)|8(?:78|[89]\\d))\\d|4(?:(?:[0245]\\d|[1379])\\d|88)|5[0-6])\\d)\\d{4}|9[69]1\\d{6}|9(?:[68]\\d|9[089])\\d{5}",[7,8,9,10]]]],MN:["976","001","[12]\\d{7,9}|[5-9]\\d{7}",[8,9,10],[["(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["[12]1"],"0$1"],["(\\d{4})(\\d{4})","$1 $2",["[5-9]"]],["(\\d{3})(\\d{5,6})","$1 $2",["[12]2[1-3]"],"0$1"],["(\\d{4})(\\d{5,6})","$1 $2",["[12](?:27|3[2-8]|4[2-68]|5[1-4689])","[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]"],"0$1"],["(\\d{5})(\\d{4,5})","$1 $2",["[12]"],"0$1"]],"0",0,0,0,0,0,[0,["(?:83[01]|920)\\d{5}|(?:5[05]|6[069]|8[015689]|9[013-9])\\d{6}",[8]]]],MO:["853","00","0800\\d{3}|(?:28|[68]\\d)\\d{6}",[7,8],[["(\\d{4})(\\d{3})","$1 $2",["0"]],["(\\d{4})(\\d{4})","$1 $2",["[268]"]]],0,0,0,0,0,0,[0,["6800[0-79]\\d{3}|6(?:[235]\\d\\d|6(?:0[0-5]|[1-9]\\d)|8(?:0[1-9]|[14-8]\\d|2[5-9]|[39][0-4]))\\d{4}",[8]]]],MP:["1","011","[58]\\d{9}|(?:67|90)0\\d{7}",[10],0,"1",0,"1|([2-9]\\d{6})$","670$1",0,"670",[0,["670(?:2(?:3[3-7]|56|8[4-8])|32[1-38]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[3589]|8[3-9]8|989)\\d{4}"]]],MQ:["596","00","(?:69|80)\\d{7}|(?:59|97)6\\d{6}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[569]"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"],"0$1"]],"0",0,0,0,0,0,[0,["69(?:6(?:[0-46-9]\\d|5[0-6])|727)\\d{4}"]]],MR:["222","00","(?:[2-4]\\d\\d|800)\\d{5}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-48]"]]],0,0,0,0,0,0,[0,["[2-4][0-46-9]\\d{6}"]]],MS:["1","011","(?:[58]\\d\\d|664|900)\\d{7}",[10],0,"1",0,"1|([34]\\d{6})$","664$1",0,"664",[0,["664(?:3(?:49|9[1-6])|49[2-6])\\d{4}"]]],MT:["356","00","3550\\d{4}|(?:[2579]\\d\\d|800)\\d{5}",[8],[["(\\d{4})(\\d{4})","$1 $2",["[2357-9]"]]],0,0,0,0,0,0,[0,["(?:7(?:210|[79]\\d\\d)|9(?:[29]\\d\\d|69[67]|8(?:1[1-3]|89|97)))\\d{4}"]]],MU:["230","0(?:0|[24-7]0|3[03])","(?:[57]|8\\d\\d)\\d{7}|[2-468]\\d{6}",[7,8,10],[["(\\d{3})(\\d{4})","$1 $2",["[2-46]|8[013]"]],["(\\d{4})(\\d{4})","$1 $2",["[57]"]],["(\\d{5})(\\d{5})","$1 $2",["8"]]],0,0,0,0,0,0,[0,["5(?:4(?:2[1-389]|7[1-9])|87[15-8])\\d{4}|(?:5(?:2[5-9]|4[3-689]|[57]\\d|8[0-689]|9[0-8])|7(?:01|30))\\d{5}",[8]]],"020"],MV:["960","0(?:0|19)","(?:800|9[0-57-9]\\d)\\d{7}|[34679]\\d{6}",[7,10],[["(\\d{3})(\\d{4})","$1-$2",["[3467]|9[1-9]"]],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[89]"]]],0,0,0,0,0,0,[0,["46[46]\\d{4}|(?:7\\d|9[1-9])\\d{5}",[7]]],"00"],MW:["265","00","(?:[1289]\\d|31|77)\\d{7}|1\\d{6}",[7,9],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["1[2-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["2"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[137-9]"],"0$1"]],"0",0,0,0,0,0,[0,["111\\d{6}|(?:31|77|[89][89])\\d{7}",[9]]]],MX:["52","0[09]","1(?:(?:[27]2|44|99)[1-9]|65[0-689])\\d{7}|(?:1(?:[01]\\d|2[13-9]|[35][1-9]|4[0-35-9]|6[0-46-9]|7[013-9]|8[1-79]|9[1-8])|[2-9]\\d)\\d{8}",[10,11],[["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["33|5[56]|81"],0,1],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[2-9]"],0,1],["(\\d)(\\d{2})(\\d{4})(\\d{4})","$2 $3 $4",["1(?:33|5[56]|81)"],0,1],["(\\d)(\\d{3})(\\d{3})(\\d{4})","$2 $3 $4",["1"],0,1]],"01",0,"0(?:[12]|4[45])|1",0,0,0,[0,["657[12]\\d{6}|(?:1(?:2(?:2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[24-7][1-9]|3[1-8]|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69][1-9]|7[12]|8[1-8]))|2(?:2\\d|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[25-7][1-9]|3[1-8]|4\\d|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[13467][1-9]|2\\d|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|6[1-9]|7[12]|8[1-8]|9\\d))\\d{7}"]],"00"],MY:["60","00","1\\d{8,9}|(?:3\\d|[4-9])\\d{7}",[8,9,10],[["(\\d)(\\d{3})(\\d{4})","$1-$2 $3",["[4-79]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1-$2 $3",["1(?:[02469]|[378][1-9]|53)|8","1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8"],"0$1"],["(\\d)(\\d{4})(\\d{4})","$1-$2 $3",["3"],"0$1"],["(\\d)(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3-$4",["1(?:[367]|80)"]],["(\\d{3})(\\d{3})(\\d{4})","$1-$2 $3",["15"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1-$2 $3",["1"],"0$1"]],"0",0,0,0,0,0,[0,["1(?:1888[689]|4400|8(?:47|8[27])[0-4])\\d{4}|1(?:0(?:[23568]\\d|4[0-6]|7[016-9]|9[0-8])|1(?:[1-5]\\d\\d|6(?:0[5-9]|[1-9]\\d)|7(?:[0134]\\d|2[1-9]|5[0-6]))|(?:[269]\\d|[37][1-9]|4[235-9])\\d|5(?:31|9\\d\\d)|8(?:1[23]|[236]\\d|4[06]|5(?:46|[7-9])|7[016-9]|8[01]|9[0-8]))\\d{5}",[9,10]]]],MZ:["258","00","(?:2|8\\d)\\d{7}",[8,9],[["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["2|8[2-79]"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8"]]],0,0,0,0,0,0,[0,["8[2-79]\\d{7}",[9]]]],NA:["264","00","[68]\\d{7,8}",[8,9],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["88"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["6"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["87"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["8"],"0$1"]],"0",0,0,0,0,0,[0,["(?:60|8[1245])\\d{7}",[9]]]],NC:["687","00","(?:050|[2-57-9]\\d\\d)\\d{3}",[6],[["(\\d{2})(\\d{2})(\\d{2})","$1.$2.$3",["[02-57-9]"]]],0,0,0,0,0,0,[0,["(?:5[0-4]|[79]\\d|8[0-79])\\d{4}"]]],NE:["227","00","[027-9]\\d{7}",[8],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["08"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[089]|2[013]|7[04]"]]],0,0,0,0,0,0,[0,["(?:23|7[04]|[89]\\d)\\d{6}"]]],NF:["672","00","[13]\\d{5}",[6],[["(\\d{2})(\\d{4})","$1 $2",["1[0-3]"]],["(\\d)(\\d{5})","$1 $2",["[13]"]]],0,0,"([0-258]\\d{4})$","3$1",0,0,[0,["(?:14|3[58])\\d{4}"]]],NG:["234","009","(?:[124-7]|9\\d{3})\\d{6}|[1-9]\\d{7}|[78]\\d{9,13}",[7,8,10,11,12,13,14],[["(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["78"],"0$1"],["(\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["[12]|9(?:0[3-9]|[1-9])"],"0$1"],["(\\d{2})(\\d{3})(\\d{2,3})","$1 $2 $3",["[3-7]|8[2-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["[7-9]"],"0$1"],["(\\d{3})(\\d{4})(\\d{4,5})","$1 $2 $3",["[78]"],"0$1"],["(\\d{3})(\\d{5})(\\d{5,6})","$1 $2 $3",["[78]"],"0$1"]],"0",0,0,0,0,0,[0,["(?:702[0-24-9]|819[01])\\d{6}|(?:70[13-689]|8(?:0[1-9]|1[0-8])|9(?:0[1-9]|1[1-356]))\\d{7}",[10]]]],NI:["505","00","(?:1800|[25-8]\\d{3})\\d{4}",[8],[["(\\d{4})(\\d{4})","$1 $2",["[125-8]"]]],0,0,0,0,0,0,[0,["(?:5(?:5[0-7]|[78]\\d)|6(?:20|3[035]|4[045]|5[05]|77|8[1-9]|9[059])|(?:7[5-8]|8\\d)\\d)\\d{5}"]]],NL:["31","00","(?:[124-7]\\d\\d|3(?:[02-9]\\d|1[0-8]))\\d{6}|8\\d{6,9}|9\\d{6,10}|1\\d{4,5}",[5,6,7,8,9,10,11],[["(\\d{3})(\\d{4,7})","$1 $2",["[89]0"],"0$1"],["(\\d{2})(\\d{7})","$1 $2",["66"],"0$1"],["(\\d)(\\d{8})","$1 $2",["6"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["1[16-8]|2[259]|3[124]|4[17-9]|5[124679]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[1-578]|91"],"0$1"],["(\\d{3})(\\d{3})(\\d{5})","$1 $2 $3",["9"],"0$1"]],"0",0,0,0,0,0,[0,["(?:6[1-58]|970\\d)\\d{7}",[9,11]]]],NO:["47","00","(?:0|[2-9]\\d{3})\\d{4}",[5,8],[["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["[489]|59"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[235-7]"]]],0,0,0,0,0,"[02-689]|7[0-8]",[0,["(?:4[015-8]|59|9\\d)\\d{6}",[8]]]],NP:["977","00","(?:1\\d|9)\\d{9}|[1-9]\\d{7}",[8,10,11],[["(\\d)(\\d{7})","$1-$2",["1[2-6]"],"0$1"],["(\\d{2})(\\d{6})","$1-$2",["1[01]|[2-8]|9(?:[1-59]|[67][2-6])"],"0$1"],["(\\d{3})(\\d{7})","$1-$2",["9"]]],"0",0,0,0,0,0,[0,["9(?:6[0-3]|7[024-6]|8[0-24-68])\\d{7}",[10]]]],NR:["674","00","(?:444|(?:55|8\\d)\\d|666)\\d{4}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[4-68]"]]],0,0,0,0,0,0,[0,["(?:55[3-9]|666|8\\d\\d)\\d{4}"]]],NU:["683","00","(?:[47]|888\\d)\\d{3}",[4,7],[["(\\d{3})(\\d{4})","$1 $2",["8"]]],0,0,0,0,0,0,[0,["888[4-9]\\d{3}",[7]]]],NZ:["64","0(?:0|161)","[29]\\d{7,9}|50\\d{5}(?:\\d{2,3})?|6[0-35-9]\\d{6}|7\\d{7,8}|8\\d{4,9}|(?:11\\d|[34])\\d{7}",[5,6,7,8,9,10],[["(\\d{2})(\\d{3,8})","$1 $2",["8[1-579]"],"0$1"],["(\\d{3})(\\d{2})(\\d{2,3})","$1 $2 $3",["50[036-8]|[89]0","50(?:[0367]|88)|[89]0"],"0$1"],["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["24|[346]|7[2-57-9]|9[2-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["2(?:10|74)|[59]|80"],"0$1"],["(\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3",["1|2[028]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,5})","$1 $2 $3",["2(?:[169]|7[0-35-9])|7|86"],"0$1"]],"0",0,0,0,0,0,[0,["2[0-27-9]\\d{7,8}|21\\d{6}",[8,9,10]]],"00"],OM:["968","00","(?:1505|[279]\\d{3}|500)\\d{4}|800\\d{5,6}",[7,8,9],[["(\\d{3})(\\d{4,6})","$1 $2",["[58]"]],["(\\d{2})(\\d{6})","$1 $2",["2"]],["(\\d{4})(\\d{4})","$1 $2",["[179]"]]],0,0,0,0,0,0,[0,["1505\\d{4}|(?:7(?:[1289]\\d|7[0-5])|9(?:0[1-9]|[1-9]\\d))\\d{5}",[8]]]],PA:["507","00","(?:00800|8\\d{3})\\d{6}|[68]\\d{7}|[1-57-9]\\d{6}",[7,8,10,11],[["(\\d{3})(\\d{4})","$1-$2",["[1-57-9]"]],["(\\d{4})(\\d{4})","$1-$2",["[68]"]],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"]]],0,0,0,0,0,0,[0,["(?:1[16]1|21[89]|6\\d{3}|8(?:1[01]|7[23]))\\d{4}",[7,8]]]],PE:["51","00|19(?:1[124]|77|90)00","(?:[14-8]|9\\d)\\d{7}",[8,9],[["(\\d{3})(\\d{5})","$1 $2",["80"],"(0$1)"],["(\\d)(\\d{7})","$1 $2",["1"],"(0$1)"],["(\\d{2})(\\d{6})","$1 $2",["[4-8]"],"(0$1)"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["9"]]],"0",0,0,0,0,0,[0,["9\\d{8}",[9]]],"00"," Anexo "],PF:["689","00","4\\d{5}(?:\\d{2})?|8\\d{7,8}",[6,8,9],[["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["44"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["4|8[7-9]"]],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"]]],0,0,0,0,0,0,[0,["8[7-9]\\d{6}",[8]]]],PG:["675","00|140[1-3]","(?:180|[78]\\d{3})\\d{4}|(?:[2-589]\\d|64)\\d{5}",[7,8],[["(\\d{3})(\\d{4})","$1 $2",["18|[2-69]|85"]],["(\\d{4})(\\d{4})","$1 $2",["[78]"]]],0,0,0,0,0,0,[0,["(?:7\\d|8[128])\\d{6}",[8]]],"00"],PH:["63","00","(?:[2-7]|9\\d)\\d{8}|2\\d{5}|(?:1800|8)\\d{7,9}",[6,8,9,10,11,12,13],[["(\\d)(\\d{5})","$1 $2",["2"],"(0$1)"],["(\\d{4})(\\d{4,6})","$1 $2",["3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2","3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))"],"(0$1)"],["(\\d{5})(\\d{4})","$1 $2",["346|4(?:27|9[35])|883","3469|4(?:279|9(?:30|56))|8834"],"(0$1)"],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["2"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[3-7]|8[2-8]"],"(0$1)"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[89]"],"0$1"],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]],["(\\d{4})(\\d{1,2})(\\d{3})(\\d{4})","$1 $2 $3 $4",["1"]]],"0",0,0,0,0,0,[0,["(?:8(?:1[37]|9[5-8])|9(?:0[5-9]|1[0-24-9]|[235-7]\\d|4[2-9]|8[135-9]|9[1-9]))\\d{7}",[10]]]],PK:["92","00","122\\d{6}|[24-8]\\d{10,11}|9(?:[013-9]\\d{8,10}|2(?:[01]\\d\\d|2(?:[06-8]\\d|1[01]))\\d{7})|(?:[2-8]\\d{3}|92(?:[0-7]\\d|8[1-9]))\\d{6}|[24-9]\\d{8}|[89]\\d{7}",[8,9,10,11,12],[["(\\d{3})(\\d{3})(\\d{2,7})","$1 $2 $3",["[89]0"],"0$1"],["(\\d{4})(\\d{5})","$1 $2",["1"]],["(\\d{3})(\\d{6,7})","$1 $2",["2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])","9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]"],"(0$1)"],["(\\d{2})(\\d{7,8})","$1 $2",["(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]"],"(0$1)"],["(\\d{5})(\\d{5})","$1 $2",["58"],"(0$1)"],["(\\d{3})(\\d{7})","$1 $2",["3"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91"],"(0$1)"],["(\\d{3})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["[24-9]"],"(0$1)"]],"0",0,0,0,0,0,[0,["3(?:[0-24]\\d|3[0-7]|55|64)\\d{7}",[10]]]],PL:["48","00","(?:6|8\\d\\d)\\d{7}|[1-9]\\d{6}(?:\\d{2})?|[26]\\d{5}",[6,7,8,9,10],[["(\\d{5})","$1",["19"]],["(\\d{3})(\\d{3})","$1 $2",["11|20|64"]],["(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1","(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19"]],["(\\d{3})(\\d{2})(\\d{2,3})","$1 $2 $3",["64"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)"]],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[2-8]|[2-7]|8[1-79]|9[145]"]],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["8"]]],0,0,0,0,0,0,[0,["21(?:1(?:[145]\\d|3[1-5])|2[0-4]\\d)\\d{4}|(?:45|5[0137]|6[069]|7[2389]|88)\\d{7}",[9]]]],PM:["508","00","(?:[45]|80\\d\\d)\\d{5}",[6,9],[["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["[45]"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"],"0$1"]],"0",0,0,0,0,0,[0,["(?:4[02-4]|5[056])\\d{4}",[6]]]],PR:["1","011","(?:[589]\\d\\d|787)\\d{7}",[10],0,"1",0,0,0,0,"787|939",[0,["(?:787|939)[2-9]\\d{6}"]]],PS:["970","00","[2489]2\\d{6}|(?:1\\d|5)\\d{8}",[8,9,10],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[2489]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["5"],"0$1"],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1"]]],"0",0,0,0,0,0,[0,["5[69]\\d{7}",[9]]]],PT:["351","00","1693\\d{5}|(?:[26-9]\\d|30)\\d{7}",[9],[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["2[12]"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["16|[236-9]"]]],0,0,0,0,0,0,[0,["6(?:[06]92(?:30|9\\d)|[35]92(?:3[03]|9\\d))\\d{3}|(?:(?:16|6[0356])93|9(?:[1-36]\\d\\d|480))\\d{5}"]]],PW:["680","01[12]","(?:[24-8]\\d\\d|345|900)\\d{4}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[2-9]"]]],0,0,0,0,0,0,[0,["(?:(?:46|83)[0-5]|6[2-4689]0)\\d{4}|(?:45|77|88)\\d{5}"]]],PY:["595","00","59\\d{4,6}|9\\d{5,10}|(?:[2-46-8]\\d|5[0-8])\\d{4,7}",[6,7,8,9,10,11],[["(\\d{3})(\\d{3,6})","$1 $2",["[2-9]0"],"0$1"],["(\\d{2})(\\d{5})","$1 $2",["[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]"],"(0$1)"],["(\\d{3})(\\d{4,5})","$1 $2",["2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["87"]],["(\\d{3})(\\d{6})","$1 $2",["9(?:[5-79]|8[1-6])"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[2-8]"],"0$1"],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["9"]]],"0",0,0,0,0,0,[0,["9(?:51|6[129]|[78][1-6]|9[1-5])\\d{6}",[9]]]],QA:["974","00","800\\d{4}|(?:2|800)\\d{6}|(?:0080|[3-7])\\d{7}",[7,8,9,11],[["(\\d{3})(\\d{4})","$1 $2",["2[16]|8"]],["(\\d{4})(\\d{4})","$1 $2",["[3-7]"]]],0,0,0,0,0,0,[0,["[35-7]\\d{7}",[8]]]],RE:["262","00","976\\d{6}|(?:26|[68]\\d)\\d{7}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2689]"],"0$1"]],"0",0,0,0,0,"26[23]|69|[89]",[0,["(?:69(?:2\\d\\d|3(?:0[0-46]|1[013]|2[0-2]|3[0-39]|4\\d|5[0-5]|6[0-6]|7[0-27]|8[0-8]|9[0-479]))|976(?:2[27]|3[0-37]|9\\d))\\d{4}"]]],RO:["40","00","(?:[2378]\\d|90)\\d{7}|[23]\\d{5}",[6,9],[["(\\d{3})(\\d{3})","$1 $2",["2[3-6]","2[3-6]\\d9"],"0$1"],["(\\d{2})(\\d{4})","$1 $2",["219|31"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[23]1"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[237-9]"],"0$1"]],"0",0,0,0,0,0,[0,["7020\\d{5}|7(?:0[013-9]|1[0-3]|[2-7]\\d|8[03-8]|9[019])\\d{6}",[9]]],0," int "],RS:["381","00","38[02-9]\\d{6,9}|6\\d{7,9}|90\\d{4,8}|38\\d{5,6}|(?:7\\d\\d|800)\\d{3,9}|(?:[12]\\d|3[0-79])\\d{5,10}",[6,7,8,9,10,11,12],[["(\\d{3})(\\d{3,9})","$1 $2",["(?:2[389]|39)0|[7-9]"],"0$1"],["(\\d{2})(\\d{5,10})","$1 $2",["[1-36]"],"0$1"]],"0",0,0,0,0,0,[0,["6(?:[0-689]|7\\d)\\d{6,7}",[8,9,10]]]],RU:["7","810","8\\d{13}|[347-9]\\d{9}",[10,14],[["(\\d{4})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["7(?:1[0-8]|2[1-9])","7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))","7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2"],"8 ($1)",1],["(\\d{5})(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4",["7(?:1[0-68]|2[1-9])","7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))","7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]"],"8 ($1)",1],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"8 ($1)",1],["(\\d{3})(\\d{3})(\\d{2})(\\d{2})","$1 $2-$3-$4",["[349]|8(?:[02-7]|1[1-8])"],"8 ($1)",1],["(\\d{4})(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3 $4",["8"],"8 ($1)"]],"8",0,0,0,0,"3[04-689]|[489]",[0,["9\\d{9}",[10]]],"8~10"],RW:["250","00","(?:06|[27]\\d\\d|[89]00)\\d{6}",[8,9],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["0"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[7-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["2"]]],"0",0,0,0,0,0,[0,["7[2389]\\d{7}",[9]]]],SA:["966","00","92\\d{7}|(?:[15]|8\\d)\\d{8}",[9,10],[["(\\d{4})(\\d{5})","$1 $2",["9"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["1"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["5"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["81"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"]]],"0",0,0,0,0,0,[0,["579[01]\\d{5}|5(?:[013-689]\\d|7[0-35-8])\\d{6}",[9]]]],SB:["677","0[01]","(?:[1-6]|[7-9]\\d\\d)\\d{4}",[5,7],[["(\\d{2})(\\d{5})","$1 $2",["7|8[4-9]|9(?:[1-8]|9[0-8])"]]],0,0,0,0,0,0,[0,["48\\d{3}|(?:(?:7[1-9]|8[4-9])\\d|9(?:1[2-9]|2[013-9]|3[0-2]|[46]\\d|5[0-46-9]|7[0-689]|8[0-79]|9[0-8]))\\d{4}"]]],SC:["248","010|0[0-2]","800\\d{4}|(?:[249]\\d|64)\\d{5}",[7],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[246]|9[57]"]]],0,0,0,0,0,0,[0,["2[125-8]\\d{5}"]],"00"],SD:["249","00","[19]\\d{8}",[9],[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[19]"],"0$1"]],"0",0,0,0,0,0,[0,["(?:1[0-2]|9[0-3569])\\d{7}"]]],SE:["46","00","(?:[26]\\d\\d|9)\\d{9}|[1-9]\\d{8}|[1-689]\\d{7}|[1-4689]\\d{6}|2\\d{5}",[6,7,8,9,10],[["(\\d{2})(\\d{2,3})(\\d{2})","$1-$2 $3",["20"],"0$1",0,"$1 $2 $3"],["(\\d{3})(\\d{4})","$1-$2",["9(?:00|39|44|9)"],"0$1",0,"$1 $2"],["(\\d{2})(\\d{3})(\\d{2})","$1-$2 $3",["[12][136]|3[356]|4[0246]|6[03]|90[1-9]"],"0$1",0,"$1 $2 $3"],["(\\d)(\\d{2,3})(\\d{2})(\\d{2})","$1-$2 $3 $4",["8"],"0$1",0,"$1 $2 $3 $4"],["(\\d{3})(\\d{2,3})(\\d{2})","$1-$2 $3",["1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"],"0$1",0,"$1 $2 $3"],["(\\d{3})(\\d{2,3})(\\d{3})","$1-$2 $3",["9(?:00|39|44)"],"0$1",0,"$1 $2 $3"],["(\\d{2})(\\d{2,3})(\\d{2})(\\d{2})","$1-$2 $3 $4",["1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]"],"0$1",0,"$1 $2 $3 $4"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1-$2 $3 $4",["10|7"],"0$1",0,"$1 $2 $3 $4"],["(\\d)(\\d{3})(\\d{3})(\\d{2})","$1-$2 $3 $4",["8"],"0$1",0,"$1 $2 $3 $4"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1-$2 $3 $4",["[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"],"0$1",0,"$1 $2 $3 $4"],["(\\d{3})(\\d{2})(\\d{2})(\\d{3})","$1-$2 $3 $4",["9"],"0$1",0,"$1 $2 $3 $4"],["(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1-$2 $3 $4 $5",["[26]"],"0$1",0,"$1 $2 $3 $4 $5"]],"0",0,0,0,0,0,[0,["7[02369]\\d{7}",[9]]]],SG:["65","0[0-3]\\d","(?:(?:1\\d|8)\\d\\d|7000)\\d{7}|[3689]\\d{7}",[8,10,11],[["(\\d{4})(\\d{4})","$1 $2",["[369]|8(?:0[1-6]|[1-9])"]],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"]],["(\\d{4})(\\d{4})(\\d{3})","$1 $2 $3",["7"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]]],0,0,0,0,0,0,[0,["8(?:06[0-6]|95[0-2])\\d{4}|(?:8(?:0[1-5]|[1-8]\\d|9[0-4])|9[0-8]\\d)\\d{5}",[8]]]],SH:["290","00","(?:[256]\\d|8)\\d{3}",[4,5],0,0,0,0,0,0,"[256]",[0,["[56]\\d{4}",[5]]]],SI:["386","00|10(?:22|66|88|99)","[1-7]\\d{7}|8\\d{4,7}|90\\d{4,6}",[5,6,7,8],[["(\\d{2})(\\d{3,6})","$1 $2",["8[09]|9"],"0$1"],["(\\d{3})(\\d{5})","$1 $2",["59|8"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[37][01]|4[0139]|51|6"],"0$1"],["(\\d)(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[1-57]"],"(0$1)"]],"0",0,0,0,0,0,[0,["65(?:1\\d|5[56]|6[01]|70)\\d{4}|(?:[37][01]|4[0139]|51|6[489])\\d{6}",[8]]],"00"],SJ:["47","00","0\\d{4}|(?:[489]\\d|[57]9)\\d{6}",[5,8],0,0,0,0,0,0,"79",[0,["(?:4[015-8]|59|9\\d)\\d{6}",[8]]]],SK:["421","00","[2-689]\\d{8}|[2-59]\\d{6}|[2-5]\\d{5}",[6,7,9],[["(\\d)(\\d{2})(\\d{3,4})","$1 $2 $3",["21"],"0$1"],["(\\d{2})(\\d{2})(\\d{2,3})","$1 $2 $3",["[3-5][1-8]1","[3-5][1-8]1[67]"],"0$1"],["(\\d)(\\d{3})(\\d{3})(\\d{2})","$1/$2 $3 $4",["2"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[689]"],"0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1/$2 $3 $4",["[3-5]"],"0$1"]],"0",0,0,0,0,0,[0,["909[1-9]\\d{5}|9(?:0[1-8]|1[0-24-9]|4[03-57-9]|5\\d)\\d{6}",[9]]]],SL:["232","00","(?:[237-9]\\d|66)\\d{6}",[8],[["(\\d{2})(\\d{6})","$1 $2",["[236-9]"],"(0$1)"]],"0",0,0,0,0,0,[0,["(?:25|3[0-5]|66|7[2-9]|8[08]|9[09])\\d{6}"]]],SM:["378","00","(?:0549|[5-7]\\d)\\d{6}",[8,10],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-7]"]],["(\\d{4})(\\d{6})","$1 $2",["0"]]],0,0,"([89]\\d{5})$","0549$1",0,0,[0,["6[16]\\d{6}",[8]]]],SN:["221","00","(?:[378]\\d|93)\\d{7}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"]],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[379]"]]],0,0,0,0,0,0,[0,["7(?:(?:[06-8]\\d|21|90)\\d|5(?:01|[19]0|25|[38]3|[4-7]\\d))\\d{5}"]]],SO:["252","00","[346-9]\\d{8}|[12679]\\d{7}|[1-5]\\d{6}|[1348]\\d{5}",[6,7,8,9],[["(\\d{2})(\\d{4})","$1 $2",["8[125]"]],["(\\d{6})","$1",["[134]"]],["(\\d)(\\d{6})","$1 $2",["[15]|2[0-79]|3[0-46-8]|4[0-7]"]],["(\\d)(\\d{7})","$1 $2",["(?:2|90)4|[67]"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[3478]|64|90"]],["(\\d{2})(\\d{5,7})","$1 $2",["1|28|6(?:0[5-7]|[1-35-9])|9[2-9]"]]],"0",0,0,0,0,0,[0,["(?:(?:15|(?:3[59]|4[89]|79|8[08])\\d|6(?:0[5-7]|[1-9]\\d)|9(?:0\\d|[2-9]))\\d|2(?:4\\d|8))\\d{5}|(?:[67]\\d\\d|904)\\d{5}",[7,8,9]]]],SR:["597","00","(?:[2-5]|68|[78]\\d)\\d{5}",[6,7],[["(\\d{2})(\\d{2})(\\d{2})","$1-$2-$3",["56"]],["(\\d{3})(\\d{3})","$1-$2",["[2-5]"]],["(\\d{3})(\\d{4})","$1-$2",["[6-8]"]]],0,0,0,0,0,0,[0,["(?:7[124-7]|8[124-9])\\d{5}",[7]]]],SS:["211","00","[19]\\d{8}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[19]"],"0$1"]],"0",0,0,0,0,0,[0,["(?:12|9[1257-9])\\d{7}"]]],ST:["239","00","(?:22|9\\d)\\d{5}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[29]"]]],0,0,0,0,0,0,[0,["900[5-9]\\d{3}|9(?:0[1-9]|[89]\\d)\\d{4}"]]],SV:["503","00","[267]\\d{7}|[89]00\\d{4}(?:\\d{4})?",[7,8,11],[["(\\d{3})(\\d{4})","$1 $2",["[89]"]],["(\\d{4})(\\d{4})","$1 $2",["[267]"]],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["[89]"]]],0,0,0,0,0,0,[0,["66(?:[02-9]\\d\\d|1(?:[02-9]\\d|16))\\d{3}|(?:6[0-57-9]|7\\d)\\d{6}",[8]]]],SX:["1","011","7215\\d{6}|(?:[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|(5\\d{6})$","721$1",0,"721",[0,["7215(?:1[02]|2\\d|5[034679]|8[014-8])\\d{4}"]]],SY:["963","00","[1-39]\\d{8}|[1-5]\\d{7}",[8,9],[["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[1-5]"],"0$1",1],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["9"],"0$1",1]],"0",0,0,0,0,0,[0,["9[1-689]\\d{7}",[9]]]],SZ:["268","00","0800\\d{4}|(?:[237]\\d|900)\\d{6}",[8,9],[["(\\d{4})(\\d{4})","$1 $2",["[0237]"]],["(\\d{5})(\\d{4})","$1 $2",["9"]]],0,0,0,0,0,0,[0,["7[6-9]\\d{6}",[8]]]],TA:["290","00","8\\d{3}",[4],0,0,0,0,0,0,"8"],TC:["1","011","(?:[58]\\d\\d|649|900)\\d{7}",[10],0,"1",0,"1|([2-479]\\d{6})$","649$1",0,"649",[0,["649(?:2(?:3[129]|4[1-79])|3\\d\\d|4[34][1-3])\\d{4}"]]],TD:["235","00|16","(?:22|[69]\\d|77)\\d{6}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2679]"]]],0,0,0,0,0,0,[0,["(?:6[0235689]|77|9\\d)\\d{6}"]],"00"],TG:["228","00","[279]\\d{7}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[279]"]]],0,0,0,0,0,0,[0,["(?:7[09]|9[0-36-9])\\d{6}"]]],TH:["66","00[1-9]","(?:001800|[2-57]|[689]\\d)\\d{7}|1\\d{7,9}",[8,9,10,13],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["2"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[13-9]"],"0$1"],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1"]]],"0",0,0,0,0,0,[0,["671[0-8]\\d{5}|(?:14|6[1-6]|[89]\\d)\\d{7}",[9]]]],TJ:["992","810","(?:00|[1-57-9]\\d)\\d{7}",[9],[["(\\d{6})(\\d)(\\d{2})","$1 $2 $3",["331","3317"]],["(\\d{3})(\\d{2})(\\d{4})","$1 $2 $3",["[34]7|91[78]"]],["(\\d{4})(\\d)(\\d{4})","$1 $2 $3",["3[1-5]"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[0-57-9]"]]],0,0,0,0,0,0,[0,["41[18]\\d{6}|(?:[034]0|1[017]|2[02]|5[05]|7[0178]|8[078]|9\\d)\\d{7}"]],"8~10"],TK:["690","00","[2-47]\\d{3,6}",[4,5,6,7],0,0,0,0,0,0,0,[0,["7[2-4]\\d{2,5}"]]],TL:["670","00","7\\d{7}|(?:[2-47]\\d|[89]0)\\d{5}",[7,8],[["(\\d{3})(\\d{4})","$1 $2",["[2-489]|70"]],["(\\d{4})(\\d{4})","$1 $2",["7"]]],0,0,0,0,0,0,[0,["7[2-8]\\d{6}",[8]]]],TM:["993","810","[1-6]\\d{7}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2-$3-$4",["12"],"(8 $1)"],["(\\d{3})(\\d)(\\d{2})(\\d{2})","$1 $2-$3-$4",["[1-5]"],"(8 $1)"],["(\\d{2})(\\d{6})","$1 $2",["6"],"8 $1"]],"8",0,0,0,0,0,[0,["6\\d{7}"]],"8~10"],TN:["216","00","[2-57-9]\\d{7}",[8],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[2-57-9]"]]],0,0,0,0,0,0,[0,["3(?:001|[12]40)\\d{4}|(?:(?:[259]\\d|4[0-7])\\d|3(?:1[1-35]|6[0-4]|91))\\d{5}"]]],TO:["676","00","(?:0800|(?:[5-8]\\d\\d|999)\\d)\\d{3}|[2-8]\\d{4}",[5,7],[["(\\d{2})(\\d{3})","$1-$2",["[2-4]|50|6[09]|7[0-24-69]|8[05]"]],["(\\d{4})(\\d{3})","$1 $2",["0"]],["(\\d{3})(\\d{4})","$1 $2",["[5-9]"]]],0,0,0,0,0,0,[0,["(?:55[4-6]|6(?:[09]\\d|3[02]|8[15-9])|(?:7\\d|8[46-9])\\d|999)\\d{4}",[7]]]],TR:["90","00","4\\d{6}|8\\d{11,12}|(?:[2-58]\\d\\d|900)\\d{7}",[7,10,12,13],[["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["512|8[01589]|90"],"0$1",1],["(\\d{3})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["5(?:[0-59]|61)","5(?:[0-59]|616)","5(?:[0-59]|6161)"],"0$1",1],["(\\d{3})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[24][1-8]|3[1-9]"],"(0$1)",1],["(\\d{3})(\\d{3})(\\d{6,7})","$1 $2 $3",["80"],"0$1",1]],"0",0,0,0,0,0,[0,["56161\\d{5}|5(?:0[15-7]|1[06]|24|[34]\\d|5[1-59]|9[46])\\d{7}",[10]]]],TT:["1","011","(?:[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([2-46-8]\\d{6})$","868$1",0,"868",[0,["868(?:(?:2[5-9]|3\\d)\\d|4(?:3[0-6]|[6-9]\\d)|6(?:20|78|8\\d)|7(?:0[1-9]|1[02-9]|[2-9]\\d))\\d{4}"]]],TV:["688","00","(?:2|7\\d\\d|90)\\d{4}",[5,6,7],[["(\\d{2})(\\d{3})","$1 $2",["2"]],["(\\d{2})(\\d{4})","$1 $2",["90"]],["(\\d{2})(\\d{5})","$1 $2",["7"]]],0,0,0,0,0,0,[0,["(?:7[01]\\d|90)\\d{4}",[6,7]]]],TW:["886","0(?:0[25-79]|19)","[2-689]\\d{8}|7\\d{9,10}|[2-8]\\d{7}|2\\d{6}",[7,8,9,10,11],[["(\\d{2})(\\d)(\\d{4})","$1 $2 $3",["202"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[258]0"],"0$1"],["(\\d)(\\d{3,4})(\\d{4})","$1 $2 $3",["[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]","[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[49]"],"0$1"],["(\\d{2})(\\d{4})(\\d{4,5})","$1 $2 $3",["7"],"0$1"]],"0",0,0,0,0,0,[0,["(?:40001[0-2]|9[0-8]\\d{4})\\d{3}",[9]]],0,"#"],TZ:["255","00[056]","(?:[25-8]\\d|41|90)\\d{7}",[9],[["(\\d{3})(\\d{2})(\\d{4})","$1 $2 $3",["[89]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[24]"],"0$1"],["(\\d{2})(\\d{7})","$1 $2",["5"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[67]"],"0$1"]],"0",0,0,0,0,0,[0,["77[2-9]\\d{6}|(?:6[125-9]|7[13-689])\\d{7}"]]],UA:["380","00","[89]\\d{9}|[3-9]\\d{8}",[9,10],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]","6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]"],"0$1"],["(\\d{4})(\\d{5})","$1 $2",["3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])","3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[3-7]|89|9[1-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["[89]"],"0$1"]],"0",0,0,0,0,0,[0,["(?:39|50|6[36-8]|7[1-3]|9[1-9])\\d{7}",[9]]],"0~0"],UG:["256","00[057]","800\\d{6}|(?:[29]0|[347]\\d)\\d{7}",[9],[["(\\d{4})(\\d{5})","$1 $2",["202","2024"],"0$1"],["(\\d{3})(\\d{6})","$1 $2",["[27-9]|4(?:6[45]|[7-9])"],"0$1"],["(\\d{2})(\\d{7})","$1 $2",["[34]"],"0$1"]],"0",0,0,0,0,0,[0,["726[01]\\d{5}|7(?:[01578]\\d|20|36|[46][0-4]|9[89])\\d{6}"]]],US:["1","011","[2-9]\\d{9}|3\\d{6}",[10],[["(\\d{3})(\\d{4})","$1-$2",["310"],0,1],["(\\d{3})(\\d{3})(\\d{4})","($1) $2-$3",["[2-9]"],0,1,"$1-$2-$3"]],"1",0,0,0,0,0,[0,["505(?:[2-57-9]\\d\\d|6(?:[0-35-9]\\d|4[46]))\\d{4}|(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[0-2]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\d{6}"]]],UY:["598","0(?:0|1[3-9]\\d)","(?:0004|4)\\d{9}|[1249]\\d{7}|(?:[49]\\d|80)\\d{5}",[7,8,10,13],[["(\\d{3})(\\d{4})","$1 $2",["405|8|90"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["9"],"0$1"],["(\\d{4})(\\d{4})","$1 $2",["[124]"]],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["4"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3 $4",["0"]]],"0",0,0,0,0,0,[0,["9[1-9]\\d{6}",[8]]],"00"," int. "],UZ:["998","810","(?:33|[5-79]\\d|88)\\d{7}",[9],[["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[35-9]"],"8 $1"]],"8",0,0,0,0,0,[0,["(?:(?:33|88|9[0-57-9])\\d{3}|5(?:0\\d{3}|5(?:50[013]|90\\d))|6(?:1(?:2(?:2[01]|98)|35[0-4]|50\\d|61[23]|7(?:[01][017]|4\\d|55|9[5-9]))|2(?:(?:11|7\\d)\\d|2(?:[12]1|9[01379])|5(?:[126]\\d|3[0-4]))|5(?:19[01]|2(?:27|9[26])|(?:30|59|7\\d)\\d)|6(?:2(?:1[5-9]|2[0367]|38|41|52|60)|(?:3[79]|9[0-3])\\d|4(?:56|83)|7(?:[07]\\d|1[017]|3[07]|4[047]|5[057]|67|8[0178]|9[79]))|7(?:2(?:24|3[237]|4[5-9]|7[15-8])|5(?:7[12]|8[0589])|7(?:0\\d|[39][07])|9(?:0\\d|7[079]))|9(?:2(?:1[1267]|3[01]|5\\d|7[0-4])|(?:5[67]|7\\d)\\d|6(?:2[0-26]|8\\d)))|7(?:[07]\\d{3}|1(?:13[01]|6(?:0[47]|1[67]|66)|71[3-69]|98\\d)|2(?:2(?:2[79]|95)|3(?:2[5-9]|6[0-6])|57\\d|7(?:0\\d|1[17]|2[27]|3[37]|44|5[057]|66|88))|3(?:2(?:1[0-6]|21|3[469]|7[159])|(?:33|9[4-6])\\d|5(?:0[0-4]|5[579]|9\\d)|7(?:[0-3579]\\d|4[0467]|6[67]|8[078]))|4(?:2(?:29|5[0257]|6[0-7]|7[1-57])|5(?:1[0-4]|8\\d|9[5-9])|7(?:0\\d|1[024589]|2[0-27]|3[0137]|[46][07]|5[01]|7[5-9]|9[079])|9(?:7[015-9]|[89]\\d))|5(?:112|2(?:0\\d|2[29]|[49]4)|3[1568]\\d|52[6-9]|7(?:0[01578]|1[017]|[23]7|4[047]|[5-7]\\d|8[78]|9[079]))|6(?:2(?:2[1245]|4[2-4])|39\\d|41[179]|5(?:[349]\\d|5[0-2])|7(?:0[017]|[13]\\d|22|44|55|67|88))|9(?:22[128]|3(?:2[0-4]|7\\d)|57[02569]|7(?:2[05-9]|3[37]|4\\d|60|7[2579]|87|9[07]))))\\d{4}"]],"8~10"],VA:["39","00","0\\d{5,10}|3[0-8]\\d{7,10}|55\\d{8}|8\\d{5}(?:\\d{2,4})?|(?:1\\d|39)\\d{7,8}",[6,7,8,9,10,11],0,0,0,0,0,0,"06698",[0,["3[1-9]\\d{8}|3[2-9]\\d{7}",[9,10]]]],VC:["1","011","(?:[58]\\d\\d|784|900)\\d{7}",[10],0,"1",0,"1|([2-7]\\d{6})$","784$1",0,"784",[0,["784(?:4(?:3[0-5]|5[45]|89|9[0-8])|5(?:2[6-9]|3[0-4])|720)\\d{4}"]]],VE:["58","00","[68]00\\d{7}|(?:[24]\\d|[59]0)\\d{8}",[10],[["(\\d{3})(\\d{7})","$1-$2",["[24-689]"],"0$1"]],"0",0,0,0,0,0,[0,["4(?:1[24-8]|2[46])\\d{7}"]]],VG:["1","011","(?:284|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([2-578]\\d{6})$","284$1",0,"284",[0,["284496[6-9]\\d{3}|284(?:245|3(?:0[0-3]|4[0-7]|68|9[34])|4(?:4[0-6]|68|99)|5(?:4[0-7]|68|9[69]))\\d{4}"]]],VI:["1","011","[58]\\d{9}|(?:34|90)0\\d{7}",[10],0,"1",0,"1|([2-9]\\d{6})$","340$1",0,"340",[0,["340(?:2(?:0[0-368]|2[06-8]|4[49]|77)|3(?:32|44)|4(?:2[23]|44|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|2[57]|7\\d)|884|998)\\d{4}"]]],VN:["84","00","[12]\\d{9}|[135-9]\\d{8}|[16]\\d{7}|[16-8]\\d{6}",[7,8,9,10],[["(\\d{2})(\\d{5})","$1 $2",["80"],"0$1",1],["(\\d{4})(\\d{4,6})","$1 $2",["1"],0,1],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[69]"],"0$1",1],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[3578]"],"0$1",1],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["2[48]"],"0$1",1],["(\\d{3})(\\d{4})(\\d{3})","$1 $2 $3",["2"],"0$1",1]],"0",0,0,0,0,0,[0,["(?:5(?:2[238]|59)|89[6-9]|99[013-9])\\d{6}|(?:3\\d|5[689]|7[06-9]|8[1-8]|9[0-8])\\d{7}",[9]]]],VU:["678","00","[57-9]\\d{6}|(?:[238]\\d|48)\\d{3}",[5,7],[["(\\d{3})(\\d{4})","$1 $2",["[57-9]"]]],0,0,0,0,0,0,[0,["(?:[58]\\d|7[013-7])\\d{5}",[7]]]],WF:["681","00","(?:40|72)\\d{4}|8\\d{5}(?:\\d{3})?",[6,9],[["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["[478]"]],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"]]],0,0,0,0,0,0,[0,["(?:72|8[23])\\d{4}",[6]]]],WS:["685","0","(?:[2-6]|8\\d{5})\\d{4}|[78]\\d{6}|[68]\\d{5}",[5,6,7,10],[["(\\d{5})","$1",["[2-5]|6[1-9]"]],["(\\d{3})(\\d{3,7})","$1 $2",["[68]"]],["(\\d{2})(\\d{5})","$1 $2",["7"]]],0,0,0,0,0,0,[0,["(?:7[1-35-7]|8(?:[3-7]|9\\d{3}))\\d{5}",[7,10]]]],XK:["383","00","[23]\\d{7,8}|(?:4\\d\\d|[89]00)\\d{5}",[8,9],[["(\\d{3})(\\d{5})","$1 $2",["[89]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[2-4]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[23]"],"0$1"]],"0",0,0,0,0,0,[0,["4[3-9]\\d{6}",[8]]]],YE:["967","00","(?:1|7\\d)\\d{7}|[1-7]\\d{6}",[7,8,9],[["(\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["[1-6]|7(?:[24-6]|8[0-7])"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["7"],"0$1"]],"0",0,0,0,0,0,[0,["7[01378]\\d{7}",[9]]]],YT:["262","00","80\\d{7}|(?:26|63)9\\d{6}",[9],0,"0",0,0,0,0,"269|63",[0,["639(?:0[0-79]|1[019]|[267]\\d|3[09]|40|5[05-9]|9[04-79])\\d{4}"]]],ZA:["27","00","[1-79]\\d{8}|8\\d{4,9}",[5,6,7,8,9,10],[["(\\d{2})(\\d{3,4})","$1 $2",["8[1-4]"],"0$1"],["(\\d{2})(\\d{3})(\\d{2,3})","$1 $2 $3",["8[1-4]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["860"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[1-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"],"0$1"]],"0",0,0,0,0,0,[0,["(?:1(?:3492[0-25]|4495[0235]|549(?:20|5[01]))|4[34]492[01])\\d{3}|8[1-4]\\d{3,7}|(?:2[27]|47|54)4950\\d{3}|(?:1(?:049[2-4]|9[12]\\d\\d)|(?:6\\d|7[0-46-9])\\d{3}|8(?:5\\d{3}|7(?:08[67]|158|28[5-9]|310)))\\d{4}|(?:1[6-8]|28|3[2-69]|4[025689]|5[36-8])4920\\d{3}|(?:12|[2-5]1)492\\d{4}",[5,6,7,8,9]]]],ZM:["260","00","800\\d{6}|(?:21|63|[79]\\d)\\d{7}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[28]"],"0$1"],["(\\d{2})(\\d{7})","$1 $2",["[79]"],"0$1"]],"0",0,0,0,0,0,[0,["(?:7[5-79]|9[5-8])\\d{7}"]]],ZW:["263","00","2(?:[0-57-9]\\d{6,8}|6[0-24-9]\\d{6,7})|[38]\\d{9}|[35-8]\\d{8}|[3-6]\\d{7}|[1-689]\\d{6}|[1-3569]\\d{5}|[1356]\\d{4}",[5,6,7,8,9,10],[["(\\d{3})(\\d{3,5})","$1 $2",["2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]"],"0$1"],["(\\d)(\\d{3})(\\d{2,4})","$1 $2 $3",["[49]"],"0$1"],["(\\d{3})(\\d{4})","$1 $2",["80"],"0$1"],["(\\d{2})(\\d{7})","$1 $2",["24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2","2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)","2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)"],"0$1"],["(\\d{4})(\\d{6})","$1 $2",["8"],"0$1"],["(\\d{2})(\\d{3,5})","$1 $2",["1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["29[013-9]|39|54"],"0$1"],["(\\d{4})(\\d{3,5})","$1 $2",["(?:25|54)8","258|5483"],"0$1"]],"0",0,0,0,0,0,[0,["7(?:[178]\\d|3[1-9])\\d{6}",[9]]]]},nonGeographic:{800:["800",0,"(?:00|[1-9]\\d)\\d{6}",[8],[["(\\d{4})(\\d{4})","$1 $2",["\\d"]]],0,0,0,0,0,0,[0,0,["(?:00|[1-9]\\d)\\d{6}"]]],808:["808",0,"[1-9]\\d{7}",[8],[["(\\d{4})(\\d{4})","$1 $2",["[1-9]"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,0,["[1-9]\\d{7}"]]],870:["870",0,"7\\d{11}|[35-7]\\d{8}",[9,12],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[35-7]"]]],0,0,0,0,0,0,[0,["(?:[356]|774[45])\\d{8}|7[6-8]\\d{7}"]]],878:["878",0,"10\\d{10}",[12],[["(\\d{2})(\\d{5})(\\d{5})","$1 $2 $3",["1"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,["10\\d{10}"]]],881:["881",0,"[0-36-9]\\d{8}",[9],[["(\\d)(\\d{3})(\\d{5})","$1 $2 $3",["[0-36-9]"]]],0,0,0,0,0,0,[0,["[0-36-9]\\d{8}"]]],882:["882",0,"[13]\\d{6}(?:\\d{2,5})?|[19]\\d{7}|(?:[25]\\d\\d|4)\\d{7}(?:\\d{2})?",[7,8,9,10,11,12],[["(\\d{2})(\\d{5})","$1 $2",["16|342"]],["(\\d{2})(\\d{6})","$1 $2",["49"]],["(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["1[36]|9"]],["(\\d{2})(\\d{4})(\\d{3})","$1 $2 $3",["3[23]"]],["(\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3",["16"]],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["10|23|3(?:[15]|4[57])|4|51"]],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["34"]],["(\\d{2})(\\d{4,5})(\\d{5})","$1 $2 $3",["[1-35]"]]],0,0,0,0,0,0,[0,["342\\d{4}|(?:337|49)\\d{6}|(?:3(?:2|47|7\\d{3})|50\\d{3})\\d{7}",[7,8,9,10,12]],0,0,0,0,0,0,["1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\d{4}|6\\d{5,10})|(?:345\\d|9[89])\\d{6}|(?:10|2(?:3|85\\d)|3(?:[15]|[69]\\d\\d)|4[15-8]|51)\\d{8}"]]],883:["883",0,"(?:[1-4]\\d|51)\\d{6,10}",[8,9,10,11,12],[["(\\d{3})(\\d{3})(\\d{2,8})","$1 $2 $3",["[14]|2[24-689]|3[02-689]|51[24-9]"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["510"]],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["21"]],["(\\d{4})(\\d{4})(\\d{4})","$1 $2 $3",["51[13]"]],["(\\d{3})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["[235]"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,["(?:2(?:00\\d\\d|10)|(?:370[1-9]|51\\d0)\\d)\\d{7}|51(?:00\\d{5}|[24-9]0\\d{4,7})|(?:1[013-79]|2[24-689]|3[02-689]|4[0-4])0\\d{5,9}"]]],888:["888",0,"\\d{11}",[11],[["(\\d{3})(\\d{3})(\\d{5})","$1 $2 $3"]],0,0,0,0,0,0,[0,0,0,0,0,0,["\\d{11}"]]],979:["979",0,"[1359]\\d{8}",[9],[["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["[1359]"]]],0,0,0,0,0,0,[0,0,0,["[1359]\\d{8}"]]]}};function n(d,$){var t=Array.prototype.slice.call($);return t.push(e),d.apply(this,t)}}}]);
//# sourceMappingURL=765.prod.js.map
\ No newline at end of file
diff --git a/umd/765.prod.js.map b/umd/765.prod.js.map
index 0a78f656..4d61b912 100644
--- a/umd/765.prod.js.map
+++ b/umd/765.prod.js.map
@@ -1 +1 @@
-{"version":3,"file":"765.prod.js","mappings":"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AAK,YAAY,GAAK,YAAY,GAAK,aAAa,GAAK,aAAa,GAAK,YAAY,GAAK,WAAW,GAAK,YAAY,GAAK,cAAc,GAAK,aAAa,GAAK,YAAY,GAAK,YAAY,GAAK,UAAU,GAAK,YAAY,GAAK,YAAY,GAAK,WAAW,GAAK,aAAa,GAAK,aAAa,GAAK,YAAY,GAAK,WAAW,GAAK,WAAW,GAAK,WAAW,GAAK,WAAW,GAAK,WAAW,GAAK,YAAY,GAAK,aAAa,GAAK,UAAU,GAAK,WAAW,GAAK,UAAU,GAAK,cAAc,GAAK,aAAa,GAAK,WAAW,GAAK,WAAW,GAAK,YAAY,GAAK,UAAU,GAAK,aAAa,GAAK,YAAY,GAAK,YAAY,GAAK,WAAW,GAAK,YAAY,GAAK,YAAY,GAAK,aAAa,GAAK,QAAQ,GAAK,YAAY,GAAK,YAAY,GAAK,cAAc,GAAK,aAAa,GAAK,WAAW,GAAK,WAAW,GAAK,UAAU,GAAK,WAAW,GAAK,YAAY,GAAK,WAAW,GAAK,YAAY,GAAK,cAAc,GAAK,WAAW,GAAK,WAAW,GAAK,aAAa,GAAK,aAAa,GAAK,YAAY,GAAK,YAAY,GAAK,WAAW,GAAK,aAAa,GAAK,YAAY,GAAK,UAAU,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,UAAU,GAAK,QAAQ,GAAK,UAAU,GAAK,SAAS,GAAK,YAAY,GAAK,WAAW,GAAK,aAAa,GAAK,aAAa,GAAK,YAAY,GAAK,YAAY,GAAK,aAAa,GAAK,YAAY,GAAK,WAAW,GAAK,SAAS,GAAK,UAAU,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,aAAa,GAAK,WAAW,GAAK,aAAa,GAAK,YAAY,GAAK,UAAU,GAAK,WAAW,GAAK,WAAW,GAAK,YAAY,GAAK,WAAW,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,aAAa,GAAK,aAAa,GAAK,UAAU,GAAK,aAAa,GAAK,aAAa,GAAK,UAAU,GAAK,aAAa,GAAK,aAAa,GAAK,aAAa,GAAK,YAAY,GAAK,aAAa,GAAK,YAAY,GAAK,YAAY,GAAK,WAAW,GAAK,WAAW,GAAK,UAAU,GAAK,aAAa,GAAK,aAAa,GAAK,aAAa,GAAK,WAAW,GAAK,aAAa,GAAK,aAAa,GAAK,aAAa,GAAK,WAAW,GAAK,aAAa,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,WAAW,GAAK,WAAW,GAAK,YAAY,GAAK,WAAW,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,WAAW,GAAK,WAAW,GAAK,YAAY,GAAK,YAAY,GAAK,UAAU,GAAK,WAAW,GAAK,WAAW,GAAK,WAAW,GAAK,WAAW,GAAK,WAAW,GAAK,aAAa,GAAK,YAAY,GAAK,WAAW,GAAK,aAAa,GAAK,WAAW,GAAK,WAAW,GAAK,UAAU,GAAK,YAAY,GAAK,cAAc,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,SAAS,GAAK,WAAW,GAAK,SAAS,GAAK,aAAa,GAAK,WAAW,GAAK,YAAY,GAAK,WAAW,GAAK,aAAa,GAAK,UAAU,GAAK,UAAU,GAAK,YAAY,GAAK,WAAW,GAAK,WAAW,GAAK,YAAY,GAAK,WAAW,GAAK,WAAW,GAAK,aAAa,GAAK,aAAa,GAAK,YAAY,GAAK,SAAS,GAAK,aAAa,GAAK,YAAY,GAAK,YAAY,GAAK,UAAU,GAAK,YAAY,GAAK,WAAW,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,aAAa,GAAK,YAAY,GAAK,YAAY,GAAK,UAAU,GAAK,UAAU,GAAK,YAAY,GAAK,YAAY,GAAK,WAAW,GAAK,QAAQ,GAAK,WAAW,GAAK,WAAW,GAAK,YAAY,GAAK,WAAW,GAAK,WAAW,GAAK,YAAY,GAAK,WAAW,GAAK,UAAU,GAAK,YAAY,GAAK,UAAU,GAAK,WAAW,GAAK,aAAa,GAAK,YAAY,GAAK,WAAW,GAAK,OAAO,GAAK,aAAa,GAAK,WAAW,GAAK,WAAW,GAAK,YAAY,GAAK,YAAY,GAAK,OAAO,GAAK,WAAW,GAAK,WAAW,GAAK,WAAW,GAAK,UAAU,GAAK,aAAa,GAAK,aAAa,GAAK,SAAS,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,aAAa,GAAK,WAAW,GAAK,YAAY,GAAK,aAAa,GAAK,aAAa,GAAK,aAAa,GAAK,aAAa,GAAK,aAAa,GAAK,YAAY,GAAK,UAAU,GAAK,SAAS,GAAK,UAAU,GAAK,WAAW,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,Y,0DCFn9H,SAASmC,EAAiBtP,EAASuP,EAAU3P,GAC1D,GAAI2P,EAASvP,GACX,OAAO,IAAIuH,EAAA,EAAYvH,EAASuP,EAASvP,GAAUJ,EAEvD,CCFO,SAAS,IACf,OAAO,EAAA4P,EAAA,GAAqB,EAAmBnL,UAChD,C,0DCLA,SAASiI,EAAQzH,GAAkC,OAAOyH,EAAU,mBAAqBxK,QAAU,iBAAmBA,OAAOC,SAAW,SAAU8C,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqB/C,QAAU+C,EAAIjC,cAAgBd,QAAU+C,IAAQ/C,OAAOW,UAAY,gBAAkBoC,CAAK,EAAGyH,EAAQzH,EAAM,CAE/U,SAASuC,EAAkBhD,EAAQiD,GAAS,IAAK,IAAIpE,EAAI,EAAGA,EAAIoE,EAAM/G,OAAQ2C,IAAK,CAAE,IAAIqE,EAAaD,EAAMpE,GAAIqE,EAAWtD,WAAasD,EAAWtD,aAAc,EAAOsD,EAAWxC,cAAe,EAAU,UAAWwC,IAAYA,EAAWvC,UAAW,GAAMvC,OAAOoC,eAAeR,EAAQkD,EAAW9C,IAAK8C,EAAa,CAAE,CAU5T,SAASmI,EAA2BC,EAAM1N,GAAQ,GAAIA,IAA2B,WAAlBsK,EAAQtK,IAAsC,mBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAIoB,UAAU,4DAA+D,OAAOuM,EAAuBD,EAAO,CAE/R,SAASC,EAAuBD,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIE,eAAe,6DAAgE,OAAOF,CAAM,CAErK,SAASG,EAAiBC,GAAS,IAAIC,EAAwB,mBAARC,IAAqB,IAAIA,SAAQ3J,EAA8nB,OAAnnBwJ,EAAmB,SAA0BC,GAAS,GAAc,OAAVA,IAMlIG,EANuKH,GAMjG,IAAzDI,SAASxN,SAASV,KAAKiO,GAAI5P,QAAQ,kBAN+H,OAAOyP,EAMjN,IAA2BG,EAN6L,GAAqB,mBAAVH,EAAwB,MAAM,IAAI1M,UAAU,sDAAyD,QAAsB,IAAX2M,EAAwB,CAAE,GAAIA,EAAOI,IAAIL,GAAQ,OAAOC,EAAOK,IAAIN,GAAQC,EAAOM,IAAIP,EAAOQ,EAAU,CAAE,SAASA,IAAY,OAAOC,EAAWT,EAAOzL,UAAWmM,EAAgB7I,MAAM/E,YAAc,CAAkJ,OAAhJ0N,EAAQ7N,UAAYD,OAAOiO,OAAOX,EAAMrN,UAAW,CAAEG,YAAa,CAAEO,MAAOmN,EAAStM,YAAY,EAAOe,UAAU,EAAMD,cAAc,KAAkB4L,EAAgBJ,EAASR,EAAQ,EAAUD,EAAiBC,EAAQ,CAEtvB,SAASS,EAAWI,EAAQC,EAAMd,GAAqV,OAAzSS,EAA/BM,IAA4CC,QAAQC,UAAiC,SAAoBJ,EAAQC,EAAMd,GAAS,IAAI1F,EAAI,CAAC,MAAOA,EAAEnG,KAAKC,MAAMkG,EAAGwG,GAAO,IAAsDpJ,EAAW,IAA/C0I,SAAShO,KAAKgC,MAAMyM,EAAQvG,IAA6F,OAAnD0F,GAAOY,EAAgBlJ,EAAUsI,EAAMrN,WAAmB+E,CAAU,EAAY+I,EAAWrM,MAAM,KAAMG,UAAY,CAEja,SAASwM,IAA8B,GAAuB,oBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,mBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQzO,UAAU0O,QAAQnP,KAAK8O,QAAQC,UAAUG,QAAS,IAAI,WAAa,MAAY,CAAkC,CAA1B,MAAOE,GAAK,OAAO,CAAO,CAAE,CAIxU,SAASV,EAAgB/O,EAAG0P,GAA+G,OAA1GX,EAAkBlO,OAAO8O,gBAAkB,SAAyB3P,EAAG0P,GAAsB,OAAjB1P,EAAE4P,UAAYF,EAAU1P,CAAG,EAAU+O,EAAgB/O,EAAG0P,EAAI,CAEzK,SAASb,EAAgB7O,GAAwJ,OAAnJ6O,EAAkBhO,OAAO8O,eAAiB9O,OAAOgP,eAAiB,SAAyB7P,GAAK,OAAOA,EAAE4P,WAAa/O,OAAOgP,eAAe7P,EAAI,EAAU6O,EAAgB7O,EAAI,CAO5M,IAAI8P,EAA0B,SAAUC,IAzBxC,SAAmBC,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIxO,UAAU,sDAAyDuO,EAASlP,UAAYD,OAAOiO,OAAOmB,GAAcA,EAAWnP,UAAW,CAAEG,YAAa,CAAEO,MAAOwO,EAAU5M,UAAU,EAAMD,cAAc,KAAWtC,OAAOoC,eAAe+M,EAAU,YAAa,CAAE5M,UAAU,IAAc6M,GAAYlB,EAAgBiB,EAAUC,EAAa,CA0BjcC,CAAUJ,EAAYC,GAEtB,IA1BoBI,EAAeC,EANftK,EAAaI,EAAYC,EAgCzCkK,GA1BgBF,EA0BML,EA1BSM,EAA4BlB,IAAoC,WAAkC,IAAsCjH,EAAlCqI,EAAQzB,EAAgBsB,GAAkB,GAAIC,EAA2B,CAAE,IAAIG,EAAY1B,EAAgB7I,MAAM/E,YAAagH,EAASkH,QAAQC,UAAUkB,EAAO5N,UAAW6N,EAAY,MAAStI,EAASqI,EAAM/N,MAAMyD,KAAMtD,WAAc,OAAOoL,EAA2B9H,KAAMiC,EAAS,GA4Bna,SAAS6H,EAAWU,GAClB,IAAI9D,EASJ,OA1CJ,SAAyB7G,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIrE,UAAU,oCAAwC,CAmCpJsE,CAAgBC,KAAM8J,GAEtBpD,EAAQ2D,EAAOhQ,KAAK2F,KAAMwK,GAG1B3P,OAAO8O,eAAe3B,EAAuBtB,GAAQoD,EAAWhP,WAChE4L,EAAMxL,KAAOwL,EAAMzL,YAAYC,KACxBwL,CACT,CAEA,OA/CoB5G,EA+CAgK,EA/C4C5J,GAAYT,EAAkBK,EAAYhF,UAAWoF,GAAiBC,GAAaV,EAAkBK,EAAaK,GAActF,OAAOoC,eAAe6C,EAAa,YAAa,CAAE1C,UAAU,IAAiB0C,CAgD/Q,CAnB8B,CAmBdoI,EAAiBrK,Q,8BCjD7B4M,EAAe,IAAIlR,OAAO,OAAQ,EAAA4J,EAAA,KAA2B,KAAM,KCShE,IAAIuH,EAAS,CAClB,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,IAAU,IAEV,IAAU,IAEV,IAAU,IAEV,IAAU,IAEV,IAAU,IAEV,IAAU,IAEV,IAAU,IAEV,IAAU,IAEV,IAAU,IAEV,IAAU,IAEV,IAAU,IAEV,IAAU,IAEV,IAAU,IAEV,IAAU,IAEV,IAAU,IAEV,IAAU,IAEV,IAAU,IAEV,IAAU,IAEV,IAAU,IAEV,IAAU,IAEV,IAAU,IAEV,IAAU,IAEV,IAAU,IAEV,IAAU,IAEV,IAAU,IAEV,IAAU,IAEV,IAAU,IAEV,IAAU,IAEV,IAAU,IAEV,IAAU,KAGL,SAASC,EAAWC,GACzB,OAAOF,EAAOE,EAChB,CCtFA,SAAS,EAAgC5Q,EAAGC,GAAkB,IAAIC,EAAuB,oBAAXC,QAA0BH,EAAEG,OAAOC,WAAaJ,EAAE,cAAe,GAAIE,EAAI,OAAQA,EAAKA,EAAGG,KAAKL,IAAIM,KAAKC,KAAKL,GAAK,GAAIM,MAAMC,QAAQT,KAAOE,EAExN,SAAqCF,EAAGU,GAAU,IAAKV,EAAG,OAAQ,GAAiB,iBAANA,EAAgB,OAAO,EAAkBA,EAAGU,GAAS,IAAIE,EAAIC,OAAOC,UAAUC,SAASV,KAAKL,GAAGgB,MAAM,GAAI,GAAc,WAANJ,GAAkBZ,EAAEiB,cAAaL,EAAIZ,EAAEiB,YAAYC,MAAM,GAAU,QAANN,GAAqB,QAANA,EAAa,OAAOJ,MAAMW,KAAKnB,GAAI,GAAU,cAANY,GAAqB,2CAA2CQ,KAAKR,GAAI,OAAO,EAAkBZ,EAAGU,EAAS,CAFlM,CAA4BV,KAAOC,GAAkBD,GAAyB,iBAAbA,EAAErB,OAAqB,CAAMuB,IAAIF,EAAIE,GAAI,IAAIoB,EAAI,EAAG,OAAO,WAAc,OAAIA,GAAKtB,EAAErB,OAAe,CAAE4C,MAAM,GAAe,CAAEA,MAAM,EAAOC,MAAOxB,EAAEsB,KAAQ,CAAG,CAAE,MAAM,IAAIG,UAAU,wIAA0I,CAI3lB,SAAS,EAAkBC,EAAKC,IAAkB,MAAPA,GAAeA,EAAMD,EAAI/C,UAAQgD,EAAMD,EAAI/C,QAAQ,IAAK,IAAI2C,EAAI,EAAGM,EAAO,IAAIpB,MAAMmB,GAAML,EAAIK,EAAKL,IAAOM,EAAKN,GAAKI,EAAIJ,GAAM,OAAOM,CAAM,CAmBvK,SAASiP,EAA2BC,GAQjD,IAPA,IAOwE/L,EAPpEkD,EAAS,GAOJjD,EAAY,EAAgC8L,EAAO/I,MAAM,OAAehD,EAAQC,KAAazD,MAAO,CAE3G0G,GAAU8I,EADMhM,EAAMvD,MACyByG,IAAW,EAC5D,CAEA,OAAOA,CACT,CAaO,SAAS8I,EAA0BH,EAAWI,GAEnD,GAAkB,MAAdJ,EAAmB,CAGrB,GAAII,EACF,OAGF,MAAO,GACT,CAGA,OAAOL,EAAWC,EACpB,C,2CC9DIK,EAA0B,IAAI1R,OAAO,KAAO,KAAe,M,cCWhD,SAAS2R,EAAsBnS,EAAQd,GAUpD,IAAIkT,ECVS,SAA2DpS,EAAQd,GAChF,GAAIc,GAAUd,EAASO,cAAc2N,2BAA4B,CAI/D,IAAIiF,EAAgB,IAAI7R,OAAO,OAAStB,EAASO,cAAc2N,2BAA6B,KACxFkF,EAAcD,EAAcE,KAAKvS,GAErC,GAAIsS,EAAa,CACf,IAAIrT,EACAqB,EAqDAmG,EApCA+L,EAAsBF,EAAY1S,OAAS,EAC3C6S,EAAoBD,EAAsB,GAAKF,EAAYE,GAE/D,GAAItT,EAASmO,+BAAiCoF,EAC5CxT,EAAiBe,EAAOO,QAAQ8R,EAAenT,EAASmO,+BAGpDmF,EAAsB,IACxBlS,EAAcgS,EAAY,QAQzB,CAMH,IAAII,EAA6BJ,EAAY,GAC7CrT,EAAiBe,EAAOiC,MAAMyQ,EAA2B9S,QAGrD6S,IACFnS,EAAcgS,EAAY,GAE9B,CASA,GAAIG,EAAmB,CACrB,IAAIE,EAA0C3S,EAAOL,QAAQ2S,EAAY,IAC5CtS,EAAOiC,MAAM,EAAG0Q,KAOdzT,EAASO,cAAcgH,mBACpDA,EAAiBvH,EAASO,cAAcgH,iBAE5C,MACEA,EAAiB6L,EAAY,GAG/B,MAAO,CACLrT,eAAgBA,EAChBwH,eAAgBA,EAChBnG,YAAaA,EAEjB,CACF,CAEA,MAAO,CACLrB,eAAgBe,EAEpB,CDlF8B4S,CAAkD5S,EAAQd,GAClFoB,EAAc8R,EAAsB9R,YACpCrB,EAAiBmT,EAAsBnT,eAE3C,GAAIA,IAAmBe,EAAQ,CAC7B,IA8CJ,SAA2C6S,EAAsBC,EAAqB5T,GAGpF,IAAI,EAAAmH,EAAA,GAAgBwM,EAAsB3T,EAASsI,4BAA6B,EAAAnB,EAAA,GAAgByM,EAAqB5T,EAASsI,yBAC5H,OAAO,EAgBT,OAAO,CACT,CAnESuL,CAAkC/S,EAAQf,EAAgBC,GAE7D,MAAO,CACLD,eAAgBe,GAMpB,GAAId,EAASQ,oBA4DjB,SAA4CT,EAAgBC,GAC1D,QAAQ,EAAAkK,EAAA,GAAkBnK,EAAgBC,IACxC,IAAK,YACL,IAAK,iBAIH,OAAO,EAET,QACE,OAAO,EAEb,CA/DW8T,CAAmC/T,EAAgBC,GAEtD,MAAO,CACLD,eAAgBe,EAIxB,CAEA,MAAO,CACLf,eAAgBA,EAChBqB,YAAaA,EAEjB,CEpCe,SAAS2S,EAA0BjT,EAAQV,EAASN,EAAaE,GAC9E,IAAKc,EACH,MAAO,CAAC,EAUV,GAAkB,MAAdA,EAAO,GAAY,CAGrB,IAAIkT,EHnCO,SAAwBlT,EAAQV,EAASN,EAAaE,GACnE,GAAKI,EAAL,CAKA,IAAIiG,EAAkB,IAAI,KAASrG,GACnCqG,EAAgB/F,oBAAoBF,EAASN,GAC7C,IAAImU,EAAmB,IAAI3S,OAAO+E,EAAgBE,aAElD,GAAwC,IAApCzF,EAAOoG,OAAO+M,GAAlB,CAUA,IAAIC,GALJpT,EAASA,EAAOiC,MAAMjC,EAAOqT,MAAMF,GAAkB,GAAGvT,SAK7ByT,MAAMnB,GAEjC,KAAIkB,GAAqC,MAApBA,EAAc,IAAcA,EAAc,GAAGxT,OAAS,GAChD,MAArBwT,EAAc,IAKpB,OAAOpT,CAhBP,CATA,CA0BF,CGM2BsT,CAAetT,EAAQV,EAASN,EAAaE,GAIpE,IAAIgU,GAAoBA,IAAqBlT,EAEtC,CAKL,GAAIV,GAAWN,EAAa,CAC1B,IAAIuU,ECnCG,SAAyEvT,EAAQV,EAASN,EAAaE,GACpH,IAAI6F,EAAqBzF,GAAU,QAAsBA,EAASJ,GAAYF,EAE9E,GAA2C,IAAvCgB,EAAOL,QAAQoF,GAA2B,EAC5C7F,EAAW,IAAI,KAASA,IACfM,oBAAoBF,EAASN,GACtC,IAAIwU,EAAwBxT,EAAOiC,MAAM8C,EAAmBnF,QAGxD6T,EADwBtB,EAAsBqB,EAAuBtU,GACfD,eAGtDA,EADyBkT,EAAsBnS,EAAQd,GACfD,eAU5C,KAAK,EAAAoH,EAAA,GAAgBpH,EAAgBC,EAASsI,2BAA4B,EAAAnB,EAAA,GAAgBoN,EAA+BvU,EAASsI,0BAA4E,cAAhD,EAAA4B,EAAA,GAAkBnK,EAAgBC,GAC9L,MAAO,CACL6F,mBAAoBA,EACpB/E,OAAQwT,EAGd,CAEA,MAAO,CACLxT,OAAQA,EAEZ,CDEoC0T,CAAgE1T,EAAQV,EAASN,EAAaE,GACtH6F,EAAqBwO,EAAsBxO,mBAC3C4O,EAAgBJ,EAAsBvT,OAE1C,GAAI+E,EACF,MAAO,CACLA,mBAAoBA,EACpB/E,OAAQ2T,EAGd,CAEA,MAAO,CACL3T,OAAQA,EAEZ,CAtBEA,EAAS,IAAMkT,CAuBnB,CAGA,GAAkB,MAAdlT,EAAO,GACT,MAAO,CAAC,EAGVd,EAAW,IAAI,KAASA,GAYxB,IAFA,IAAIqD,EAAI,EAEDA,EAAI,GAAK,MAA2BA,GAAKvC,EAAOJ,QAAQ,CAC7D,IAAIgU,EAAsB5T,EAAOiC,MAAM,EAAGM,GAE1C,GAAIrD,EAAS+N,eAAe2G,GAE1B,OADA1U,EAASM,oBAAoBoU,GACtB,CACL7O,mBAAoB6O,EACpB5T,OAAQA,EAAOiC,MAAMM,IAIzBA,GACF,CAEA,MAAO,CAAC,CACV,C,cEpGA,SAAS,EAAgCtB,EAAGC,GAAkB,IAAIC,EAAuB,oBAAXC,QAA0BH,EAAEG,OAAOC,WAAaJ,EAAE,cAAe,GAAIE,EAAI,OAAQA,EAAKA,EAAGG,KAAKL,IAAIM,KAAKC,KAAKL,GAAK,GAAIM,MAAMC,QAAQT,KAAOE,EAExN,SAAqCF,EAAGU,GAAU,IAAKV,EAAG,OAAQ,GAAiB,iBAANA,EAAgB,OAAO,EAAkBA,EAAGU,GAAS,IAAIE,EAAIC,OAAOC,UAAUC,SAASV,KAAKL,GAAGgB,MAAM,GAAI,GAAc,WAANJ,GAAkBZ,EAAEiB,cAAaL,EAAIZ,EAAEiB,YAAYC,MAAM,GAAU,QAANN,GAAqB,QAANA,EAAa,OAAOJ,MAAMW,KAAKnB,GAAI,GAAU,cAANY,GAAqB,2CAA2CQ,KAAKR,GAAI,OAAO,EAAkBZ,EAAGU,EAAS,CAFlM,CAA4BV,KAAOC,GAAkBD,GAAyB,iBAAbA,EAAErB,OAAqB,CAAMuB,IAAIF,EAAIE,GAAI,IAAIoB,EAAI,EAAG,OAAO,WAAc,OAAIA,GAAKtB,EAAErB,OAAe,CAAE4C,MAAM,GAAe,CAAEA,MAAM,EAAOC,MAAOxB,EAAEsB,KAAQ,CAAG,CAAE,MAAM,IAAIG,UAAU,wIAA0I,CAI3lB,SAAS,EAAkBC,EAAKC,IAAkB,MAAPA,GAAeA,EAAMD,EAAI/C,UAAQgD,EAAMD,EAAI/C,QAAQ,IAAK,IAAI2C,EAAI,EAAGM,EAAO,IAAIpB,MAAMmB,GAAML,EAAIK,EAAKL,IAAOM,EAAKN,GAAKI,EAAIJ,GAAM,OAAOM,CAAM,CCFvK,SAASgR,EAAwB7U,EAAa8U,EAAqB5U,GAQhF,IAAIC,EAAoBD,EAASE,8BAA8BJ,GAE/D,GAAKG,EAML,OAAiC,IAA7BA,EAAkBS,OACbT,EAAkB,GDXd,SAAoCA,EAAmB2U,EAAqB5U,GAEzFA,EAAW,IAAI,KAASA,GAExB,IAAK,IAAoE8G,EAAhEC,EAAY,EAAgC9G,KAA6B6G,EAAQC,KAAazD,MAAO,CAC5G,IAAIlD,EAAU0G,EAAMvD,MAOpB,GANAvD,EAASI,QAAQA,GAMbJ,EAASoO,iBACX,GAAIwG,GAAgF,IAAzDA,EAAoB1N,OAAOlH,EAASoO,iBAC7D,OAAOhO,OAIN,IAAI,EAAAgI,EAAA,GAAc,CACrBtC,MAAO8O,EACPxU,QAASA,QACRqG,EAAWzG,EAASA,UACrB,OAAOI,CAEX,CACF,CCXSyU,CAA2B5U,EAAmB2U,EAAqB5U,EAASA,SACrF,CCDA,IAEI8U,EAA6B,IAAIxT,OAAO,IAAM,KAAa,KAAe,KAI1EyT,EAAiC,IAAIzT,OAAO,KAAO,KAAP,QAajC,SAAS0T,EAAMnL,EAAMnE,EAAS1F,GAM3C,GAHA0F,EAAUA,GAAW,CAAC,EACtB1F,EAAW,IAAI,KAASA,GAEpB0F,EAAQuP,iBAAmBjV,EAAS2F,WAAWD,EAAQuP,gBAAiB,CAC1E,GAAIvP,EAAQK,GACV,MAAM,IAAI8L,EAAW,mBAGvB,MAAM,IAAIjM,MAAM,oBAAoBlE,OAAOgE,EAAQuP,gBACrD,CAGA,IAAIC,EAsJN,SAAoBrL,EAAM9D,EAAIoP,GAE5B,GAAItL,GAAiC,IAAzBA,EAAKpJ,QAAQ,QACvB,OAAO,OAAaoJ,GAGtB,IAAI/I,EA1CN,SAAqC+I,EAAMsL,EAASC,GAClD,IAAKvL,EACH,OAGF,GAAIA,EAAKnJ,OAzJmB,IAyJe,CACzC,GAAI0U,EACF,MAAM,IAAIvD,EAAW,YAGvB,MACF,CAEA,IAAgB,IAAZsD,EACF,OAAOtL,EAIT,IAAIwL,EAAWxL,EAAK3C,OAAO4N,GAE3B,GAAIO,EAAW,EACb,OAGF,OAAOxL,EACN9G,MAAMsS,GACNhU,QAAQ0T,EAAgC,GAC3C,CAeeO,CAA4BzL,EAAMsL,EAASpP,GAExD,IAAKjF,EACH,MAAO,CAAC,EAGV,KAAK,EAAAiL,EAAA,IAAoBjL,GACvB,OAAI,EAAAiL,EAAA,IAAyBjL,GACpB,CACLyU,MAAO,aAIJ,CAAC,EAKV,IAAIC,EV/NS,SAA0B1U,GACvC,IAAI2U,EAAQ3U,EAAOoG,OAAOsL,GAE1B,GAAIiD,EAAQ,EACV,MAAO,CAAC,EASV,IAJA,IAAIC,EAAyB5U,EAAOiC,MAAM,EAAG0S,GACzCE,EAAU7U,EAAOqT,MAAM3B,GACvBnP,EAAI,EAEDA,EAAIsS,EAAQjV,QAAQ,CACzB,GAAIiV,EAAQtS,GACV,MAAO,CACLvC,OAAQ4U,EACRnQ,IAAKoQ,EAAQtS,IAIjBA,GACF,CACF,CUwM8BuS,CAAiB9U,GAE7C,GAAI0U,EAAsBjQ,IACxB,OAAOiQ,EAGT,MAAO,CACL1U,OAAQA,EAEZ,CAvLoB+U,CAAWhM,EAAMnE,EAAQK,GAAIL,EAAQyP,SACnDW,EAAuBZ,EAAYpU,OACnCyE,EAAM2P,EAAY3P,IAClBgQ,EAAQL,EAAYK,MAGxB,IAAKO,EAAsB,CACzB,GAAIpQ,EAAQK,GAAI,CACd,GAAc,cAAVwP,EACF,MAAM,IAAI1D,EAAW,aAGvB,MAAM,IAAIA,EAAW,eACvB,CAEA,MAAO,CAAC,CACV,CAEA,IAAIkE,EAiMN,SAA0BD,EAAsBb,EAAgBe,EAAoBhW,GAElF,IAKII,EALAiU,EAAwBN,EAA0BnB,EAA2BkD,GAAuBb,EAAgBe,EAAoBhW,EAASA,UACjJ6F,EAAqBwO,EAAsBxO,mBAC3C/E,EAASuT,EAAsBvT,OAKnC,GAAI+E,EACF7F,EAASM,oBAAoBuF,OAG1B,KAAI/E,IAAWmU,IAAkBe,EAe/B,MAAO,CAAC,EAdbhW,EAASM,oBAAoB2U,EAAgBe,GAEzCf,IACF7U,EAAU6U,GAUZpP,EAAqBmQ,IAAsB,QAAsBf,EAAgBjV,EAASA,SAC5E,CAEhB,IAAKc,EACH,MAAO,CACL+E,mBAAoBA,GAIxB,IAAIqN,EAAwBD,EAAsBL,EAA2B9R,GAASd,GAClFD,EAAiBmT,EAAsBnT,eACvCqB,EAAc8R,EAAsB9R,YAYpC6U,EAAetB,EAAwB9O,EAAoB9F,EAAgBC,GAE3EiW,IACF7V,EAAU6V,EAGW,QAAjBA,GAIFjW,EAASI,QAAQA,IAIrB,MAAO,CACLA,QAASA,EACTyF,mBAAoBA,EACpB9F,eAAgBA,EAChBqB,YAAaA,EAEjB,CAvQ0B8U,CAAiBJ,EAAsBpQ,EAAQuP,eAAgBvP,EAAQsQ,mBAAoBhW,GAC/GI,EAAU2V,EAAkB3V,QAC5BL,EAAiBgW,EAAkBhW,eACnC8F,EAAqBkQ,EAAkBlQ,mBACvCzE,EAAc2U,EAAkB3U,YAEpC,IAAKpB,EAASmW,2BAA4B,CACxC,GAAIzQ,EAAQK,GACV,MAAM,IAAI8L,EAAW,mBAGvB,MAAO,CAAC,CACV,CAGA,IAAK9R,GAAkBA,EAAeW,OAAS,KAAoB,CAIjE,GAAIgF,EAAQK,GACV,MAAM,IAAI8L,EAAW,aAIvB,MAAO,CAAC,CACV,CAWA,GAAI9R,EAAeW,OAAS,KAAoB,CAC9C,GAAIgF,EAAQK,GACV,MAAM,IAAI8L,EAAW,YAIvB,MAAO,CAAC,CACV,CAEA,GAAInM,EAAQK,GAAI,CACd,IAAI0C,EAAc,IAAId,EAAA,EAAY9B,EAAoB9F,EAAgBC,EAASA,UAc/E,OAZII,IACFqI,EAAYrI,QAAUA,GAGpBgB,IACFqH,EAAYrH,YAAcA,GAGxBmE,IACFkD,EAAYlD,IAAMA,GAGbkD,CACT,CAKA,IAAI2N,KAAS1Q,EAAQ2Q,SAAWrW,EAASmW,2BAA6B/V,KAAW,EAAA+G,EAAA,GAAgBpH,EAAgBC,EAASsI,yBAE1H,OAAK5C,EAAQ2Q,SAKN,CACLjW,QAASA,EACTyF,mBAAoBA,EACpBzE,YAAaA,EACbgV,MAAOA,EACPE,WAAUF,MAAoC,IAArB1Q,EAAQ2Q,WAAqBrW,EAASQ,qBAAqB,OAAiBT,EAAgBC,IACrH8F,MAAO/F,EACPwF,IAAKA,GAXE6Q,EAsGX,SAAgBhW,EAASL,EAAgBwF,GACvC,IAAIyE,EAAS,CACX5J,QAASA,EACT0F,MAAO/F,GAGLwF,IACFyE,EAAOzE,IAAMA,GAGf,OAAOyE,CACT,CAjHmBA,CAAO5J,EAASL,EAAgBwF,GAAO,CAAC,CAa3D,CC5JA,SAAS3B,EAAQC,EAAQC,GAAkB,IAAIC,EAAOnB,OAAOmB,KAAKF,GAAS,GAAIjB,OAAOoB,sBAAuB,CAAE,IAAIC,EAAUrB,OAAOoB,sBAAsBH,GAASC,IAAmBG,EAAUA,EAAQ9D,QAAO,SAAU+D,GAAO,OAAOtB,OAAOuB,yBAAyBN,EAAQK,GAAKE,UAAY,KAAKL,EAAKM,KAAKC,MAAMP,EAAME,EAAU,CAAE,OAAOF,CAAM,CAEpV,SAASQ,EAAcC,GAAU,IAAK,IAAInB,EAAI,EAAGA,EAAIoB,UAAU/D,OAAQ2C,IAAK,CAAE,IAAIqB,EAAS,MAAQD,UAAUpB,GAAKoB,UAAUpB,GAAK,CAAC,EAAGA,EAAI,EAAIO,EAAQhB,OAAO8B,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,EAAgBL,EAAQI,EAAKF,EAAOE,GAAO,IAAKhC,OAAOkC,0BAA4BlC,OAAOmC,iBAAiBP,EAAQ5B,OAAOkC,0BAA0BJ,IAAWd,EAAQhB,OAAO8B,IAASC,SAAQ,SAAUC,GAAOhC,OAAOoC,eAAeR,EAAQI,EAAKhC,OAAOuB,yBAAyBO,EAAQE,GAAO,GAAI,CAAE,OAAOJ,CAAQ,CAEzf,SAASK,EAAgBI,EAAKL,EAAKrB,GAAiK,OAApJqB,KAAOK,EAAOrC,OAAOoC,eAAeC,EAAKL,EAAK,CAAErB,MAAOA,EAAOa,YAAY,EAAMc,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAOrB,EAAgB0B,CAAK,CAGjM,SAAS,EAAiB4E,EAAMnE,EAAS1F,GACtD,OAAOgV,EAAYnL,EAAMtF,EAAcA,EAAc,CAAC,EAAGmB,GAAU,CAAC,EAAG,CACrEK,IAAI,IACF/F,EACN,CCXA,SAAS,EAAQiF,GAAkC,OAAO,EAAU,mBAAqB/C,QAAU,iBAAmBA,OAAOC,SAAW,SAAU8C,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqB/C,QAAU+C,EAAIjC,cAAgBd,QAAU+C,IAAQ/C,OAAOW,UAAY,gBAAkBoC,CAAK,EAAG,EAAQA,EAAM,CAE/U,SAAS,EAAQpB,EAAQC,GAAkB,IAAIC,EAAOnB,OAAOmB,KAAKF,GAAS,GAAIjB,OAAOoB,sBAAuB,CAAE,IAAIC,EAAUrB,OAAOoB,sBAAsBH,GAASC,IAAmBG,EAAUA,EAAQ9D,QAAO,SAAU+D,GAAO,OAAOtB,OAAOuB,yBAAyBN,EAAQK,GAAKE,UAAY,KAAKL,EAAKM,KAAKC,MAAMP,EAAME,EAAU,CAAE,OAAOF,CAAM,CAIpV,SAAS,EAAgBkB,EAAKL,EAAKrB,GAAiK,OAApJqB,KAAOK,EAAOrC,OAAOoC,eAAeC,EAAKL,EAAK,CAAErB,MAAOA,EAAOa,YAAY,EAAMc,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAOrB,EAAgB0B,CAAK,CAEhN,SAASgE,EAAexF,EAAKJ,GAAK,OAUlC,SAAyBI,GAAO,GAAIlB,MAAMC,QAAQiB,GAAM,OAAOA,CAAK,CAV3ByF,CAAgBzF,IAQzD,SAA+BA,EAAKJ,GAAK,IAAI8F,EAAY,MAAP1F,EAAc,KAAyB,oBAAXvB,QAA0BuB,EAAIvB,OAAOC,WAAasB,EAAI,cAAe,GAAU,MAAN0F,EAAY,OAAQ,IAAkDC,EAAIC,EAAlDC,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAmB,IAAM,IAAKL,EAAKA,EAAG/G,KAAKqB,KAAQ8F,GAAMH,EAAKD,EAAG9G,QAAQiB,QAAoBgG,EAAKjF,KAAK+E,EAAG7F,QAAYF,GAAKiG,EAAK5I,SAAW2C,GAA3DkG,GAAK,GAA0M,CAAtI,MAAOE,GAAOD,GAAK,EAAMH,EAAKI,CAAK,CAAE,QAAU,IAAWF,GAAsB,MAAhBJ,EAAW,QAAWA,EAAW,QAAmC,CAA5B,QAAU,GAAIK,EAAI,MAAMH,CAAI,CAAE,CAAE,OAAOC,CAAM,CAR/bI,CAAsBjG,EAAKJ,IAI5F,SAAqCtB,EAAGU,GAAU,IAAKV,EAAG,OAAQ,GAAiB,iBAANA,EAAgB,OAAO,EAAkBA,EAAGU,GAAS,IAAIE,EAAIC,OAAOC,UAAUC,SAASV,KAAKL,GAAGgB,MAAM,GAAI,GAAc,WAANJ,GAAkBZ,EAAEiB,cAAaL,EAAIZ,EAAEiB,YAAYC,MAAM,GAAU,QAANN,GAAqB,QAANA,EAAa,OAAOJ,MAAMW,KAAKnB,GAAI,GAAU,cAANY,GAAqB,2CAA2CQ,KAAKR,GAAI,OAAO,EAAkBZ,EAAGU,EAAS,CAJ7T,CAA4BgB,EAAKJ,IAEnI,WAA8B,MAAM,IAAIG,UAAU,4IAA8I,CAFvDmG,EAAoB,CAM7J,SAAS,EAAkBlG,EAAKC,IAAkB,MAAPA,GAAeA,EAAMD,EAAI/C,UAAQgD,EAAMD,EAAI/C,QAAQ,IAAK,IAAI2C,EAAI,EAAGM,EAAO,IAAIpB,MAAMmB,GAAML,EAAIK,EAAKL,IAAOM,EAAKN,GAAKI,EAAIJ,GAAM,OAAOM,CAAM,CAOvK,SAAS,IACtB,IAAI4S,EAAsBC,EAAmB/R,WACzCoF,EAAO0M,EAAoB1M,KAC3BnE,EAAU6Q,EAAoB7Q,QAC9B1F,EAAWuW,EAAoBvW,SAEnC,OAAO,EAAkB6J,EAAMnE,EAAS1F,EAC1C,CACO,SAASwW,EAAmBxF,GACjC,IAOInH,EACAnE,EACA1F,EARAyW,EAAyBxN,EADD1G,MAAMM,UAAUE,MAAMX,KAAK4O,GACY,GAC/D0F,EAAQD,EAAuB,GAC/BE,EAAQF,EAAuB,GAC/BG,EAAQH,EAAuB,GAC/BI,EAAQJ,EAAuB,GAOnC,GAAqB,iBAAVC,EAEJ,MAAM,IAAIlT,UAAU,wCAI3B,GALEqG,EAAO6M,EAKJC,GAA0B,iBAAVA,EAgBhB,KAAIG,EAASH,GAOX,MAAM,IAAI/Q,MAAM,4BAA4BlE,OAAOiV,IANpDC,GACFlR,EAAUiR,EACV3W,EAAW4W,GAEX5W,EAAW2W,CAEkD,MAtB3DE,GACFnR,EAAUkR,EACV5W,EAAW6W,IAEXnR,OAAUe,EACVzG,EAAW4W,GAGTD,IACFjR,EAtDN,SAAuBlB,GAAU,IAAK,IAAInB,EAAI,EAAGA,EAAIoB,UAAU/D,OAAQ2C,IAAK,CAAE,IAAIqB,EAAS,MAAQD,UAAUpB,GAAKoB,UAAUpB,GAAK,CAAC,EAAGA,EAAI,EAAI,EAAQT,OAAO8B,IAAS,GAAIC,SAAQ,SAAUC,GAAO,EAAgBJ,EAAQI,EAAKF,EAAOE,GAAO,IAAKhC,OAAOkC,0BAA4BlC,OAAOmC,iBAAiBP,EAAQ5B,OAAOkC,0BAA0BJ,IAAW,EAAQ9B,OAAO8B,IAASC,SAAQ,SAAUC,GAAOhC,OAAOoC,eAAeR,EAAQI,EAAKhC,OAAOuB,yBAAyBO,EAAQE,GAAO,GAAI,CAAE,OAAOJ,CAAQ,CAsDze,CAAc,CACtByQ,eAAgB0B,GACfjR,IAaP,MAAO,CACLmE,KAAMA,EACNnE,QAASA,EACT1F,SAAUA,EAEd,CAIA,IAAI8W,EAAW,SAAkBzJ,GAC/B,MAAsB,WAAf,EAAQA,EACjB,ECjFO,SAAS0J,IACf,OAAO,EAAAnH,EAAA,GAAqB,EAA4BnL,UACzD,C,kCCFA,SAAgB,QAAU,EAAE,sBAAwB,CAAC,EAAI,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,EAAI,CAAC,KAAK,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,KAAK,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,KAAK,KAAK,KAAK,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,KAAK,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,KAAK,KAAK,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,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","sources":["webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/getPossibleCountriesForNumber.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/formatNationalNumberUsingFormat.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/applyInternationalSeparatorStyle.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/getIddPrefix.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/format_.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/PhoneNumber.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/validate_.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/constants.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/RFC3966.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/mergeArrays.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/checkNumberLength.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/extension/createExtensionPattern.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/getNumberType.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/isViablePhoneNumber.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/matchesEntirely.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/isPossibleNumber_.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/tools/semver-compare.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/metadata.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/examples.mobile.json.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/getExampleNumber.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/mobile/exports/getExampleNumber.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/ParseError.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/extension/extractExtension.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/parseDigits.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/parseIncompletePhoneNumber.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/stripIddPrefix.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/extractNationalNumber.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCode.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/getCountryByNationalNumber.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/getCountryByCallingCode.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/parse_.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/parsePhoneNumber_.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/parsePhoneNumber.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/mobile/exports/parsePhoneNumberWithError.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/metadata.mobile.json.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/mobile/exports/withMetadataArgument.js"],"sourcesContent":["import Metadata from '../metadata.js';\n/**\r\n * Returns a list of countries that the phone number could potentially belong to.\r\n * @param {string} callingCode — Calling code.\r\n * @param {string} nationalNumber — National (significant) number.\r\n * @param {object} metadata — Metadata.\r\n * @return {string[]} A list of possible countries.\r\n */\n\nexport default function getPossibleCountriesForNumber(callingCode, nationalNumber, metadata) {\n var _metadata = new Metadata(metadata);\n\n var possibleCountries = _metadata.getCountryCodesForCallingCode(callingCode);\n\n if (!possibleCountries) {\n return [];\n }\n\n return possibleCountries.filter(function (country) {\n return couldNationalNumberBelongToCountry(nationalNumber, country, metadata);\n });\n}\n\nfunction couldNationalNumberBelongToCountry(nationalNumber, country, metadata) {\n var _metadata = new Metadata(metadata);\n\n _metadata.selectNumberingPlan(country);\n\n if (_metadata.numberingPlan.possibleLengths().indexOf(nationalNumber.length) >= 0) {\n return true;\n }\n\n return false;\n}\n//# sourceMappingURL=getPossibleCountriesForNumber.js.map","import applyInternationalSeparatorStyle from './applyInternationalSeparatorStyle.js'; // This was originally set to $1 but there are some countries for which the\n// first group is not used in the national pattern (e.g. Argentina) so the $1\n// group does not match correctly. Therefore, we use `\\d`, so that the first\n// group actually used in the pattern will be matched.\n\nexport var FIRST_GROUP_PATTERN = /(\\$\\d)/;\nexport default function formatNationalNumberUsingFormat(number, format, _ref) {\n var useInternationalFormat = _ref.useInternationalFormat,\n withNationalPrefix = _ref.withNationalPrefix,\n carrierCode = _ref.carrierCode,\n metadata = _ref.metadata;\n var formattedNumber = number.replace(new RegExp(format.pattern()), useInternationalFormat ? format.internationalFormat() : // This library doesn't use `domestic_carrier_code_formatting_rule`,\n // because that one is only used when formatting phone numbers\n // for dialing from a mobile phone, and this is not a dialing library.\n // carrierCode && format.domesticCarrierCodeFormattingRule()\n // \t// First, replace the $CC in the formatting rule with the desired carrier code.\n // \t// Then, replace the $FG in the formatting rule with the first group\n // \t// and the carrier code combined in the appropriate way.\n // \t? format.format().replace(FIRST_GROUP_PATTERN, format.domesticCarrierCodeFormattingRule().replace('$CC', carrierCode))\n // \t: (\n // \t\twithNationalPrefix && format.nationalPrefixFormattingRule()\n // \t\t\t? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule())\n // \t\t\t: format.format()\n // \t)\n withNationalPrefix && format.nationalPrefixFormattingRule() ? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()) : format.format());\n\n if (useInternationalFormat) {\n return applyInternationalSeparatorStyle(formattedNumber);\n }\n\n return formattedNumber;\n}\n//# sourceMappingURL=formatNationalNumberUsingFormat.js.map","import { VALID_PUNCTUATION } from '../constants.js'; // Removes brackets and replaces dashes with spaces.\n//\n// E.g. \"(999) 111-22-33\" -> \"999 111 22 33\"\n//\n// For some reason Google's metadata contains ``s with brackets and dashes.\n// Meanwhile, there's no single opinion about using punctuation in international phone numbers.\n//\n// For example, Google's `` for USA is `+1 213-373-4253`.\n// And here's a quote from WikiPedia's \"North American Numbering Plan\" page:\n// https://en.wikipedia.org/wiki/North_American_Numbering_Plan\n//\n// \"The country calling code for all countries participating in the NANP is 1.\n// In international format, an NANP number should be listed as +1 301 555 01 00,\n// where 301 is an area code (Maryland).\"\n//\n// I personally prefer the international format without any punctuation.\n// For example, brackets are remnants of the old age, meaning that the\n// phone number part in brackets (so called \"area code\") can be omitted\n// if dialing within the same \"area\".\n// And hyphens were clearly introduced for splitting local numbers into memorizable groups.\n// For example, remembering \"5553535\" is difficult but \"555-35-35\" is much simpler.\n// Imagine a man taking a bus from home to work and seeing an ad with a phone number.\n// He has a couple of seconds to memorize that number until it passes by.\n// If it were spaces instead of hyphens the man wouldn't necessarily get it,\n// but with hyphens instead of spaces the grouping is more explicit.\n// I personally think that hyphens introduce visual clutter,\n// so I prefer replacing them with spaces in international numbers.\n// In the modern age all output is done on displays where spaces are clearly distinguishable\n// so hyphens can be safely replaced with spaces without losing any legibility.\n//\n\nexport default function applyInternationalSeparatorStyle(formattedNumber) {\n return formattedNumber.replace(new RegExp(\"[\".concat(VALID_PUNCTUATION, \"]+\"), 'g'), ' ').trim();\n}\n//# sourceMappingURL=applyInternationalSeparatorStyle.js.map","import Metadata from '../metadata.js';\n/**\r\n * Pattern that makes it easy to distinguish whether a region has a single\r\n * international dialing prefix or not. If a region has a single international\r\n * prefix (e.g. 011 in USA), it will be represented as a string that contains\r\n * a sequence of ASCII digits, and possibly a tilde, which signals waiting for\r\n * the tone. If there are multiple available international prefixes in a\r\n * region, they will be represented as a regex string that always contains one\r\n * or more characters that are not ASCII digits or a tilde.\r\n */\n\nvar SINGLE_IDD_PREFIX_REG_EXP = /^[\\d]+(?:[~\\u2053\\u223C\\uFF5E][\\d]+)?$/; // For regions that have multiple IDD prefixes\n// a preferred IDD prefix is returned.\n\nexport default function getIddPrefix(country, callingCode, metadata) {\n var countryMetadata = new Metadata(metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n\n if (countryMetadata.defaultIDDPrefix()) {\n return countryMetadata.defaultIDDPrefix();\n }\n\n if (SINGLE_IDD_PREFIX_REG_EXP.test(countryMetadata.IDDPrefix())) {\n return countryMetadata.IDDPrefix();\n }\n}\n//# sourceMappingURL=getIddPrefix.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// This is a port of Google Android `libphonenumber`'s\n// `phonenumberutil.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat.js';\nimport Metadata, { getCountryCallingCode } from './metadata.js';\nimport getIddPrefix from './helpers/getIddPrefix.js';\nimport { formatRFC3966 } from './helpers/RFC3966.js';\nvar DEFAULT_OPTIONS = {\n formatExtension: function formatExtension(formattedNumber, extension, metadata) {\n return \"\".concat(formattedNumber).concat(metadata.ext()).concat(extension);\n }\n}; // Formats a phone number\n//\n// Example use cases:\n//\n// ```js\n// formatNumber('8005553535', 'RU', 'INTERNATIONAL')\n// formatNumber('8005553535', 'RU', 'INTERNATIONAL', metadata)\n// formatNumber({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL')\n// formatNumber({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL', metadata)\n// formatNumber('+78005553535', 'NATIONAL')\n// formatNumber('+78005553535', 'NATIONAL', metadata)\n// ```\n//\n\nexport default function formatNumber(input, format, options, metadata) {\n // Apply default options.\n if (options) {\n options = _objectSpread(_objectSpread({}, DEFAULT_OPTIONS), options);\n } else {\n options = DEFAULT_OPTIONS;\n }\n\n metadata = new Metadata(metadata);\n\n if (input.country && input.country !== '001') {\n // Validate `input.country`.\n if (!metadata.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n\n metadata.country(input.country);\n } else if (input.countryCallingCode) {\n metadata.selectNumberingPlan(input.countryCallingCode);\n } else return input.phone || '';\n\n var countryCallingCode = metadata.countryCallingCode();\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // This variable should have been declared inside `case`s\n // but Babel has a bug and it says \"duplicate variable declaration\".\n\n var number;\n\n switch (format) {\n case 'NATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return '';\n }\n\n number = formatNationalNumber(nationalNumber, input.carrierCode, 'NATIONAL', metadata, options);\n return addExtension(number, input.ext, metadata, options.formatExtension);\n\n case 'INTERNATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return \"+\".concat(countryCallingCode);\n }\n\n number = formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata, options);\n number = \"+\".concat(countryCallingCode, \" \").concat(number);\n return addExtension(number, input.ext, metadata, options.formatExtension);\n\n case 'E.164':\n // `E.164` doesn't define \"phone number extensions\".\n return \"+\".concat(countryCallingCode).concat(nationalNumber);\n\n case 'RFC3966':\n return formatRFC3966({\n number: \"+\".concat(countryCallingCode).concat(nationalNumber),\n ext: input.ext\n });\n // For reference, here's Google's IDD formatter:\n // https://github.com/google/libphonenumber/blob/32719cf74e68796788d1ca45abc85dcdc63ba5b9/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L1546\n // Not saying that this IDD formatter replicates it 1:1, but it seems to work.\n // Who would even need to format phone numbers in IDD format anyway?\n\n case 'IDD':\n if (!options.fromCountry) {\n return; // throw new Error('`fromCountry` option not passed for IDD-prefixed formatting.')\n }\n\n var formattedNumber = formatIDD(nationalNumber, input.carrierCode, countryCallingCode, options.fromCountry, metadata);\n return addExtension(formattedNumber, input.ext, metadata, options.formatExtension);\n\n default:\n throw new Error(\"Unknown \\\"format\\\" argument passed to \\\"formatNumber()\\\": \\\"\".concat(format, \"\\\"\"));\n }\n}\n\nfunction formatNationalNumber(number, carrierCode, formatAs, metadata, options) {\n var format = chooseFormatForNumber(metadata.formats(), number);\n\n if (!format) {\n return number;\n }\n\n return formatNationalNumberUsingFormat(number, format, {\n useInternationalFormat: formatAs === 'INTERNATIONAL',\n withNationalPrefix: format.nationalPrefixIsOptionalWhenFormattingInNationalFormat() && options && options.nationalPrefix === false ? false : true,\n carrierCode: carrierCode,\n metadata: metadata\n });\n}\n\nfunction chooseFormatForNumber(availableFormats, nationalNnumber) {\n for (var _iterator = _createForOfIteratorHelperLoose(availableFormats), _step; !(_step = _iterator()).done;) {\n var format = _step.value;\n\n // Validate leading digits.\n // The test case for \"else path\" could be found by searching for\n // \"format.leadingDigitsPatterns().length === 0\".\n if (format.leadingDigitsPatterns().length > 0) {\n // The last leading_digits_pattern is used here, as it is the most detailed\n var lastLeadingDigitsPattern = format.leadingDigitsPatterns()[format.leadingDigitsPatterns().length - 1]; // If leading digits don't match then move on to the next phone number format\n\n if (nationalNnumber.search(lastLeadingDigitsPattern) !== 0) {\n continue;\n }\n } // Check that the national number matches the phone number format regular expression\n\n\n if (matchesEntirely(nationalNnumber, format.pattern())) {\n return format;\n }\n }\n}\n\nfunction addExtension(formattedNumber, ext, metadata, formatExtension) {\n return ext ? formatExtension(formattedNumber, ext, metadata) : formattedNumber;\n}\n\nfunction formatIDD(nationalNumber, carrierCode, countryCallingCode, fromCountry, metadata) {\n var fromCountryCallingCode = getCountryCallingCode(fromCountry, metadata.metadata); // When calling within the same country calling code.\n\n if (fromCountryCallingCode === countryCallingCode) {\n var formattedNumber = formatNationalNumber(nationalNumber, carrierCode, 'NATIONAL', metadata); // For NANPA regions, return the national format for these regions\n // but prefix it with the country calling code.\n\n if (countryCallingCode === '1') {\n return countryCallingCode + ' ' + formattedNumber;\n } // If regions share a country calling code, the country calling code need\n // not be dialled. This also applies when dialling within a region, so this\n // if clause covers both these cases. Technically this is the case for\n // dialling from La Reunion to other overseas departments of France (French\n // Guiana, Martinique, Guadeloupe), but not vice versa - so we don't cover\n // this edge case for now and for those cases return the version including\n // country calling code. Details here:\n // http://www.petitfute.com/voyage/225-info-pratiques-reunion\n //\n\n\n return formattedNumber;\n }\n\n var iddPrefix = getIddPrefix(fromCountry, undefined, metadata.metadata);\n\n if (iddPrefix) {\n return \"\".concat(iddPrefix, \" \").concat(countryCallingCode, \" \").concat(formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata));\n }\n}\n//# sourceMappingURL=format_.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport Metadata from './metadata.js';\nimport isPossibleNumber from './isPossibleNumber_.js';\nimport isValidNumber from './validate_.js';\nimport isValidNumberForRegion from './isValidNumberForRegion_.js';\nimport getNumberType from './helpers/getNumberType.js';\nimport getPossibleCountriesForNumber from './helpers/getPossibleCountriesForNumber.js';\nimport formatNumber from './format_.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\n\nvar PhoneNumber = /*#__PURE__*/function () {\n function PhoneNumber(countryCallingCode, nationalNumber, metadata) {\n _classCallCheck(this, PhoneNumber);\n\n if (!countryCallingCode) {\n throw new TypeError('`country` or `countryCallingCode` not passed');\n }\n\n if (!nationalNumber) {\n throw new TypeError('`nationalNumber` not passed');\n }\n\n if (!metadata) {\n throw new TypeError('`metadata` not passed');\n }\n\n var _metadata = new Metadata(metadata); // If country code is passed then derive `countryCallingCode` from it.\n // Also store the country code as `.country`.\n\n\n if (isCountryCode(countryCallingCode)) {\n this.country = countryCallingCode;\n\n _metadata.country(countryCallingCode);\n\n countryCallingCode = _metadata.countryCallingCode();\n } else {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (_metadata.isNonGeographicCallingCode(countryCallingCode)) {\n this.country = '001';\n }\n }\n }\n\n this.countryCallingCode = countryCallingCode;\n this.nationalNumber = nationalNumber;\n this.number = '+' + this.countryCallingCode + this.nationalNumber;\n this.metadata = metadata;\n }\n\n _createClass(PhoneNumber, [{\n key: \"setExt\",\n value: function setExt(ext) {\n this.ext = ext;\n }\n }, {\n key: \"getPossibleCountries\",\n value: function getPossibleCountries() {\n if (this.country) {\n return [this.country];\n }\n\n return getPossibleCountriesForNumber(this.countryCallingCode, this.nationalNumber, this.metadata);\n }\n }, {\n key: \"isPossible\",\n value: function isPossible() {\n return isPossibleNumber(this, {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"isValid\",\n value: function isValid() {\n return isValidNumber(this, {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"isNonGeographic\",\n value: function isNonGeographic() {\n var metadata = new Metadata(this.metadata);\n return metadata.isNonGeographicCallingCode(this.countryCallingCode);\n }\n }, {\n key: \"isEqual\",\n value: function isEqual(phoneNumber) {\n return this.number === phoneNumber.number && this.ext === phoneNumber.ext;\n } // // Is just an alias for `this.isValid() && this.country === country`.\n // // https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\n // isValidForRegion(country) {\n // \treturn isValidNumberForRegion(this, country, { v2: true }, this.metadata)\n // }\n\n }, {\n key: \"getType\",\n value: function getType() {\n return getNumberType(this, {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"format\",\n value: function format(_format, options) {\n return formatNumber(this, _format, options ? _objectSpread(_objectSpread({}, options), {}, {\n v2: true\n }) : {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"formatNational\",\n value: function formatNational(options) {\n return this.format('NATIONAL', options);\n }\n }, {\n key: \"formatInternational\",\n value: function formatInternational(options) {\n return this.format('INTERNATIONAL', options);\n }\n }, {\n key: \"getURI\",\n value: function getURI(options) {\n return this.format('RFC3966', options);\n }\n }]);\n\n return PhoneNumber;\n}();\n\nexport { PhoneNumber as default };\n\nvar isCountryCode = function isCountryCode(value) {\n return /^[A-Z]{2}$/.test(value);\n};\n//# sourceMappingURL=PhoneNumber.js.map","import Metadata from './metadata.js';\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport getNumberType from './helpers/getNumberType.js';\n/**\r\n * Checks if a given phone number is valid.\r\n *\r\n * If the `number` is a string, it will be parsed to an object,\r\n * but only if it contains only valid phone number characters (including punctuation).\r\n * If the `number` is an object, it is used as is.\r\n *\r\n * The optional `defaultCountry` argument is the default country.\r\n * I.e. it does not restrict to just that country,\r\n * e.g. in those cases where several countries share\r\n * the same phone numbering rules (NANPA, Britain, etc).\r\n * For example, even though the number `07624 369230`\r\n * belongs to the Isle of Man (\"IM\" country code)\r\n * calling `isValidNumber('07624369230', 'GB', metadata)`\r\n * still returns `true` because the country is not restricted to `GB`,\r\n * it's just that `GB` is the default one for the phone numbering rules.\r\n * For restricting the country see `isValidNumberForRegion()`\r\n * though restricting a country might not be a good idea.\r\n * https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\r\n *\r\n * Examples:\r\n *\r\n * ```js\r\n * isValidNumber('+78005553535', metadata)\r\n * isValidNumber('8005553535', 'RU', metadata)\r\n * isValidNumber('88005553535', 'RU', metadata)\r\n * isValidNumber({ phone: '8005553535', country: 'RU' }, metadata)\r\n * ```\r\n */\n\nexport default function isValidNumber(input, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {};\n metadata = new Metadata(metadata); // This is just to support `isValidNumber({})`\n // for cases when `parseNumber()` returns `{}`.\n\n if (!input.country) {\n return false;\n }\n\n metadata.selectNumberingPlan(input.country, input.countryCallingCode); // By default, countries only have type regexps when it's required for\n // distinguishing different countries having the same `countryCallingCode`.\n\n if (metadata.hasTypes()) {\n return getNumberType(input, options, metadata.metadata) !== undefined;\n } // If there are no type regexps for this country in metadata then use\n // `nationalNumberPattern` as a \"better than nothing\" replacement.\n\n\n var national_number = options.v2 ? input.nationalNumber : input.phone;\n return matchesEntirely(national_number, metadata.nationalNumberPattern());\n}\n//# sourceMappingURL=validate_.js.map","// The minimum length of the national significant number.\nexport var MIN_LENGTH_FOR_NSN = 2; // The ITU says the maximum length should be 15,\n// but one can find longer numbers in Germany.\n\nexport var MAX_LENGTH_FOR_NSN = 17; // The maximum length of the country calling code.\n\nexport var MAX_LENGTH_COUNTRY_CODE = 3; // Digits accepted in phone numbers\n// (ascii, fullwidth, arabic-indic, and eastern arabic digits).\n\nexport var VALID_DIGITS = \"0-9\\uFF10-\\uFF19\\u0660-\\u0669\\u06F0-\\u06F9\"; // `DASHES` will be right after the opening square bracket of the \"character class\"\n\nvar DASHES = \"-\\u2010-\\u2015\\u2212\\u30FC\\uFF0D\";\nvar SLASHES = \"\\uFF0F/\";\nvar DOTS = \"\\uFF0E.\";\nexport var WHITESPACE = \" \\xA0\\xAD\\u200B\\u2060\\u3000\";\nvar BRACKETS = \"()\\uFF08\\uFF09\\uFF3B\\uFF3D\\\\[\\\\]\"; // export const OPENING_BRACKETS = '(\\uFF08\\uFF3B\\\\\\['\n\nvar TILDES = \"~\\u2053\\u223C\\uFF5E\"; // Regular expression of acceptable punctuation found in phone numbers. This\n// excludes punctuation found as a leading character only. This consists of dash\n// characters, white space characters, full stops, slashes, square brackets,\n// parentheses and tildes. Full-width variants are also present.\n\nexport var VALID_PUNCTUATION = \"\".concat(DASHES).concat(SLASHES).concat(DOTS).concat(WHITESPACE).concat(BRACKETS).concat(TILDES);\nexport var PLUS_CHARS = \"+\\uFF0B\"; // const LEADING_PLUS_CHARS_PATTERN = new RegExp('^[' + PLUS_CHARS + ']+')\n//# sourceMappingURL=constants.js.map","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport isViablePhoneNumber from './isViablePhoneNumber.js'; // https://www.ietf.org/rfc/rfc3966.txt\n\n/**\r\n * @param {string} text - Phone URI (RFC 3966).\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\n\nexport function parseRFC3966(text) {\n var number;\n var ext; // Replace \"tel:\" with \"tel=\" for parsing convenience.\n\n text = text.replace(/^tel:/, 'tel=');\n\n for (var _iterator = _createForOfIteratorHelperLoose(text.split(';')), _step; !(_step = _iterator()).done;) {\n var part = _step.value;\n\n var _part$split = part.split('='),\n _part$split2 = _slicedToArray(_part$split, 2),\n name = _part$split2[0],\n value = _part$split2[1];\n\n switch (name) {\n case 'tel':\n number = value;\n break;\n\n case 'ext':\n ext = value;\n break;\n\n case 'phone-context':\n // Only \"country contexts\" are supported.\n // \"Domain contexts\" are ignored.\n if (value[0] === '+') {\n number = value + number;\n }\n\n break;\n }\n } // If the phone number is not viable, then abort.\n\n\n if (!isViablePhoneNumber(number)) {\n return {};\n }\n\n var result = {\n number: number\n };\n\n if (ext) {\n result.ext = ext;\n }\n\n return result;\n}\n/**\r\n * @param {object} - `{ ?number, ?extension }`.\r\n * @return {string} Phone URI (RFC 3966).\r\n */\n\nexport function formatRFC3966(_ref) {\n var number = _ref.number,\n ext = _ref.ext;\n\n if (!number) {\n return '';\n }\n\n if (number[0] !== '+') {\n throw new Error(\"\\\"formatRFC3966()\\\" expects \\\"number\\\" to be in E.164 format.\");\n }\n\n return \"tel:\".concat(number).concat(ext ? ';ext=' + ext : '');\n}\n//# sourceMappingURL=RFC3966.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\r\n * Merges two arrays.\r\n * @param {*} a\r\n * @param {*} b\r\n * @return {*}\r\n */\nexport default function mergeArrays(a, b) {\n var merged = a.slice();\n\n for (var _iterator = _createForOfIteratorHelperLoose(b), _step; !(_step = _iterator()).done;) {\n var element = _step.value;\n\n if (a.indexOf(element) < 0) {\n merged.push(element);\n }\n }\n\n return merged.sort(function (a, b) {\n return a - b;\n }); // ES6 version, requires Set polyfill.\n // let merged = new Set(a)\n // for (const element of b) {\n // \tmerged.add(i)\n // }\n // return Array.from(merged).sort((a, b) => a - b)\n}\n//# sourceMappingURL=mergeArrays.js.map","import mergeArrays from './mergeArrays.js';\nexport default function checkNumberLength(nationalNumber, metadata) {\n return checkNumberLengthForType(nationalNumber, undefined, metadata);\n} // Checks whether a number is possible for the country based on its length.\n// Should only be called for the \"new\" metadata which has \"possible lengths\".\n\nexport function checkNumberLengthForType(nationalNumber, type, metadata) {\n var type_info = metadata.type(type); // There should always be \"\" set for every type element.\n // This is declared in the XML schema.\n // For size efficiency, where a sub-description (e.g. fixed-line)\n // has the same \"\" as the \"general description\", this is missing,\n // so we fall back to the \"general description\". Where no numbers of the type\n // exist at all, there is one possible length (-1) which is guaranteed\n // not to match the length of any real phone number.\n\n var possible_lengths = type_info && type_info.possibleLengths() || metadata.possibleLengths(); // let local_lengths = type_info && type.possibleLengthsLocal() || metadata.possibleLengthsLocal()\n // Metadata before version `1.0.18` didn't contain `possible_lengths`.\n\n if (!possible_lengths) {\n return 'IS_POSSIBLE';\n }\n\n if (type === 'FIXED_LINE_OR_MOBILE') {\n // No such country in metadata.\n\n /* istanbul ignore next */\n if (!metadata.type('FIXED_LINE')) {\n // The rare case has been encountered where no fixedLine data is available\n // (true for some non-geographic entities), so we just check mobile.\n return checkNumberLengthForType(nationalNumber, 'MOBILE', metadata);\n }\n\n var mobile_type = metadata.type('MOBILE');\n\n if (mobile_type) {\n // Merge the mobile data in if there was any. \"Concat\" creates a new\n // array, it doesn't edit possible_lengths in place, so we don't need a copy.\n // Note that when adding the possible lengths from mobile, we have\n // to again check they aren't empty since if they are this indicates\n // they are the same as the general desc and should be obtained from there.\n possible_lengths = mergeArrays(possible_lengths, mobile_type.possibleLengths()); // The current list is sorted; we need to merge in the new list and\n // re-sort (duplicates are okay). Sorting isn't so expensive because\n // the lists are very small.\n // if (local_lengths) {\n // \tlocal_lengths = mergeArrays(local_lengths, mobile_type.possibleLengthsLocal())\n // } else {\n // \tlocal_lengths = mobile_type.possibleLengthsLocal()\n // }\n }\n } // If the type doesn't exist then return 'INVALID_LENGTH'.\n else if (type && !type_info) {\n return 'INVALID_LENGTH';\n }\n\n var actual_length = nationalNumber.length; // In `libphonenumber-js` all \"local-only\" formats are dropped for simplicity.\n // // This is safe because there is never an overlap beween the possible lengths\n // // and the local-only lengths; this is checked at build time.\n // if (local_lengths && local_lengths.indexOf(nationalNumber.length) >= 0)\n // {\n // \treturn 'IS_POSSIBLE_LOCAL_ONLY'\n // }\n\n var minimum_length = possible_lengths[0];\n\n if (minimum_length === actual_length) {\n return 'IS_POSSIBLE';\n }\n\n if (minimum_length > actual_length) {\n return 'TOO_SHORT';\n }\n\n if (possible_lengths[possible_lengths.length - 1] < actual_length) {\n return 'TOO_LONG';\n } // We skip the first element since we've already checked it.\n\n\n return possible_lengths.indexOf(actual_length, 1) >= 0 ? 'IS_POSSIBLE' : 'INVALID_LENGTH';\n}\n//# sourceMappingURL=checkNumberLength.js.map","import { VALID_DIGITS } from '../../constants.js'; // The RFC 3966 format for extensions.\n\nvar RFC3966_EXTN_PREFIX = ';ext=';\n/**\r\n * Helper method for constructing regular expressions for parsing. Creates\r\n * an expression that captures up to max_length digits.\r\n * @return {string} RegEx pattern to capture extension digits.\r\n */\n\nvar getExtensionDigitsPattern = function getExtensionDigitsPattern(maxLength) {\n return \"([\".concat(VALID_DIGITS, \"]{1,\").concat(maxLength, \"})\");\n};\n/**\r\n * Helper initialiser method to create the regular-expression pattern to match\r\n * extensions.\r\n * Copy-pasted from Google's `libphonenumber`:\r\n * https://github.com/google/libphonenumber/blob/55b2646ec9393f4d3d6661b9c82ef9e258e8b829/javascript/i18n/phonenumbers/phonenumberutil.js#L759-L766\r\n * @return {string} RegEx pattern to capture extensions.\r\n */\n\n\nexport default function createExtensionPattern(purpose) {\n // We cap the maximum length of an extension based on the ambiguity of the way\n // the extension is prefixed. As per ITU, the officially allowed length for\n // extensions is actually 40, but we don't support this since we haven't seen real\n // examples and this introduces many false interpretations as the extension labels\n // are not standardized.\n\n /** @type {string} */\n var extLimitAfterExplicitLabel = '20';\n /** @type {string} */\n\n var extLimitAfterLikelyLabel = '15';\n /** @type {string} */\n\n var extLimitAfterAmbiguousChar = '9';\n /** @type {string} */\n\n var extLimitWhenNotSure = '6';\n /** @type {string} */\n\n var possibleSeparatorsBetweenNumberAndExtLabel = \"[ \\xA0\\\\t,]*\"; // Optional full stop (.) or colon, followed by zero or more spaces/tabs/commas.\n\n /** @type {string} */\n\n var possibleCharsAfterExtLabel = \"[:\\\\.\\uFF0E]?[ \\xA0\\\\t,-]*\";\n /** @type {string} */\n\n var optionalExtnSuffix = \"#?\"; // Here the extension is called out in more explicit way, i.e mentioning it obvious\n // patterns like \"ext.\".\n\n /** @type {string} */\n\n var explicitExtLabels = \"(?:e?xt(?:ensi(?:o\\u0301?|\\xF3))?n?|\\uFF45?\\uFF58\\uFF54\\uFF4E?|\\u0434\\u043E\\u0431|anexo)\"; // One-character symbols that can be used to indicate an extension, and less\n // commonly used or more ambiguous extension labels.\n\n /** @type {string} */\n\n var ambiguousExtLabels = \"(?:[x\\uFF58#\\uFF03~\\uFF5E]|int|\\uFF49\\uFF4E\\uFF54)\"; // When extension is not separated clearly.\n\n /** @type {string} */\n\n var ambiguousSeparator = \"[- ]+\"; // This is the same as possibleSeparatorsBetweenNumberAndExtLabel, but not matching\n // comma as extension label may have it.\n\n /** @type {string} */\n\n var possibleSeparatorsNumberExtLabelNoComma = \"[ \\xA0\\\\t]*\"; // \",,\" is commonly used for auto dialling the extension when connected. First\n // comma is matched through possibleSeparatorsBetweenNumberAndExtLabel, so we do\n // not repeat it here. Semi-colon works in Iphone and Android also to pop up a\n // button with the extension number following.\n\n /** @type {string} */\n\n var autoDiallingAndExtLabelsFound = \"(?:,{2}|;)\";\n /** @type {string} */\n\n var rfcExtn = RFC3966_EXTN_PREFIX + getExtensionDigitsPattern(extLimitAfterExplicitLabel);\n /** @type {string} */\n\n var explicitExtn = possibleSeparatorsBetweenNumberAndExtLabel + explicitExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterExplicitLabel) + optionalExtnSuffix;\n /** @type {string} */\n\n var ambiguousExtn = possibleSeparatorsBetweenNumberAndExtLabel + ambiguousExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix;\n /** @type {string} */\n\n var americanStyleExtnWithSuffix = ambiguousSeparator + getExtensionDigitsPattern(extLimitWhenNotSure) + \"#\";\n /** @type {string} */\n\n var autoDiallingExtn = possibleSeparatorsNumberExtLabelNoComma + autoDiallingAndExtLabelsFound + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterLikelyLabel) + optionalExtnSuffix;\n /** @type {string} */\n\n var onlyCommasExtn = possibleSeparatorsNumberExtLabelNoComma + \"(?:,)+\" + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix; // The first regular expression covers RFC 3966 format, where the extension is added\n // using \";ext=\". The second more generic where extension is mentioned with explicit\n // labels like \"ext:\". In both the above cases we allow more numbers in extension than\n // any other extension labels. The third one captures when single character extension\n // labels or less commonly used labels are used. In such cases we capture fewer\n // extension digits in order to reduce the chance of falsely interpreting two\n // numbers beside each other as a number + extension. The fourth one covers the\n // special case of American numbers where the extension is written with a hash\n // at the end, such as \"- 503#\". The fifth one is exclusively for extension\n // autodialling formats which are used when dialling and in this case we accept longer\n // extensions. The last one is more liberal on the number of commas that acts as\n // extension labels, so we have a strict cap on the number of digits in such extensions.\n\n return rfcExtn + \"|\" + explicitExtn + \"|\" + ambiguousExtn + \"|\" + americanStyleExtnWithSuffix + \"|\" + autoDiallingExtn + \"|\" + onlyCommasExtn;\n}\n//# sourceMappingURL=createExtensionPattern.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport Metadata from '../metadata.js';\nimport matchesEntirely from './matchesEntirely.js';\nvar NON_FIXED_LINE_PHONE_TYPES = ['MOBILE', 'PREMIUM_RATE', 'TOLL_FREE', 'SHARED_COST', 'VOIP', 'PERSONAL_NUMBER', 'PAGER', 'UAN', 'VOICEMAIL']; // Finds out national phone number type (fixed line, mobile, etc)\n\nexport default function getNumberType(input, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {}; // When `parse()` returned `{}`\n // meaning that the phone number is not a valid one.\n\n if (!input.country) {\n return;\n }\n\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(input.country, input.countryCallingCode);\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // The following is copy-pasted from the original function:\n // https://github.com/googlei18n/libphonenumber/blob/3ea547d4fbaa2d0b67588904dfa5d3f2557c27ff/javascript/i18n/phonenumbers/phonenumberutil.js#L2835\n // Is this national number even valid for this country\n\n if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern())) {\n return;\n } // Is it fixed line number\n\n\n if (isNumberTypeEqualTo(nationalNumber, 'FIXED_LINE', metadata)) {\n // Because duplicate regular expressions are removed\n // to reduce metadata size, if \"mobile\" pattern is \"\"\n // then it means it was removed due to being a duplicate of the fixed-line pattern.\n //\n if (metadata.type('MOBILE') && metadata.type('MOBILE').pattern() === '') {\n return 'FIXED_LINE_OR_MOBILE';\n } // `MOBILE` type pattern isn't included if it matched `FIXED_LINE` one.\n // For example, for \"US\" country.\n // Old metadata (< `1.0.18`) had a specific \"types\" data structure\n // that happened to be `undefined` for `MOBILE` in that case.\n // Newer metadata (>= `1.0.18`) has another data structure that is\n // not `undefined` for `MOBILE` in that case (it's just an empty array).\n // So this `if` is just for backwards compatibility with old metadata.\n\n\n if (!metadata.type('MOBILE')) {\n return 'FIXED_LINE_OR_MOBILE';\n } // Check if the number happens to qualify as both fixed line and mobile.\n // (no such country in the minimal metadata set)\n\n /* istanbul ignore if */\n\n\n if (isNumberTypeEqualTo(nationalNumber, 'MOBILE', metadata)) {\n return 'FIXED_LINE_OR_MOBILE';\n }\n\n return 'FIXED_LINE';\n }\n\n for (var _iterator = _createForOfIteratorHelperLoose(NON_FIXED_LINE_PHONE_TYPES), _step; !(_step = _iterator()).done;) {\n var type = _step.value;\n\n if (isNumberTypeEqualTo(nationalNumber, type, metadata)) {\n return type;\n }\n }\n}\nexport function isNumberTypeEqualTo(nationalNumber, type, metadata) {\n type = metadata.type(type);\n\n if (!type || !type.pattern()) {\n return false;\n } // Check if any possible number lengths are present;\n // if so, we use them to avoid checking\n // the validation pattern if they don't match.\n // If they are absent, this means they match\n // the general description, which we have\n // already checked before a specific number type.\n\n\n if (type.possibleLengths() && type.possibleLengths().indexOf(nationalNumber.length) < 0) {\n return false;\n }\n\n return matchesEntirely(nationalNumber, type.pattern());\n}\n//# sourceMappingURL=getNumberType.js.map","import { MIN_LENGTH_FOR_NSN, VALID_DIGITS, VALID_PUNCTUATION, PLUS_CHARS } from '../constants.js';\nimport createExtensionPattern from './extension/createExtensionPattern.js'; // Regular expression of viable phone numbers. This is location independent.\n// Checks we have at least three leading digits, and only valid punctuation,\n// alpha characters and digits in the phone number. Does not include extension\n// data. The symbol 'x' is allowed here as valid punctuation since it is often\n// used as a placeholder for carrier codes, for example in Brazilian phone\n// numbers. We also allow multiple '+' characters at the start.\n//\n// Corresponds to the following:\n// [digits]{minLengthNsn}|\n// plus_sign*\n// (([punctuation]|[star])*[digits]){3,}([punctuation]|[star]|[digits]|[alpha])*\n//\n// The first reg-ex is to allow short numbers (two digits long) to be parsed if\n// they are entered as \"15\" etc, but only if there is no punctuation in them.\n// The second expression restricts the number of digits to three or more, but\n// then allows them to be in international form, and to have alpha-characters\n// and punctuation. We split up the two reg-exes here and combine them when\n// creating the reg-ex VALID_PHONE_NUMBER_PATTERN itself so we can prefix it\n// with ^ and append $ to each branch.\n//\n// \"Note VALID_PUNCTUATION starts with a -,\n// so must be the first in the range\" (c) Google devs.\n// (wtf did they mean by saying that; probably nothing)\n//\n\nvar MIN_LENGTH_PHONE_NUMBER_PATTERN = '[' + VALID_DIGITS + ']{' + MIN_LENGTH_FOR_NSN + '}'; //\n// And this is the second reg-exp:\n// (see MIN_LENGTH_PHONE_NUMBER_PATTERN for a full description of this reg-exp)\n//\n\nexport var VALID_PHONE_NUMBER = '[' + PLUS_CHARS + ']{0,1}' + '(?:' + '[' + VALID_PUNCTUATION + ']*' + '[' + VALID_DIGITS + ']' + '){3,}' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']*'; // This regular expression isn't present in Google's `libphonenumber`\n// and is only used to determine whether the phone number being input\n// is too short for it to even consider it a \"valid\" number.\n// This is just a way to differentiate between a really invalid phone\n// number like \"abcde\" and a valid phone number that a user has just\n// started inputting, like \"+1\" or \"1\": both these cases would be\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\n// library can provide a more detailed error message — whether it's\n// really \"not a number\", or is it just a start of a valid phone number.\n\nvar VALID_PHONE_NUMBER_START_REG_EXP = new RegExp('^' + '[' + PLUS_CHARS + ']{0,1}' + '(?:' + '[' + VALID_PUNCTUATION + ']*' + '[' + VALID_DIGITS + ']' + '){1,2}' + '$', 'i');\nexport var VALID_PHONE_NUMBER_WITH_EXTENSION = VALID_PHONE_NUMBER + // Phone number extensions\n'(?:' + createExtensionPattern() + ')?'; // The combined regular expression for valid phone numbers:\n//\n\nvar VALID_PHONE_NUMBER_PATTERN = new RegExp( // Either a short two-digit-only phone number\n'^' + MIN_LENGTH_PHONE_NUMBER_PATTERN + '$' + '|' + // Or a longer fully parsed phone number (min 3 characters)\n'^' + VALID_PHONE_NUMBER_WITH_EXTENSION + '$', 'i'); // Checks to see if the string of characters could possibly be a phone number at\n// all. At the moment, checks to see that the string begins with at least 2\n// digits, ignoring any punctuation commonly found in phone numbers. This method\n// does not require the number to be normalized in advance - but does assume\n// that leading non-number symbols have been removed, such as by the method\n// `extract_possible_number`.\n//\n\nexport default function isViablePhoneNumber(number) {\n return number.length >= MIN_LENGTH_FOR_NSN && VALID_PHONE_NUMBER_PATTERN.test(number);\n} // This is just a way to differentiate between a really invalid phone\n// number like \"abcde\" and a valid phone number that a user has just\n// started inputting, like \"+1\" or \"1\": both these cases would be\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\n// library can provide a more detailed error message — whether it's\n// really \"not a number\", or is it just a start of a valid phone number.\n\nexport function isViablePhoneNumberStart(number) {\n return VALID_PHONE_NUMBER_START_REG_EXP.test(number);\n}\n//# sourceMappingURL=isViablePhoneNumber.js.map","/**\r\n * Checks whether the entire input sequence can be matched\r\n * against the regular expression.\r\n * @return {boolean}\r\n */\nexport default function matchesEntirely(text, regular_expression) {\n // If assigning the `''` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n text = text || '';\n return new RegExp('^(?:' + regular_expression + ')$').test(text);\n}\n//# sourceMappingURL=matchesEntirely.js.map","import Metadata from './metadata.js';\nimport checkNumberLength from './helpers/checkNumberLength.js';\nexport default function isPossiblePhoneNumber(input, options, metadata) {\n /* istanbul ignore if */\n if (options === undefined) {\n options = {};\n }\n\n metadata = new Metadata(metadata);\n\n if (options.v2) {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n\n metadata.selectNumberingPlan(input.countryCallingCode);\n } else {\n if (!input.phone) {\n return false;\n }\n\n if (input.country) {\n if (!metadata.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n\n metadata.country(input.country);\n } else {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n\n metadata.selectNumberingPlan(input.countryCallingCode);\n }\n } // Old metadata (< 1.0.18) had no \"possible length\" data.\n\n\n if (metadata.possibleLengths()) {\n return isPossibleNumber(input.phone || input.nationalNumber, metadata);\n } else {\n // There was a bug between `1.7.35` and `1.7.37` where \"possible_lengths\"\n // were missing for \"non-geographical\" numbering plans.\n // Just assume the number is possible in such cases:\n // it's unlikely that anyone generated their custom metadata\n // in that short period of time (one day).\n // This code can be removed in some future major version update.\n if (input.countryCallingCode && metadata.isNonGeographicCallingCode(input.countryCallingCode)) {\n // \"Non-geographic entities\" did't have `possibleLengths`\n // due to a bug in metadata generation process.\n return true;\n } else {\n throw new Error('Missing \"possibleLengths\" in metadata. Perhaps the metadata has been generated before v1.0.18.');\n }\n }\n}\nexport function isPossibleNumber(nationalNumber, metadata) {\n //, isInternational) {\n switch (checkNumberLength(nationalNumber, metadata)) {\n case 'IS_POSSIBLE':\n return true;\n // This library ignores \"local-only\" phone numbers (for simplicity).\n // See the readme for more info on what are \"local-only\" phone numbers.\n // case 'IS_POSSIBLE_LOCAL_ONLY':\n // \treturn !isInternational\n\n default:\n return false;\n }\n}\n//# sourceMappingURL=isPossibleNumber_.js.map","// Copy-pasted from:\n// https://github.com/substack/semver-compare/blob/master/index.js\n//\n// Inlining this function because some users reported issues with\n// importing from `semver-compare` in a browser with ES6 \"native\" modules.\n//\n// Fixes `semver-compare` not being able to compare versions with alpha/beta/etc \"tags\".\n// https://github.com/catamphetamine/libphonenumber-js/issues/381\nexport default function (a, b) {\n a = a.split('-');\n b = b.split('-');\n var pa = a[0].split('.');\n var pb = b[0].split('.');\n\n for (var i = 0; i < 3; i++) {\n var na = Number(pa[i]);\n var nb = Number(pb[i]);\n if (na > nb) return 1;\n if (nb > na) return -1;\n if (!isNaN(na) && isNaN(nb)) return 1;\n if (isNaN(na) && !isNaN(nb)) return -1;\n }\n\n if (a[1] && b[1]) {\n return a[1] > b[1] ? 1 : a[1] < b[1] ? -1 : 0;\n }\n\n return !a[1] && b[1] ? 1 : a[1] && !b[1] ? -1 : 0;\n}\n//# sourceMappingURL=semver-compare.js.map","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport compare from './tools/semver-compare.js'; // Added \"possibleLengths\" and renamed\n// \"country_phone_code_to_countries\" to \"country_calling_codes\".\n\nvar V2 = '1.0.18'; // Added \"idd_prefix\" and \"default_idd_prefix\".\n\nvar V3 = '1.2.0'; // Moved `001` country code to \"nonGeographic\" section of metadata.\n\nvar V4 = '1.7.35';\nvar DEFAULT_EXT_PREFIX = ' ext. ';\nvar CALLING_CODE_REG_EXP = /^\\d+$/;\n/**\r\n * See: https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md\r\n */\n\nvar Metadata = /*#__PURE__*/function () {\n function Metadata(metadata) {\n _classCallCheck(this, Metadata);\n\n validateMetadata(metadata);\n this.metadata = metadata;\n setVersion.call(this, metadata);\n }\n\n _createClass(Metadata, [{\n key: \"getCountries\",\n value: function getCountries() {\n return Object.keys(this.metadata.countries).filter(function (_) {\n return _ !== '001';\n });\n }\n }, {\n key: \"getCountryMetadata\",\n value: function getCountryMetadata(countryCode) {\n return this.metadata.countries[countryCode];\n }\n }, {\n key: \"nonGeographic\",\n value: function nonGeographic() {\n if (this.v1 || this.v2 || this.v3) return; // `nonGeographical` was a typo.\n // It's present in metadata generated from `1.7.35` to `1.7.37`.\n // The test case could be found by searching for \"nonGeographical\".\n\n return this.metadata.nonGeographic || this.metadata.nonGeographical;\n }\n }, {\n key: \"hasCountry\",\n value: function hasCountry(country) {\n return this.getCountryMetadata(country) !== undefined;\n }\n }, {\n key: \"hasCallingCode\",\n value: function hasCallingCode(callingCode) {\n if (this.getCountryCodesForCallingCode(callingCode)) {\n return true;\n }\n\n if (this.nonGeographic()) {\n if (this.nonGeographic()[callingCode]) {\n return true;\n }\n } else {\n // A hacky workaround for old custom metadata (generated before V4).\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n return true;\n }\n }\n }\n }, {\n key: \"isNonGeographicCallingCode\",\n value: function isNonGeographicCallingCode(callingCode) {\n if (this.nonGeographic()) {\n return this.nonGeographic()[callingCode] ? true : false;\n } else {\n return this.getCountryCodesForCallingCode(callingCode) ? false : true;\n }\n } // Deprecated.\n\n }, {\n key: \"country\",\n value: function country(countryCode) {\n return this.selectNumberingPlan(countryCode);\n }\n }, {\n key: \"selectNumberingPlan\",\n value: function selectNumberingPlan(countryCode, callingCode) {\n // Supports just passing `callingCode` as the first argument.\n if (countryCode && CALLING_CODE_REG_EXP.test(countryCode)) {\n callingCode = countryCode;\n countryCode = null;\n }\n\n if (countryCode && countryCode !== '001') {\n if (!this.hasCountry(countryCode)) {\n throw new Error(\"Unknown country: \".concat(countryCode));\n }\n\n this.numberingPlan = new NumberingPlan(this.getCountryMetadata(countryCode), this);\n } else if (callingCode) {\n if (!this.hasCallingCode(callingCode)) {\n throw new Error(\"Unknown calling code: \".concat(callingCode));\n }\n\n this.numberingPlan = new NumberingPlan(this.getNumberingPlanMetadata(callingCode), this);\n } else {\n this.numberingPlan = undefined;\n }\n\n return this;\n }\n }, {\n key: \"getCountryCodesForCallingCode\",\n value: function getCountryCodesForCallingCode(callingCode) {\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes) {\n // Metadata before V4 included \"non-geographic entity\" calling codes\n // inside `country_calling_codes` (for example, `\"881\":[\"001\"]`).\n // Now the semantics of `country_calling_codes` has changed:\n // it's specifically for \"countries\" now.\n // Older versions of custom metadata will simply skip parsing\n // \"non-geographic entity\" phone numbers with new versions\n // of this library: it's not considered a bug,\n // because such numbers are extremely rare,\n // and developers extremely rarely use custom metadata.\n if (countryCodes.length === 1 && countryCodes[0].length === 3) {\n return;\n }\n\n return countryCodes;\n }\n }\n }, {\n key: \"getCountryCodeForCallingCode\",\n value: function getCountryCodeForCallingCode(callingCode) {\n var countryCodes = this.getCountryCodesForCallingCode(callingCode);\n\n if (countryCodes) {\n return countryCodes[0];\n }\n }\n }, {\n key: \"getNumberingPlanMetadata\",\n value: function getNumberingPlanMetadata(callingCode) {\n var countryCode = this.getCountryCodeForCallingCode(callingCode);\n\n if (countryCode) {\n return this.getCountryMetadata(countryCode);\n }\n\n if (this.nonGeographic()) {\n var metadata = this.nonGeographic()[callingCode];\n\n if (metadata) {\n return metadata;\n }\n } else {\n // A hacky workaround for old custom metadata (generated before V4).\n // In that metadata, there was no concept of \"non-geographic\" metadata\n // so metadata for `001` country code was stored along with other countries.\n // The test case can be found by searching for:\n // \"should work around `nonGeographic` metadata not existing\".\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n return this.metadata.countries['001'];\n }\n }\n } // Deprecated.\n\n }, {\n key: \"countryCallingCode\",\n value: function countryCallingCode() {\n return this.numberingPlan.callingCode();\n } // Deprecated.\n\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n return this.numberingPlan.IDDPrefix();\n } // Deprecated.\n\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n return this.numberingPlan.defaultIDDPrefix();\n } // Deprecated.\n\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n return this.numberingPlan.nationalNumberPattern();\n } // Deprecated.\n\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n return this.numberingPlan.possibleLengths();\n } // Deprecated.\n\n }, {\n key: \"formats\",\n value: function formats() {\n return this.numberingPlan.formats();\n } // Deprecated.\n\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n return this.numberingPlan.nationalPrefixForParsing();\n } // Deprecated.\n\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.numberingPlan.nationalPrefixTransformRule();\n } // Deprecated.\n\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.numberingPlan.leadingDigits();\n } // Deprecated.\n\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n return this.numberingPlan.hasTypes();\n } // Deprecated.\n\n }, {\n key: \"type\",\n value: function type(_type) {\n return this.numberingPlan.type(_type);\n } // Deprecated.\n\n }, {\n key: \"ext\",\n value: function ext() {\n return this.numberingPlan.ext();\n }\n }, {\n key: \"countryCallingCodes\",\n value: function countryCallingCodes() {\n if (this.v1) return this.metadata.country_phone_code_to_countries;\n return this.metadata.country_calling_codes;\n } // Deprecated.\n\n }, {\n key: \"chooseCountryByCountryCallingCode\",\n value: function chooseCountryByCountryCallingCode(callingCode) {\n return this.selectNumberingPlan(callingCode);\n }\n }, {\n key: \"hasSelectedNumberingPlan\",\n value: function hasSelectedNumberingPlan() {\n return this.numberingPlan !== undefined;\n }\n }]);\n\n return Metadata;\n}();\n\nexport { Metadata as default };\n\nvar NumberingPlan = /*#__PURE__*/function () {\n function NumberingPlan(metadata, globalMetadataObject) {\n _classCallCheck(this, NumberingPlan);\n\n this.globalMetadataObject = globalMetadataObject;\n this.metadata = metadata;\n setVersion.call(this, globalMetadataObject.metadata);\n }\n\n _createClass(NumberingPlan, [{\n key: \"callingCode\",\n value: function callingCode() {\n return this.metadata[0];\n } // Formatting information for regions which share\n // a country calling code is contained by only one region\n // for performance reasons. For example, for NANPA region\n // (\"North American Numbering Plan Administration\",\n // which includes USA, Canada, Cayman Islands, Bahamas, etc)\n // it will be contained in the metadata for `US`.\n\n }, {\n key: \"getDefaultCountryMetadataForRegion\",\n value: function getDefaultCountryMetadataForRegion() {\n return this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode());\n } // Is always present.\n\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n if (this.v1 || this.v2) return;\n return this.metadata[1];\n } // Is only present when a country supports multiple IDD prefixes.\n\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n if (this.v1 || this.v2) return;\n return this.metadata[12];\n }\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n if (this.v1 || this.v2) return this.metadata[1];\n return this.metadata[2];\n } // \"possible length\" data is always present in Google's metadata.\n\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.v1) return;\n return this.metadata[this.v2 ? 2 : 3];\n }\n }, {\n key: \"_getFormats\",\n value: function _getFormats(metadata) {\n return metadata[this.v1 ? 2 : this.v2 ? 3 : 4];\n } // For countries of the same region (e.g. NANPA)\n // formats are all stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"formats\",\n value: function formats() {\n var _this = this;\n\n var formats = this._getFormats(this.metadata) || this._getFormats(this.getDefaultCountryMetadataForRegion()) || [];\n return formats.map(function (_) {\n return new Format(_, _this);\n });\n }\n }, {\n key: \"nationalPrefix\",\n value: function nationalPrefix() {\n return this.metadata[this.v1 ? 3 : this.v2 ? 4 : 5];\n }\n }, {\n key: \"_getNationalPrefixFormattingRule\",\n value: function _getNationalPrefixFormattingRule(metadata) {\n return metadata[this.v1 ? 4 : this.v2 ? 5 : 6];\n } // For countries of the same region (e.g. NANPA)\n // national prefix formatting rule is stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._getNationalPrefixFormattingRule(this.metadata) || this._getNationalPrefixFormattingRule(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"_nationalPrefixForParsing\",\n value: function _nationalPrefixForParsing() {\n return this.metadata[this.v1 ? 5 : this.v2 ? 6 : 7];\n }\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n // If `national_prefix_for_parsing` is not set explicitly,\n // then infer it from `national_prefix` (if any)\n return this._nationalPrefixForParsing() || this.nationalPrefix();\n }\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.metadata[this.v1 ? 6 : this.v2 ? 7 : 8];\n }\n }, {\n key: \"_getNationalPrefixIsOptionalWhenFormatting\",\n value: function _getNationalPrefixIsOptionalWhenFormatting() {\n return !!this.metadata[this.v1 ? 7 : this.v2 ? 8 : 9];\n } // For countries of the same region (e.g. NANPA)\n // \"national prefix is optional when formatting\" flag is\n // stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return this._getNationalPrefixIsOptionalWhenFormatting(this.metadata) || this._getNationalPrefixIsOptionalWhenFormatting(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.metadata[this.v1 ? 8 : this.v2 ? 9 : 10];\n }\n }, {\n key: \"types\",\n value: function types() {\n return this.metadata[this.v1 ? 9 : this.v2 ? 10 : 11];\n }\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n // Versions 1.2.0 - 1.2.4: can be `[]`.\n\n /* istanbul ignore next */\n if (this.types() && this.types().length === 0) {\n return false;\n } // Versions <= 1.2.4: can be `undefined`.\n // Version >= 1.2.5: can be `0`.\n\n\n return !!this.types();\n }\n }, {\n key: \"type\",\n value: function type(_type2) {\n if (this.hasTypes() && getType(this.types(), _type2)) {\n return new Type(getType(this.types(), _type2), this);\n }\n }\n }, {\n key: \"ext\",\n value: function ext() {\n if (this.v1 || this.v2) return DEFAULT_EXT_PREFIX;\n return this.metadata[13] || DEFAULT_EXT_PREFIX;\n }\n }]);\n\n return NumberingPlan;\n}();\n\nvar Format = /*#__PURE__*/function () {\n function Format(format, metadata) {\n _classCallCheck(this, Format);\n\n this._format = format;\n this.metadata = metadata;\n }\n\n _createClass(Format, [{\n key: \"pattern\",\n value: function pattern() {\n return this._format[0];\n }\n }, {\n key: \"format\",\n value: function format() {\n return this._format[1];\n }\n }, {\n key: \"leadingDigitsPatterns\",\n value: function leadingDigitsPatterns() {\n return this._format[2] || [];\n }\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._format[3] || this.metadata.nationalPrefixFormattingRule();\n }\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return !!this._format[4] || this.metadata.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n }\n }, {\n key: \"nationalPrefixIsMandatoryWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsMandatoryWhenFormattingInNationalFormat() {\n // National prefix is omitted if there's no national prefix formatting rule\n // set for this country, or when the national prefix formatting rule\n // contains no national prefix itself, or when this rule is set but\n // national prefix is optional for this phone number format\n // (and it is not enforced explicitly)\n return this.usesNationalPrefix() && !this.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n } // Checks whether national prefix formatting rule contains national prefix.\n\n }, {\n key: \"usesNationalPrefix\",\n value: function usesNationalPrefix() {\n return this.nationalPrefixFormattingRule() && // Check that national prefix formatting rule is not a \"dummy\" one.\n !FIRST_GROUP_ONLY_PREFIX_PATTERN.test(this.nationalPrefixFormattingRule()) // In compressed metadata, `this.nationalPrefixFormattingRule()` is `0`\n // when `national_prefix_formatting_rule` is not present.\n // So, `true` or `false` are returned explicitly here, so that\n // `0` number isn't returned.\n ? true : false;\n }\n }, {\n key: \"internationalFormat\",\n value: function internationalFormat() {\n return this._format[5] || this.format();\n }\n }]);\n\n return Format;\n}();\n/**\r\n * A pattern that is used to determine if the national prefix formatting rule\r\n * has the first group only, i.e., does not start with the national prefix.\r\n * Note that the pattern explicitly allows for unbalanced parentheses.\r\n */\n\n\nvar FIRST_GROUP_ONLY_PREFIX_PATTERN = /^\\(?\\$1\\)?$/;\n\nvar Type = /*#__PURE__*/function () {\n function Type(type, metadata) {\n _classCallCheck(this, Type);\n\n this.type = type;\n this.metadata = metadata;\n }\n\n _createClass(Type, [{\n key: \"pattern\",\n value: function pattern() {\n if (this.metadata.v1) return this.type;\n return this.type[0];\n }\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.metadata.v1) return;\n return this.type[1] || this.metadata.possibleLengths();\n }\n }]);\n\n return Type;\n}();\n\nfunction getType(types, type) {\n switch (type) {\n case 'FIXED_LINE':\n return types[0];\n\n case 'MOBILE':\n return types[1];\n\n case 'TOLL_FREE':\n return types[2];\n\n case 'PREMIUM_RATE':\n return types[3];\n\n case 'PERSONAL_NUMBER':\n return types[4];\n\n case 'VOICEMAIL':\n return types[5];\n\n case 'UAN':\n return types[6];\n\n case 'PAGER':\n return types[7];\n\n case 'VOIP':\n return types[8];\n\n case 'SHARED_COST':\n return types[9];\n }\n}\n\nexport function validateMetadata(metadata) {\n if (!metadata) {\n throw new Error('[libphonenumber-js] `metadata` argument not passed. Check your arguments.');\n } // `country_phone_code_to_countries` was renamed to\n // `country_calling_codes` in `1.0.18`.\n\n\n if (!is_object(metadata) || !is_object(metadata.countries)) {\n throw new Error(\"[libphonenumber-js] `metadata` argument was passed but it's not a valid metadata. Must be an object having `.countries` child object property. Got \".concat(is_object(metadata) ? 'an object of shape: { ' + Object.keys(metadata).join(', ') + ' }' : 'a ' + type_of(metadata) + ': ' + metadata, \".\"));\n }\n} // Babel transforms `typeof` into some \"branches\"\n// so istanbul will show this as \"branch not covered\".\n\n/* istanbul ignore next */\n\nvar is_object = function is_object(_) {\n return _typeof(_) === 'object';\n}; // Babel transforms `typeof` into some \"branches\"\n// so istanbul will show this as \"branch not covered\".\n\n/* istanbul ignore next */\n\n\nvar type_of = function type_of(_) {\n return _typeof(_);\n};\n/**\r\n * Returns extension prefix for a country.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string?}\r\n * @example\r\n * // Returns \" ext. \"\r\n * getExtPrefix(\"US\")\r\n */\n\n\nexport function getExtPrefix(country, metadata) {\n metadata = new Metadata(metadata);\n\n if (metadata.hasCountry(country)) {\n return metadata.country(country).ext();\n }\n\n return DEFAULT_EXT_PREFIX;\n}\n/**\r\n * Returns \"country calling code\" for a country.\r\n * Throws an error if the country doesn't exist or isn't supported by this library.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string}\r\n * @example\r\n * // Returns \"44\"\r\n * getCountryCallingCode(\"GB\")\r\n */\n\nexport function getCountryCallingCode(country, metadata) {\n metadata = new Metadata(metadata);\n\n if (metadata.hasCountry(country)) {\n return metadata.country(country).countryCallingCode();\n }\n\n throw new Error(\"Unknown country: \".concat(country));\n}\nexport function isSupportedCountry(country, metadata) {\n // metadata = new Metadata(metadata)\n // return metadata.hasCountry(country)\n return metadata.countries[country] !== undefined;\n}\n\nfunction setVersion(metadata) {\n var version = metadata.version;\n\n if (typeof version === 'number') {\n this.v1 = version === 1;\n this.v2 = version === 2;\n this.v3 = version === 3;\n this.v4 = version === 4;\n } else {\n if (!version) {\n this.v1 = true;\n } else if (compare(version, V3) === -1) {\n this.v2 = true;\n } else if (compare(version, V4) === -1) {\n this.v3 = true;\n } else {\n this.v4 = true;\n }\n }\n} // const ISO_COUNTRY_CODE = /^[A-Z]{2}$/\n// function isCountryCode(countryCode) {\n// \treturn ISO_COUNTRY_CODE.test(countryCodeOrCountryCallingCode)\n// }\n//# sourceMappingURL=metadata.js.map","// This file is a workaround for a bug in web browsers' \"native\"\n// ES6 importing system which is uncapable of importing \"*.json\" files.\n// https://github.com/catamphetamine/libphonenumber-js/issues/239\nexport default {\"AC\":\"40123\",\"AD\":\"312345\",\"AE\":\"501234567\",\"AF\":\"701234567\",\"AG\":\"2684641234\",\"AI\":\"2642351234\",\"AL\":\"672123456\",\"AM\":\"77123456\",\"AO\":\"923123456\",\"AR\":\"91123456789\",\"AS\":\"6847331234\",\"AT\":\"664123456\",\"AU\":\"412345678\",\"AW\":\"5601234\",\"AX\":\"412345678\",\"AZ\":\"401234567\",\"BA\":\"61123456\",\"BB\":\"2462501234\",\"BD\":\"1812345678\",\"BE\":\"470123456\",\"BF\":\"70123456\",\"BG\":\"43012345\",\"BH\":\"36001234\",\"BI\":\"79561234\",\"BJ\":\"90011234\",\"BL\":\"690001234\",\"BM\":\"4413701234\",\"BN\":\"7123456\",\"BO\":\"71234567\",\"BQ\":\"3181234\",\"BR\":\"11961234567\",\"BS\":\"2423591234\",\"BT\":\"17123456\",\"BW\":\"71123456\",\"BY\":\"294911911\",\"BZ\":\"6221234\",\"CA\":\"5062345678\",\"CC\":\"412345678\",\"CD\":\"991234567\",\"CF\":\"70012345\",\"CG\":\"061234567\",\"CH\":\"781234567\",\"CI\":\"0123456789\",\"CK\":\"71234\",\"CL\":\"221234567\",\"CM\":\"671234567\",\"CN\":\"13123456789\",\"CO\":\"3211234567\",\"CR\":\"83123456\",\"CU\":\"51234567\",\"CV\":\"9911234\",\"CW\":\"95181234\",\"CX\":\"412345678\",\"CY\":\"96123456\",\"CZ\":\"601123456\",\"DE\":\"15123456789\",\"DJ\":\"77831001\",\"DK\":\"32123456\",\"DM\":\"7672251234\",\"DO\":\"8092345678\",\"DZ\":\"551234567\",\"EC\":\"991234567\",\"EE\":\"51234567\",\"EG\":\"1001234567\",\"EH\":\"650123456\",\"ER\":\"7123456\",\"ES\":\"612345678\",\"ET\":\"911234567\",\"FI\":\"412345678\",\"FJ\":\"7012345\",\"FK\":\"51234\",\"FM\":\"3501234\",\"FO\":\"211234\",\"FR\":\"612345678\",\"GA\":\"06031234\",\"GB\":\"7400123456\",\"GD\":\"4734031234\",\"GE\":\"555123456\",\"GF\":\"694201234\",\"GG\":\"7781123456\",\"GH\":\"231234567\",\"GI\":\"57123456\",\"GL\":\"221234\",\"GM\":\"3012345\",\"GN\":\"601123456\",\"GP\":\"690001234\",\"GQ\":\"222123456\",\"GR\":\"6912345678\",\"GT\":\"51234567\",\"GU\":\"6713001234\",\"GW\":\"955012345\",\"GY\":\"6091234\",\"HK\":\"51234567\",\"HN\":\"91234567\",\"HR\":\"921234567\",\"HT\":\"34101234\",\"HU\":\"201234567\",\"ID\":\"812345678\",\"IE\":\"850123456\",\"IL\":\"502345678\",\"IM\":\"7924123456\",\"IN\":\"8123456789\",\"IO\":\"3801234\",\"IQ\":\"7912345678\",\"IR\":\"9123456789\",\"IS\":\"6111234\",\"IT\":\"3123456789\",\"JE\":\"7797712345\",\"JM\":\"8762101234\",\"JO\":\"790123456\",\"JP\":\"9012345678\",\"KE\":\"712123456\",\"KG\":\"700123456\",\"KH\":\"91234567\",\"KI\":\"72001234\",\"KM\":\"3212345\",\"KN\":\"8697652917\",\"KP\":\"1921234567\",\"KR\":\"1020000000\",\"KW\":\"50012345\",\"KY\":\"3453231234\",\"KZ\":\"7710009998\",\"LA\":\"2023123456\",\"LB\":\"71123456\",\"LC\":\"7582845678\",\"LI\":\"660234567\",\"LK\":\"712345678\",\"LR\":\"770123456\",\"LS\":\"50123456\",\"LT\":\"61234567\",\"LU\":\"628123456\",\"LV\":\"21234567\",\"LY\":\"912345678\",\"MA\":\"650123456\",\"MC\":\"612345678\",\"MD\":\"62112345\",\"ME\":\"67622901\",\"MF\":\"690001234\",\"MG\":\"321234567\",\"MH\":\"2351234\",\"MK\":\"72345678\",\"ML\":\"65012345\",\"MM\":\"92123456\",\"MN\":\"88123456\",\"MO\":\"66123456\",\"MP\":\"6702345678\",\"MQ\":\"696201234\",\"MR\":\"22123456\",\"MS\":\"6644923456\",\"MT\":\"96961234\",\"MU\":\"52512345\",\"MV\":\"7712345\",\"MW\":\"991234567\",\"MX\":\"12221234567\",\"MY\":\"123456789\",\"MZ\":\"821234567\",\"NA\":\"811234567\",\"NC\":\"751234\",\"NE\":\"93123456\",\"NF\":\"381234\",\"NG\":\"8021234567\",\"NI\":\"81234567\",\"NL\":\"612345678\",\"NO\":\"40612345\",\"NP\":\"9841234567\",\"NR\":\"5551234\",\"NU\":\"8884012\",\"NZ\":\"211234567\",\"OM\":\"92123456\",\"PA\":\"61234567\",\"PE\":\"912345678\",\"PF\":\"87123456\",\"PG\":\"70123456\",\"PH\":\"9051234567\",\"PK\":\"3012345678\",\"PL\":\"512345678\",\"PM\":\"551234\",\"PR\":\"7872345678\",\"PS\":\"599123456\",\"PT\":\"912345678\",\"PW\":\"6201234\",\"PY\":\"961456789\",\"QA\":\"33123456\",\"RE\":\"692123456\",\"RO\":\"712034567\",\"RS\":\"601234567\",\"RU\":\"9123456789\",\"RW\":\"720123456\",\"SA\":\"512345678\",\"SB\":\"7421234\",\"SC\":\"2510123\",\"SD\":\"911231234\",\"SE\":\"701234567\",\"SG\":\"81234567\",\"SH\":\"51234\",\"SI\":\"31234567\",\"SJ\":\"41234567\",\"SK\":\"912123456\",\"SL\":\"25123456\",\"SM\":\"66661212\",\"SN\":\"701234567\",\"SO\":\"71123456\",\"SR\":\"7412345\",\"SS\":\"977123456\",\"ST\":\"9812345\",\"SV\":\"70123456\",\"SX\":\"7215205678\",\"SY\":\"944567890\",\"SZ\":\"76123456\",\"TA\":\"8999\",\"TC\":\"6492311234\",\"TD\":\"63012345\",\"TG\":\"90112345\",\"TH\":\"812345678\",\"TJ\":\"917123456\",\"TK\":\"7290\",\"TL\":\"77212345\",\"TM\":\"66123456\",\"TN\":\"20123456\",\"TO\":\"7715123\",\"TR\":\"5012345678\",\"TT\":\"8682911234\",\"TV\":\"901234\",\"TW\":\"912345678\",\"TZ\":\"621234567\",\"UA\":\"501234567\",\"UG\":\"712345678\",\"US\":\"2015550123\",\"UY\":\"94231234\",\"UZ\":\"912345678\",\"VA\":\"3123456789\",\"VC\":\"7844301234\",\"VE\":\"4121234567\",\"VG\":\"2843001234\",\"VI\":\"3406421234\",\"VN\":\"912345678\",\"VU\":\"5912345\",\"WF\":\"821234\",\"WS\":\"7212345\",\"XK\":\"43201234\",\"YE\":\"712345678\",\"YT\":\"639012345\",\"ZA\":\"711234567\",\"ZM\":\"955123456\",\"ZW\":\"712345678\"}","import PhoneNumber from './PhoneNumber.js';\nexport default function getExampleNumber(country, examples, metadata) {\n if (examples[country]) {\n return new PhoneNumber(country, examples[country], metadata);\n }\n}\n//# sourceMappingURL=getExampleNumber.js.map","import withMetadataArgument from './withMetadataArgument.js'\r\nimport { getExampleNumber as _getExampleNumber } from '../../core/index.js'\r\n\r\nexport function getExampleNumber() {\r\n\treturn withMetadataArgument(_getExampleNumber, arguments)\r\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n// https://stackoverflow.com/a/46971044/970769\n// \"Breaking changes in Typescript 2.1\"\n// \"Extending built-ins like Error, Array, and Map may no longer work.\"\n// \"As a recommendation, you can manually adjust the prototype immediately after any super(...) calls.\"\n// https://github.com/Microsoft/TypeScript-wiki/blob/main/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\nvar ParseError = /*#__PURE__*/function (_Error) {\n _inherits(ParseError, _Error);\n\n var _super = _createSuper(ParseError);\n\n function ParseError(code) {\n var _this;\n\n _classCallCheck(this, ParseError);\n\n _this = _super.call(this, code); // Set the prototype explicitly.\n // Any subclass of FooError will have to manually set the prototype as well.\n\n Object.setPrototypeOf(_assertThisInitialized(_this), ParseError.prototype);\n _this.name = _this.constructor.name;\n return _this;\n }\n\n return _createClass(ParseError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nexport { ParseError as default };\n//# sourceMappingURL=ParseError.js.map","import createExtensionPattern from './createExtensionPattern.js'; // Regexp of all known extension prefixes used by different regions followed by\n// 1 or more valid digits, for use when parsing.\n\nvar EXTN_PATTERN = new RegExp('(?:' + createExtensionPattern() + ')$', 'i'); // Strips any extension (as in, the part of the number dialled after the call is\n// connected, usually indicated with extn, ext, x or similar) from the end of\n// the number, and returns it.\n\nexport default function extractExtension(number) {\n var start = number.search(EXTN_PATTERN);\n\n if (start < 0) {\n return {};\n } // If we find a potential extension, and the number preceding this is a viable\n // number, we assume it is an extension.\n\n\n var numberWithoutExtension = number.slice(0, start);\n var matches = number.match(EXTN_PATTERN);\n var i = 1;\n\n while (i < matches.length) {\n if (matches[i]) {\n return {\n number: numberWithoutExtension,\n ext: matches[i]\n };\n }\n\n i++;\n }\n}\n//# sourceMappingURL=extractExtension.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n// These mappings map a character (key) to a specific digit that should\n// replace it for normalization purposes. Non-European digits that\n// may be used in phone numbers are mapped to a European equivalent.\n//\n// E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n//\nexport var DIGITS = {\n '0': '0',\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n \"\\uFF10\": '0',\n // Fullwidth digit 0\n \"\\uFF11\": '1',\n // Fullwidth digit 1\n \"\\uFF12\": '2',\n // Fullwidth digit 2\n \"\\uFF13\": '3',\n // Fullwidth digit 3\n \"\\uFF14\": '4',\n // Fullwidth digit 4\n \"\\uFF15\": '5',\n // Fullwidth digit 5\n \"\\uFF16\": '6',\n // Fullwidth digit 6\n \"\\uFF17\": '7',\n // Fullwidth digit 7\n \"\\uFF18\": '8',\n // Fullwidth digit 8\n \"\\uFF19\": '9',\n // Fullwidth digit 9\n \"\\u0660\": '0',\n // Arabic-indic digit 0\n \"\\u0661\": '1',\n // Arabic-indic digit 1\n \"\\u0662\": '2',\n // Arabic-indic digit 2\n \"\\u0663\": '3',\n // Arabic-indic digit 3\n \"\\u0664\": '4',\n // Arabic-indic digit 4\n \"\\u0665\": '5',\n // Arabic-indic digit 5\n \"\\u0666\": '6',\n // Arabic-indic digit 6\n \"\\u0667\": '7',\n // Arabic-indic digit 7\n \"\\u0668\": '8',\n // Arabic-indic digit 8\n \"\\u0669\": '9',\n // Arabic-indic digit 9\n \"\\u06F0\": '0',\n // Eastern-Arabic digit 0\n \"\\u06F1\": '1',\n // Eastern-Arabic digit 1\n \"\\u06F2\": '2',\n // Eastern-Arabic digit 2\n \"\\u06F3\": '3',\n // Eastern-Arabic digit 3\n \"\\u06F4\": '4',\n // Eastern-Arabic digit 4\n \"\\u06F5\": '5',\n // Eastern-Arabic digit 5\n \"\\u06F6\": '6',\n // Eastern-Arabic digit 6\n \"\\u06F7\": '7',\n // Eastern-Arabic digit 7\n \"\\u06F8\": '8',\n // Eastern-Arabic digit 8\n \"\\u06F9\": '9' // Eastern-Arabic digit 9\n\n};\nexport function parseDigit(character) {\n return DIGITS[character];\n}\n/**\r\n * Parses phone number digits from a string.\r\n * Drops all punctuation leaving only digits.\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * parseDigits('8 (800) 555')\r\n * // Outputs '8800555'.\r\n * ```\r\n */\n\nexport default function parseDigits(string) {\n var result = ''; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n\n for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n var digit = parseDigit(character);\n\n if (digit) {\n result += digit;\n }\n }\n\n return result;\n}\n//# sourceMappingURL=parseDigits.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { parseDigit } from './helpers/parseDigits.js';\n/**\r\n * Parses phone number characters from a string.\r\n * Drops all punctuation leaving only digits and the leading `+` sign (if any).\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * // Outputs '8800555'.\r\n * parseIncompletePhoneNumber('8 (800) 555')\r\n * // Outputs '+7800555'.\r\n * parseIncompletePhoneNumber('+7 800 555')\r\n * ```\r\n */\n\nexport default function parseIncompletePhoneNumber(string) {\n var result = ''; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n\n for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n result += parsePhoneNumberCharacter(character, result) || '';\n }\n\n return result;\n}\n/**\r\n * Parses next character while parsing phone number digits (including a `+`)\r\n * from text: discards everything except `+` and digits, and `+` is only allowed\r\n * at the start of a phone number.\r\n * For example, is used in `react-phone-number-input` where it uses\r\n * [`input-format`](https://gitlab.com/catamphetamine/input-format).\r\n * @param {string} character - Yet another character from raw input string.\r\n * @param {string?} prevParsedCharacters - Previous parsed characters.\r\n * @param {object} meta - Optional custom use-case-specific metadata.\r\n * @return {string?} The parsed character.\r\n */\n\nexport function parsePhoneNumberCharacter(character, prevParsedCharacters) {\n // Only allow a leading `+`.\n if (character === '+') {\n // If this `+` is not the first parsed character\n // then discard it.\n if (prevParsedCharacters) {\n return;\n }\n\n return '+';\n } // Allow digits.\n\n\n return parseDigit(character);\n}\n//# sourceMappingURL=parseIncompletePhoneNumber.js.map","import Metadata from '../metadata.js';\nimport { VALID_DIGITS } from '../constants.js';\nvar CAPTURING_DIGIT_PATTERN = new RegExp('([' + VALID_DIGITS + '])');\nexport default function stripIddPrefix(number, country, callingCode, metadata) {\n if (!country) {\n return;\n } // Check if the number is IDD-prefixed.\n\n\n var countryMetadata = new Metadata(metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n var IDDPrefixPattern = new RegExp(countryMetadata.IDDPrefix());\n\n if (number.search(IDDPrefixPattern) !== 0) {\n return;\n } // Strip IDD prefix.\n\n\n number = number.slice(number.match(IDDPrefixPattern)[0].length); // If there're any digits after an IDD prefix,\n // then those digits are a country calling code.\n // Since no country code starts with a `0`,\n // the code below validates that the next digit (if present) is not `0`.\n\n var matchedGroups = number.match(CAPTURING_DIGIT_PATTERN);\n\n if (matchedGroups && matchedGroups[1] != null && matchedGroups[1].length > 0) {\n if (matchedGroups[1] === '0') {\n return;\n }\n }\n\n return number;\n}\n//# sourceMappingURL=stripIddPrefix.js.map","import extractNationalNumberFromPossiblyIncompleteNumber from './extractNationalNumberFromPossiblyIncompleteNumber.js';\nimport matchesEntirely from './matchesEntirely.js';\nimport checkNumberLength from './checkNumberLength.js';\n/**\r\n * Strips national prefix and carrier code from a complete phone number.\r\n * The difference from the non-\"FromCompleteNumber\" function is that\r\n * it won't extract national prefix if the resultant number is too short\r\n * to be a complete number for the selected phone numbering plan.\r\n * @param {string} number — Complete phone number digits.\r\n * @param {Metadata} metadata — Metadata with a phone numbering plan selected.\r\n * @return {object} `{ nationalNumber: string, carrierCode: string? }`.\r\n */\n\nexport default function extractNationalNumber(number, metadata) {\n // Parsing national prefixes and carrier codes\n // is only required for local phone numbers\n // but some people don't understand that\n // and sometimes write international phone numbers\n // with national prefixes (or maybe even carrier codes).\n // http://ucken.blogspot.ru/2016/03/trunk-prefixes-in-skype4b.html\n // Google's original library forgives such mistakes\n // and so does this library, because it has been requested:\n // https://github.com/catamphetamine/libphonenumber-js/issues/127\n var _extractNationalNumbe = extractNationalNumberFromPossiblyIncompleteNumber(number, metadata),\n carrierCode = _extractNationalNumbe.carrierCode,\n nationalNumber = _extractNationalNumbe.nationalNumber;\n\n if (nationalNumber !== number) {\n if (!shouldHaveExtractedNationalPrefix(number, nationalNumber, metadata)) {\n // Don't strip the national prefix.\n return {\n nationalNumber: number\n };\n } // Check the national (significant) number length after extracting national prefix and carrier code.\n // Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature.\n\n\n if (metadata.possibleLengths()) {\n // The number remaining after stripping the national prefix and carrier code\n // should be long enough to have a possible length for the country.\n // Otherwise, don't strip the national prefix and carrier code,\n // since the original number could be a valid number.\n // This check has been copy-pasted \"as is\" from Google's original library:\n // https://github.com/google/libphonenumber/blob/876268eb1ad6cdc1b7b5bef17fc5e43052702d57/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L3236-L3250\n // It doesn't check for the \"possibility\" of the original `number`.\n // I guess it's fine not checking that one. It works as is anyway.\n if (!isPossibleIncompleteNationalNumber(nationalNumber, metadata)) {\n // Don't strip the national prefix.\n return {\n nationalNumber: number\n };\n }\n }\n }\n\n return {\n nationalNumber: nationalNumber,\n carrierCode: carrierCode\n };\n} // In some countries, the same digit could be a national prefix\n// or a leading digit of a valid phone number.\n// For example, in Russia, national prefix is `8`,\n// and also `800 555 35 35` is a valid number\n// in which `8` is not a national prefix, but the first digit\n// of a national (significant) number.\n// Same's with Belarus:\n// `82004910060` is a valid national (significant) number,\n// but `2004910060` is not.\n// To support such cases (to prevent the code from always stripping\n// national prefix), a condition is imposed: a national prefix\n// is not extracted when the original number is \"viable\" and the\n// resultant number is not, a \"viable\" national number being the one\n// that matches `national_number_pattern`.\n\nfunction shouldHaveExtractedNationalPrefix(nationalNumberBefore, nationalNumberAfter, metadata) {\n // The equivalent in Google's code is:\n // https://github.com/google/libphonenumber/blob/e326fa1fc4283bb05eb35cb3c15c18f98a31af33/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L2969-L3004\n if (matchesEntirely(nationalNumberBefore, metadata.nationalNumberPattern()) && !matchesEntirely(nationalNumberAfter, metadata.nationalNumberPattern())) {\n return false;\n } // This \"is possible\" national number (length) check has been commented out\n // because it's superceded by the (effectively) same check done in the\n // `extractNationalNumber()` function after it calls `shouldHaveExtractedNationalPrefix()`.\n // In other words, why run the same check twice if it could only be run once.\n // // Check the national (significant) number length after extracting national prefix and carrier code.\n // // Fixes a minor \"weird behavior\" bug: https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/57\n // // (Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature).\n // if (metadata.possibleLengths()) {\n // \tif (isPossibleIncompleteNationalNumber(nationalNumberBefore, metadata) &&\n // \t\t!isPossibleIncompleteNationalNumber(nationalNumberAfter, metadata)) {\n // \t\treturn false\n // \t}\n // }\n\n\n return true;\n}\n\nfunction isPossibleIncompleteNationalNumber(nationalNumber, metadata) {\n switch (checkNumberLength(nationalNumber, metadata)) {\n case 'TOO_SHORT':\n case 'INVALID_LENGTH':\n // This library ignores \"local-only\" phone numbers (for simplicity).\n // See the readme for more info on what are \"local-only\" phone numbers.\n // case 'IS_POSSIBLE_LOCAL_ONLY':\n return false;\n\n default:\n return true;\n }\n}\n//# sourceMappingURL=extractNationalNumber.js.map","/**\r\n * Strips any national prefix (such as 0, 1) present in a\r\n * (possibly incomplete) number provided.\r\n * \"Carrier codes\" are only used in Colombia and Brazil,\r\n * and only when dialing within those countries from a mobile phone to a fixed line number.\r\n * Sometimes it won't actually strip national prefix\r\n * and will instead prepend some digits to the `number`:\r\n * for example, when number `2345678` is passed with `VI` country selected,\r\n * it will return `{ number: \"3402345678\" }`, because `340` area code is prepended.\r\n * @param {string} number — National number digits.\r\n * @param {object} metadata — Metadata with country selected.\r\n * @return {object} `{ nationalNumber: string, nationalPrefix: string? carrierCode: string? }`. Even if a national prefix was extracted, it's not necessarily present in the returned object, so don't rely on its presence in the returned object in order to find out whether a national prefix has been extracted or not.\r\n */\nexport default function extractNationalNumberFromPossiblyIncompleteNumber(number, metadata) {\n if (number && metadata.numberingPlan.nationalPrefixForParsing()) {\n // See METADATA.md for the description of\n // `national_prefix_for_parsing` and `national_prefix_transform_rule`.\n // Attempt to parse the first digits as a national prefix.\n var prefixPattern = new RegExp('^(?:' + metadata.numberingPlan.nationalPrefixForParsing() + ')');\n var prefixMatch = prefixPattern.exec(number);\n\n if (prefixMatch) {\n var nationalNumber;\n var carrierCode; // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n // If a `national_prefix_for_parsing` has any \"capturing groups\"\n // then it means that the national (significant) number is equal to\n // those \"capturing groups\" transformed via `national_prefix_transform_rule`,\n // and nothing could be said about the actual national prefix:\n // what is it and was it even there.\n // If a `national_prefix_for_parsing` doesn't have any \"capturing groups\",\n // then everything it matches is a national prefix.\n // To determine whether `national_prefix_for_parsing` matched any\n // \"capturing groups\", the value of the result of calling `.exec()`\n // is looked at, and if it has non-undefined values where there're\n // \"capturing groups\" in the regular expression, then it means\n // that \"capturing groups\" have been matched.\n // It's not possible to tell whether there'll be any \"capturing gropus\"\n // before the matching process, because a `national_prefix_for_parsing`\n // could exhibit both behaviors.\n\n var capturedGroupsCount = prefixMatch.length - 1;\n var hasCapturedGroups = capturedGroupsCount > 0 && prefixMatch[capturedGroupsCount];\n\n if (metadata.nationalPrefixTransformRule() && hasCapturedGroups) {\n nationalNumber = number.replace(prefixPattern, metadata.nationalPrefixTransformRule()); // If there's more than one captured group,\n // then carrier code is the second one.\n\n if (capturedGroupsCount > 1) {\n carrierCode = prefixMatch[1];\n }\n } // If there're no \"capturing groups\",\n // or if there're \"capturing groups\" but no\n // `national_prefix_transform_rule`,\n // then just strip the national prefix from the number,\n // and possibly a carrier code.\n // Seems like there could be more.\n else {\n // `prefixBeforeNationalNumber` is the whole substring matched by\n // the `national_prefix_for_parsing` regular expression.\n // There seem to be no guarantees that it's just a national prefix.\n // For example, if there's a carrier code, it's gonna be a\n // part of `prefixBeforeNationalNumber` too.\n var prefixBeforeNationalNumber = prefixMatch[0];\n nationalNumber = number.slice(prefixBeforeNationalNumber.length); // If there's at least one captured group,\n // then carrier code is the first one.\n\n if (hasCapturedGroups) {\n carrierCode = prefixMatch[1];\n }\n } // Tries to guess whether a national prefix was present in the input.\n // This is not something copy-pasted from Google's library:\n // they don't seem to have an equivalent for that.\n // So this isn't an \"officially approved\" way of doing something like that.\n // But since there seems no other existing method, this library uses it.\n\n\n var nationalPrefix;\n\n if (hasCapturedGroups) {\n var possiblePositionOfTheFirstCapturedGroup = number.indexOf(prefixMatch[1]);\n var possibleNationalPrefix = number.slice(0, possiblePositionOfTheFirstCapturedGroup); // Example: an Argentinian (AR) phone number `0111523456789`.\n // `prefixMatch[0]` is `01115`, and `$1` is `11`,\n // and the rest of the phone number is `23456789`.\n // The national number is transformed via `9$1` to `91123456789`.\n // National prefix `0` is detected being present at the start.\n // if (possibleNationalPrefix.indexOf(metadata.numberingPlan.nationalPrefix()) === 0) {\n\n if (possibleNationalPrefix === metadata.numberingPlan.nationalPrefix()) {\n nationalPrefix = metadata.numberingPlan.nationalPrefix();\n }\n } else {\n nationalPrefix = prefixMatch[0];\n }\n\n return {\n nationalNumber: nationalNumber,\n nationalPrefix: nationalPrefix,\n carrierCode: carrierCode\n };\n }\n }\n\n return {\n nationalNumber: number\n };\n}\n//# sourceMappingURL=extractNationalNumberFromPossiblyIncompleteNumber.js.map","import stripIddPrefix from './stripIddPrefix.js';\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js';\nimport Metadata from '../metadata.js';\nimport { MAX_LENGTH_COUNTRY_CODE } from '../constants.js';\n/**\r\n * Converts a phone number digits (possibly with a `+`)\r\n * into a calling code and the rest phone number digits.\r\n * The \"rest phone number digits\" could include\r\n * a national prefix, carrier code, and national\r\n * (significant) number.\r\n * @param {string} number — Phone number digits (possibly with a `+`).\r\n * @param {string} [country] — Default country.\r\n * @param {string} [callingCode] — Default calling code (some phone numbering plans are non-geographic).\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCode: string?, number: string }`\r\n * @example\r\n * // Returns `{ countryCallingCode: \"1\", number: \"2133734253\" }`.\r\n * extractCountryCallingCode('2133734253', 'US', null, metadata)\r\n * extractCountryCallingCode('2133734253', null, '1', metadata)\r\n * extractCountryCallingCode('+12133734253', null, null, metadata)\r\n * extractCountryCallingCode('+12133734253', 'RU', null, metadata)\r\n */\n\nexport default function extractCountryCallingCode(number, country, callingCode, metadata) {\n if (!number) {\n return {};\n } // If this is not an international phone number,\n // then either extract an \"IDD\" prefix, or extract a\n // country calling code from a number by autocorrecting it\n // by prepending a leading `+` in cases when it starts\n // with the country calling code.\n // https://wikitravel.org/en/International_dialling_prefix\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n\n\n if (number[0] !== '+') {\n // Convert an \"out-of-country\" dialing phone number\n // to a proper international phone number.\n var numberWithoutIDD = stripIddPrefix(number, country, callingCode, metadata); // If an IDD prefix was stripped then\n // convert the number to international one\n // for subsequent parsing.\n\n if (numberWithoutIDD && numberWithoutIDD !== number) {\n number = '+' + numberWithoutIDD;\n } else {\n // Check to see if the number starts with the country calling code\n // for the default country. If so, we remove the country calling code,\n // and do some checks on the validity of the number before and after.\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n if (country || callingCode) {\n var _extractCountryCallin = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata),\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n shorterNumber = _extractCountryCallin.number;\n\n if (countryCallingCode) {\n return {\n countryCallingCode: countryCallingCode,\n number: shorterNumber\n };\n }\n }\n\n return {\n number: number\n };\n }\n } // Fast abortion: country codes do not begin with a '0'\n\n\n if (number[1] === '0') {\n return {};\n }\n\n metadata = new Metadata(metadata); // The thing with country phone codes\n // is that they are orthogonal to each other\n // i.e. there's no such country phone code A\n // for which country phone code B exists\n // where B starts with A.\n // Therefore, while scanning digits,\n // if a valid country code is found,\n // that means that it is the country code.\n //\n\n var i = 2;\n\n while (i - 1 <= MAX_LENGTH_COUNTRY_CODE && i <= number.length) {\n var _countryCallingCode = number.slice(1, i);\n\n if (metadata.hasCallingCode(_countryCallingCode)) {\n metadata.selectNumberingPlan(_countryCallingCode);\n return {\n countryCallingCode: _countryCallingCode,\n number: number.slice(i)\n };\n }\n\n i++;\n }\n\n return {};\n}\n//# sourceMappingURL=extractCountryCallingCode.js.map","import Metadata from '../metadata.js';\nimport matchesEntirely from './matchesEntirely.js';\nimport extractNationalNumber from './extractNationalNumber.js';\nimport checkNumberLength from './checkNumberLength.js';\nimport getCountryCallingCode from '../getCountryCallingCode.js';\n/**\r\n * Sometimes some people incorrectly input international phone numbers\r\n * without the leading `+`. This function corrects such input.\r\n * @param {string} number — Phone number digits.\r\n * @param {string?} country\r\n * @param {string?} callingCode\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCode: string?, number: string }`.\r\n */\n\nexport default function extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata) {\n var countryCallingCode = country ? getCountryCallingCode(country, metadata) : callingCode;\n\n if (number.indexOf(countryCallingCode) === 0) {\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(country, callingCode);\n var possibleShorterNumber = number.slice(countryCallingCode.length);\n\n var _extractNationalNumbe = extractNationalNumber(possibleShorterNumber, metadata),\n possibleShorterNationalNumber = _extractNationalNumbe.nationalNumber;\n\n var _extractNationalNumbe2 = extractNationalNumber(number, metadata),\n nationalNumber = _extractNationalNumbe2.nationalNumber; // If the number was not valid before but is valid now,\n // or if it was too long before, we consider the number\n // with the country calling code stripped to be a better result\n // and keep that instead.\n // For example, in Germany (+49), `49` is a valid area code,\n // so if a number starts with `49`, it could be both a valid\n // national German number or an international number without\n // a leading `+`.\n\n\n if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) && matchesEntirely(possibleShorterNationalNumber, metadata.nationalNumberPattern()) || checkNumberLength(nationalNumber, metadata) === 'TOO_LONG') {\n return {\n countryCallingCode: countryCallingCode,\n number: possibleShorterNumber\n };\n }\n }\n\n return {\n number: number\n };\n}\n//# sourceMappingURL=extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport Metadata from '../metadata.js';\nimport getNumberType from './getNumberType.js';\nexport default function getCountryByNationalNumber(possibleCountries, nationalPhoneNumber, metadata) {\n // Re-create `metadata` because it will be selecting a `country`.\n metadata = new Metadata(metadata);\n\n for (var _iterator = _createForOfIteratorHelperLoose(possibleCountries), _step; !(_step = _iterator()).done;) {\n var country = _step.value;\n metadata.country(country); // \"Leading digits\" patterns are only defined for about 20% of all countries.\n // By definition, matching \"leading digits\" is a sufficient but not a necessary\n // condition for a phone number to belong to a country.\n // The point of \"leading digits\" check is that it's the fastest one to get a match.\n // https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md#leading_digits\n\n if (metadata.leadingDigits()) {\n if (nationalPhoneNumber && nationalPhoneNumber.search(metadata.leadingDigits()) === 0) {\n return country;\n }\n } // Else perform full validation with all of those\n // fixed-line/mobile/etc regular expressions.\n else if (getNumberType({\n phone: nationalPhoneNumber,\n country: country\n }, undefined, metadata.metadata)) {\n return country;\n }\n }\n}\n//# sourceMappingURL=getCountryByNationalNumber.js.map","import getCountryByNationalNumber from './getCountryByNationalNumber.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\nexport default function getCountryByCallingCode(callingCode, nationalPhoneNumber, metadata) {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(callingCode)) {\n return '001';\n }\n }\n\n var possibleCountries = metadata.getCountryCodesForCallingCode(callingCode);\n\n if (!possibleCountries) {\n return;\n } // If there's just one country corresponding to the country code,\n // then just return it, without further phone number digits validation.\n\n\n if (possibleCountries.length === 1) {\n return possibleCountries[0];\n }\n\n return getCountryByNationalNumber(possibleCountries, nationalPhoneNumber, metadata.metadata);\n}\n//# sourceMappingURL=getCountryByCallingCode.js.map","// This is a port of Google Android `libphonenumber`'s\n// `phonenumberutil.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\nimport { VALID_DIGITS, PLUS_CHARS, MIN_LENGTH_FOR_NSN, MAX_LENGTH_FOR_NSN } from './constants.js';\nimport ParseError from './ParseError.js';\nimport Metadata from './metadata.js';\nimport isViablePhoneNumber, { isViablePhoneNumberStart } from './helpers/isViablePhoneNumber.js';\nimport extractExtension from './helpers/extension/extractExtension.js';\nimport parseIncompletePhoneNumber from './parseIncompletePhoneNumber.js';\nimport getCountryCallingCode from './getCountryCallingCode.js';\nimport { isPossibleNumber } from './isPossibleNumber_.js';\nimport { parseRFC3966 } from './helpers/RFC3966.js';\nimport PhoneNumber from './PhoneNumber.js';\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport extractCountryCallingCode from './helpers/extractCountryCallingCode.js';\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js';\nimport extractNationalNumber from './helpers/extractNationalNumber.js';\nimport stripIddPrefix from './helpers/stripIddPrefix.js';\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode.js'; // We don't allow input strings for parsing to be longer than 250 chars.\n// This prevents malicious input from consuming CPU.\n\nvar MAX_INPUT_STRING_LENGTH = 250; // This consists of the plus symbol, digits, and arabic-indic digits.\n\nvar PHONE_NUMBER_START_PATTERN = new RegExp('[' + PLUS_CHARS + VALID_DIGITS + ']'); // Regular expression of trailing characters that we want to remove.\n// A trailing `#` is sometimes used when writing phone numbers with extensions in US.\n// Example: \"+1 (645) 123 1234-910#\" number has extension \"910\".\n\nvar AFTER_PHONE_NUMBER_END_PATTERN = new RegExp('[^' + VALID_DIGITS + '#' + ']+$');\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false; // Examples:\n//\n// ```js\n// parse('8 (800) 555-35-35', 'RU')\n// parse('8 (800) 555-35-35', 'RU', metadata)\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } })\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } }, metadata)\n// parse('+7 800 555 35 35')\n// parse('+7 800 555 35 35', metadata)\n// ```\n//\n\nexport default function parse(text, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {};\n metadata = new Metadata(metadata); // Validate `defaultCountry`.\n\n if (options.defaultCountry && !metadata.hasCountry(options.defaultCountry)) {\n if (options.v2) {\n throw new ParseError('INVALID_COUNTRY');\n }\n\n throw new Error(\"Unknown country: \".concat(options.defaultCountry));\n } // Parse the phone number.\n\n\n var _parseInput = parseInput(text, options.v2, options.extract),\n formattedPhoneNumber = _parseInput.number,\n ext = _parseInput.ext,\n error = _parseInput.error; // If the phone number is not viable then return nothing.\n\n\n if (!formattedPhoneNumber) {\n if (options.v2) {\n if (error === 'TOO_SHORT') {\n throw new ParseError('TOO_SHORT');\n }\n\n throw new ParseError('NOT_A_NUMBER');\n }\n\n return {};\n }\n\n var _parsePhoneNumber = parsePhoneNumber(formattedPhoneNumber, options.defaultCountry, options.defaultCallingCode, metadata),\n country = _parsePhoneNumber.country,\n nationalNumber = _parsePhoneNumber.nationalNumber,\n countryCallingCode = _parsePhoneNumber.countryCallingCode,\n carrierCode = _parsePhoneNumber.carrierCode;\n\n if (!metadata.hasSelectedNumberingPlan()) {\n if (options.v2) {\n throw new ParseError('INVALID_COUNTRY');\n }\n\n return {};\n } // Validate national (significant) number length.\n\n\n if (!nationalNumber || nationalNumber.length < MIN_LENGTH_FOR_NSN) {\n // Won't throw here because the regexp already demands length > 1.\n\n /* istanbul ignore if */\n if (options.v2) {\n throw new ParseError('TOO_SHORT');\n } // Google's demo just throws an error in this case.\n\n\n return {};\n } // Validate national (significant) number length.\n //\n // A sidenote:\n //\n // They say that sometimes national (significant) numbers\n // can be longer than `MAX_LENGTH_FOR_NSN` (e.g. in Germany).\n // https://github.com/googlei18n/libphonenumber/blob/7e1748645552da39c4e1ba731e47969d97bdb539/resources/phonenumber.proto#L36\n // Such numbers will just be discarded.\n //\n\n\n if (nationalNumber.length > MAX_LENGTH_FOR_NSN) {\n if (options.v2) {\n throw new ParseError('TOO_LONG');\n } // Google's demo just throws an error in this case.\n\n\n return {};\n }\n\n if (options.v2) {\n var phoneNumber = new PhoneNumber(countryCallingCode, nationalNumber, metadata.metadata);\n\n if (country) {\n phoneNumber.country = country;\n }\n\n if (carrierCode) {\n phoneNumber.carrierCode = carrierCode;\n }\n\n if (ext) {\n phoneNumber.ext = ext;\n }\n\n return phoneNumber;\n } // Check if national phone number pattern matches the number.\n // National number pattern is different for each country,\n // even for those ones which are part of the \"NANPA\" group.\n\n\n var valid = (options.extended ? metadata.hasSelectedNumberingPlan() : country) ? matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) : false;\n\n if (!options.extended) {\n return valid ? result(country, nationalNumber, ext) : {};\n } // isInternational: countryCallingCode !== undefined\n\n\n return {\n country: country,\n countryCallingCode: countryCallingCode,\n carrierCode: carrierCode,\n valid: valid,\n possible: valid ? true : options.extended === true && metadata.possibleLengths() && isPossibleNumber(nationalNumber, metadata) ? true : false,\n phone: nationalNumber,\n ext: ext\n };\n}\n/**\r\n * Extracts a formatted phone number from text.\r\n * Doesn't guarantee that the extracted phone number\r\n * is a valid phone number (for example, doesn't validate its length).\r\n * @param {string} text\r\n * @param {boolean} [extract] — If `false`, then will parse the entire `text` as a phone number.\r\n * @param {boolean} [throwOnError] — By default, it won't throw if the text is too long.\r\n * @return {string}\r\n * @example\r\n * // Returns \"(213) 373-4253\".\r\n * extractFormattedPhoneNumber(\"Call (213) 373-4253 for assistance.\")\r\n */\n\nfunction extractFormattedPhoneNumber(text, extract, throwOnError) {\n if (!text) {\n return;\n }\n\n if (text.length > MAX_INPUT_STRING_LENGTH) {\n if (throwOnError) {\n throw new ParseError('TOO_LONG');\n }\n\n return;\n }\n\n if (extract === false) {\n return text;\n } // Attempt to extract a possible number from the string passed in\n\n\n var startsAt = text.search(PHONE_NUMBER_START_PATTERN);\n\n if (startsAt < 0) {\n return;\n }\n\n return text // Trim everything to the left of the phone number\n .slice(startsAt) // Remove trailing non-numerical characters\n .replace(AFTER_PHONE_NUMBER_END_PATTERN, '');\n}\n/**\r\n * @param {string} text - Input.\r\n * @param {boolean} v2 - Legacy API functions don't pass `v2: true` flag.\r\n * @param {boolean} [extract] - Whether to extract a phone number from `text`, or attempt to parse the entire text as a phone number.\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\n\n\nfunction parseInput(text, v2, extract) {\n // Parse RFC 3966 phone number URI.\n if (text && text.indexOf('tel:') === 0) {\n return parseRFC3966(text);\n }\n\n var number = extractFormattedPhoneNumber(text, extract, v2); // If the phone number is not viable, then abort.\n\n if (!number) {\n return {};\n }\n\n if (!isViablePhoneNumber(number)) {\n if (isViablePhoneNumberStart(number)) {\n return {\n error: 'TOO_SHORT'\n };\n }\n\n return {};\n } // Attempt to parse extension first, since it doesn't require region-specific\n // data and we want to have the non-normalised number here.\n\n\n var withExtensionStripped = extractExtension(number);\n\n if (withExtensionStripped.ext) {\n return withExtensionStripped;\n }\n\n return {\n number: number\n };\n}\n/**\r\n * Creates `parse()` result object.\r\n */\n\n\nfunction result(country, nationalNumber, ext) {\n var result = {\n country: country,\n phone: nationalNumber\n };\n\n if (ext) {\n result.ext = ext;\n }\n\n return result;\n}\n/**\r\n * Parses a viable phone number.\r\n * @param {string} formattedPhoneNumber — Example: \"(213) 373-4253\".\r\n * @param {string} [defaultCountry]\r\n * @param {string} [defaultCallingCode]\r\n * @param {Metadata} metadata\r\n * @return {object} Returns `{ country: string?, countryCallingCode: string?, nationalNumber: string? }`.\r\n */\n\n\nfunction parsePhoneNumber(formattedPhoneNumber, defaultCountry, defaultCallingCode, metadata) {\n // Extract calling code from phone number.\n var _extractCountryCallin = extractCountryCallingCode(parseIncompletePhoneNumber(formattedPhoneNumber), defaultCountry, defaultCallingCode, metadata.metadata),\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n number = _extractCountryCallin.number; // Choose a country by `countryCallingCode`.\n\n\n var country;\n\n if (countryCallingCode) {\n metadata.selectNumberingPlan(countryCallingCode);\n } // If `formattedPhoneNumber` is in \"national\" format\n // then `number` is defined and `countryCallingCode` isn't.\n else if (number && (defaultCountry || defaultCallingCode)) {\n metadata.selectNumberingPlan(defaultCountry, defaultCallingCode);\n\n if (defaultCountry) {\n country = defaultCountry;\n } else {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(defaultCallingCode)) {\n country = '001';\n }\n }\n }\n\n countryCallingCode = defaultCallingCode || getCountryCallingCode(defaultCountry, metadata.metadata);\n } else return {};\n\n if (!number) {\n return {\n countryCallingCode: countryCallingCode\n };\n }\n\n var _extractNationalNumbe = extractNationalNumber(parseIncompletePhoneNumber(number), metadata),\n nationalNumber = _extractNationalNumbe.nationalNumber,\n carrierCode = _extractNationalNumbe.carrierCode; // Sometimes there are several countries\n // corresponding to the same country phone code\n // (e.g. NANPA countries all having `1` country phone code).\n // Therefore, to reliably determine the exact country,\n // national (significant) number should have been parsed first.\n //\n // When `metadata.json` is generated, all \"ambiguous\" country phone codes\n // get their countries populated with the full set of\n // \"phone number type\" regular expressions.\n //\n\n\n var exactCountry = getCountryByCallingCode(countryCallingCode, nationalNumber, metadata);\n\n if (exactCountry) {\n country = exactCountry;\n /* istanbul ignore if */\n\n if (exactCountry === '001') {// Can't happen with `USE_NON_GEOGRAPHIC_COUNTRY_CODE` being `false`.\n // If `USE_NON_GEOGRAPHIC_COUNTRY_CODE` is set to `true` for some reason,\n // then remove the \"istanbul ignore if\".\n } else {\n metadata.country(country);\n }\n }\n\n return {\n country: country,\n countryCallingCode: countryCallingCode,\n nationalNumber: nationalNumber,\n carrierCode: carrierCode\n };\n}\n//# sourceMappingURL=parse_.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport parseNumber from './parse_.js';\nexport default function parsePhoneNumber(text, options, metadata) {\n return parseNumber(text, _objectSpread(_objectSpread({}, options), {}, {\n v2: true\n }), metadata);\n}\n//# sourceMappingURL=parsePhoneNumber_.js.map","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport parsePhoneNumber_ from './parsePhoneNumber_.js';\nexport default function parsePhoneNumber() {\n var _normalizeArguments = normalizeArguments(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n\n return parsePhoneNumber_(text, options, metadata);\n}\nexport function normalizeArguments(args) {\n var _Array$prototype$slic = Array.prototype.slice.call(args),\n _Array$prototype$slic2 = _slicedToArray(_Array$prototype$slic, 4),\n arg_1 = _Array$prototype$slic2[0],\n arg_2 = _Array$prototype$slic2[1],\n arg_3 = _Array$prototype$slic2[2],\n arg_4 = _Array$prototype$slic2[3];\n\n var text;\n var options;\n var metadata; // If the phone number is passed as a string.\n // `parsePhoneNumber('88005553535', ...)`.\n\n if (typeof arg_1 === 'string') {\n text = arg_1;\n } else throw new TypeError('A text for parsing must be a string.'); // If \"default country\" argument is being passed then move it to `options`.\n // `parsePhoneNumber('88005553535', 'RU', [options], metadata)`.\n\n\n if (!arg_2 || typeof arg_2 === 'string') {\n if (arg_4) {\n options = arg_3;\n metadata = arg_4;\n } else {\n options = undefined;\n metadata = arg_3;\n }\n\n if (arg_2) {\n options = _objectSpread({\n defaultCountry: arg_2\n }, options);\n }\n } // `defaultCountry` is not passed.\n // Example: `parsePhoneNumber('+78005553535', [options], metadata)`.\n else if (isObject(arg_2)) {\n if (arg_3) {\n options = arg_2;\n metadata = arg_3;\n } else {\n metadata = arg_2;\n }\n } else throw new Error(\"Invalid second argument: \".concat(arg_2));\n\n return {\n text: text,\n options: options,\n metadata: metadata\n };\n} // Otherwise istanbul would show this as \"branch not covered\".\n\n/* istanbul ignore next */\n\nvar isObject = function isObject(_) {\n return _typeof(_) === 'object';\n};\n//# sourceMappingURL=parsePhoneNumber.js.map","import withMetadataArgument from './withMetadataArgument.js'\r\nimport { parsePhoneNumberWithError as _parsePhoneNumberWithError } from '../../core/index.js'\r\n\r\nexport function parsePhoneNumberWithError() {\r\n\treturn withMetadataArgument(_parsePhoneNumberWithError, arguments)\r\n}\r\n","// This file is a workaround for a bug in web browsers' \"native\"\n// ES6 importing system which is uncapable of importing \"*.json\" files.\n// https://github.com/catamphetamine/libphonenumber-js/issues/239\nexport default {\"version\":4,\"country_calling_codes\":{\"1\":[\"US\",\"AG\",\"AI\",\"AS\",\"BB\",\"BM\",\"BS\",\"CA\",\"DM\",\"DO\",\"GD\",\"GU\",\"JM\",\"KN\",\"KY\",\"LC\",\"MP\",\"MS\",\"PR\",\"SX\",\"TC\",\"TT\",\"VC\",\"VG\",\"VI\"],\"7\":[\"RU\",\"KZ\"],\"20\":[\"EG\"],\"27\":[\"ZA\"],\"30\":[\"GR\"],\"31\":[\"NL\"],\"32\":[\"BE\"],\"33\":[\"FR\"],\"34\":[\"ES\"],\"36\":[\"HU\"],\"39\":[\"IT\",\"VA\"],\"40\":[\"RO\"],\"41\":[\"CH\"],\"43\":[\"AT\"],\"44\":[\"GB\",\"GG\",\"IM\",\"JE\"],\"45\":[\"DK\"],\"46\":[\"SE\"],\"47\":[\"NO\",\"SJ\"],\"48\":[\"PL\"],\"49\":[\"DE\"],\"51\":[\"PE\"],\"52\":[\"MX\"],\"53\":[\"CU\"],\"54\":[\"AR\"],\"55\":[\"BR\"],\"56\":[\"CL\"],\"57\":[\"CO\"],\"58\":[\"VE\"],\"60\":[\"MY\"],\"61\":[\"AU\",\"CC\",\"CX\"],\"62\":[\"ID\"],\"63\":[\"PH\"],\"64\":[\"NZ\"],\"65\":[\"SG\"],\"66\":[\"TH\"],\"81\":[\"JP\"],\"82\":[\"KR\"],\"84\":[\"VN\"],\"86\":[\"CN\"],\"90\":[\"TR\"],\"91\":[\"IN\"],\"92\":[\"PK\"],\"93\":[\"AF\"],\"94\":[\"LK\"],\"95\":[\"MM\"],\"98\":[\"IR\"],\"211\":[\"SS\"],\"212\":[\"MA\",\"EH\"],\"213\":[\"DZ\"],\"216\":[\"TN\"],\"218\":[\"LY\"],\"220\":[\"GM\"],\"221\":[\"SN\"],\"222\":[\"MR\"],\"223\":[\"ML\"],\"224\":[\"GN\"],\"225\":[\"CI\"],\"226\":[\"BF\"],\"227\":[\"NE\"],\"228\":[\"TG\"],\"229\":[\"BJ\"],\"230\":[\"MU\"],\"231\":[\"LR\"],\"232\":[\"SL\"],\"233\":[\"GH\"],\"234\":[\"NG\"],\"235\":[\"TD\"],\"236\":[\"CF\"],\"237\":[\"CM\"],\"238\":[\"CV\"],\"239\":[\"ST\"],\"240\":[\"GQ\"],\"241\":[\"GA\"],\"242\":[\"CG\"],\"243\":[\"CD\"],\"244\":[\"AO\"],\"245\":[\"GW\"],\"246\":[\"IO\"],\"247\":[\"AC\"],\"248\":[\"SC\"],\"249\":[\"SD\"],\"250\":[\"RW\"],\"251\":[\"ET\"],\"252\":[\"SO\"],\"253\":[\"DJ\"],\"254\":[\"KE\"],\"255\":[\"TZ\"],\"256\":[\"UG\"],\"257\":[\"BI\"],\"258\":[\"MZ\"],\"260\":[\"ZM\"],\"261\":[\"MG\"],\"262\":[\"RE\",\"YT\"],\"263\":[\"ZW\"],\"264\":[\"NA\"],\"265\":[\"MW\"],\"266\":[\"LS\"],\"267\":[\"BW\"],\"268\":[\"SZ\"],\"269\":[\"KM\"],\"290\":[\"SH\",\"TA\"],\"291\":[\"ER\"],\"297\":[\"AW\"],\"298\":[\"FO\"],\"299\":[\"GL\"],\"350\":[\"GI\"],\"351\":[\"PT\"],\"352\":[\"LU\"],\"353\":[\"IE\"],\"354\":[\"IS\"],\"355\":[\"AL\"],\"356\":[\"MT\"],\"357\":[\"CY\"],\"358\":[\"FI\",\"AX\"],\"359\":[\"BG\"],\"370\":[\"LT\"],\"371\":[\"LV\"],\"372\":[\"EE\"],\"373\":[\"MD\"],\"374\":[\"AM\"],\"375\":[\"BY\"],\"376\":[\"AD\"],\"377\":[\"MC\"],\"378\":[\"SM\"],\"380\":[\"UA\"],\"381\":[\"RS\"],\"382\":[\"ME\"],\"383\":[\"XK\"],\"385\":[\"HR\"],\"386\":[\"SI\"],\"387\":[\"BA\"],\"389\":[\"MK\"],\"420\":[\"CZ\"],\"421\":[\"SK\"],\"423\":[\"LI\"],\"500\":[\"FK\"],\"501\":[\"BZ\"],\"502\":[\"GT\"],\"503\":[\"SV\"],\"504\":[\"HN\"],\"505\":[\"NI\"],\"506\":[\"CR\"],\"507\":[\"PA\"],\"508\":[\"PM\"],\"509\":[\"HT\"],\"590\":[\"GP\",\"BL\",\"MF\"],\"591\":[\"BO\"],\"592\":[\"GY\"],\"593\":[\"EC\"],\"594\":[\"GF\"],\"595\":[\"PY\"],\"596\":[\"MQ\"],\"597\":[\"SR\"],\"598\":[\"UY\"],\"599\":[\"CW\",\"BQ\"],\"670\":[\"TL\"],\"672\":[\"NF\"],\"673\":[\"BN\"],\"674\":[\"NR\"],\"675\":[\"PG\"],\"676\":[\"TO\"],\"677\":[\"SB\"],\"678\":[\"VU\"],\"679\":[\"FJ\"],\"680\":[\"PW\"],\"681\":[\"WF\"],\"682\":[\"CK\"],\"683\":[\"NU\"],\"685\":[\"WS\"],\"686\":[\"KI\"],\"687\":[\"NC\"],\"688\":[\"TV\"],\"689\":[\"PF\"],\"690\":[\"TK\"],\"691\":[\"FM\"],\"692\":[\"MH\"],\"850\":[\"KP\"],\"852\":[\"HK\"],\"853\":[\"MO\"],\"855\":[\"KH\"],\"856\":[\"LA\"],\"880\":[\"BD\"],\"886\":[\"TW\"],\"960\":[\"MV\"],\"961\":[\"LB\"],\"962\":[\"JO\"],\"963\":[\"SY\"],\"964\":[\"IQ\"],\"965\":[\"KW\"],\"966\":[\"SA\"],\"967\":[\"YE\"],\"968\":[\"OM\"],\"970\":[\"PS\"],\"971\":[\"AE\"],\"972\":[\"IL\"],\"973\":[\"BH\"],\"974\":[\"QA\"],\"975\":[\"BT\"],\"976\":[\"MN\"],\"977\":[\"NP\"],\"992\":[\"TJ\"],\"993\":[\"TM\"],\"994\":[\"AZ\"],\"995\":[\"GE\"],\"996\":[\"KG\"],\"998\":[\"UZ\"]},\"countries\":{\"AC\":[\"247\",\"00\",\"(?:[01589]\\\\d|[46])\\\\d{4}\",[5,6],0,0,0,0,0,0,0,[0,[\"4\\\\d{4}\",[5]]]],\"AD\":[\"376\",\"00\",\"(?:1|6\\\\d)\\\\d{7}|[135-9]\\\\d{5}\",[6,8,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"[135-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]],0,0,0,0,0,0,[0,[\"690\\\\d{6}|[356]\\\\d{5}\",[6,9]]]],\"AE\":[\"971\",\"00\",\"(?:[4-7]\\\\d|9[0-689])\\\\d{7}|800\\\\d{2,9}|[2-4679]\\\\d{7}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{2,9})\",\"$1 $2\",[\"60|8\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[236]|[479][2-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{5})\",\"$1 $2 $3\",[\"[479]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"5[024-68]\\\\d{7}\",[9]]]],\"AF\":[\"93\",\"00\",\"[2-7]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"7\\\\d{8}\"]]],\"AG\":[\"1\",\"011\",\"(?:268|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([457]\\\\d{6})$\",\"268$1\",0,\"268\",[0,[\"268(?:464|7(?:1[3-9]|[28]\\\\d|3[0246]|64|7[0-689]))\\\\d{4}\"]]],\"AI\":[\"1\",\"011\",\"(?:264|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2457]\\\\d{6})$\",\"264$1\",0,\"264\",[0,[\"264(?:235|4(?:69|76)|5(?:3[6-9]|8[1-4])|7(?:29|72))\\\\d{4}\"]]],\"AL\":[\"355\",\"00\",\"(?:700\\\\d\\\\d|900)\\\\d{3}|8\\\\d{5,7}|(?:[2-5]|6\\\\d)\\\\d{7}\",[6,7,8,9],[[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"80|9\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"4[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2358][2-5]|4\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[23578]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"6(?:[78][2-9]|9\\\\d)\\\\d{6}\",[9]]]],\"AM\":[\"374\",\"00\",\"(?:[1-489]\\\\d|55|60|77)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]0\"],\"0 $1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2|3[12]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"1|47\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[3-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:33|4[1349]|55|77|88|9[13-9])\\\\d{6}\"]]],\"AO\":[\"244\",\"00\",\"[29]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[29]\"]]],0,0,0,0,0,0,[0,[\"9[1-59]\\\\d{7}\"]]],\"AR\":[\"54\",\"00\",\"(?:11|[89]\\\\d\\\\d)\\\\d{8}|[2368]\\\\d{9}\",[10,11],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2-$3\",[\"2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])\",\"2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"1\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[68]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[23]\"],\"0$1\",1],[\"(\\\\d)(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9(?:2[2-469]|3[3-578])\",\"9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))\",\"9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$2 15-$3-$4\",[\"91\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9\"],\"0$1\",0,\"$1 $2 $3-$4\"]],\"0\",0,\"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?\",\"9$1\",0,0,[0,[\"93(?:7(?:1[15]|81)[46]|8(?:(?:21|4[16]|69|9[12])[46]|88[013-9]))\\\\d{5}|9(?:29(?:54|66)|3(?:7(?:55|77)|865))[2-8]\\\\d{5}|9(?:2(?:2(?:2[59]|44|52)|3(?:26|44)|473|9(?:[07]2|2[26]|34|46))|3327)[45]\\\\d{5}|9(?:2(?:284|3(?:02|23)|657|920)|3(?:4(?:8[27]|92)|541|878))[2-7]\\\\d{5}|9(?:2(?:(?:26|62)2|320|477|9(?:42|83))|3(?:329|4(?:[47]6|62|89)|564))[2-6]\\\\d{5}|(?:675\\\\d|9(?:11[1-8]\\\\d|2(?:2(?:0[45]|1[2-6]|3[3-6])|3(?:[06]4|7[45])|494|6(?:04|1[2-8]|[36][45]|4[3-6])|80[45]|9(?:[17][4-6]|[48][45]|9[3-6]))|3(?:364|4(?:1[2-7]|[235][4-6]|84)|5(?:1[2-9]|[38][4-6])|6(?:2[45]|44)|7[069][45]|8(?:0[45]|[17][2-6]|3[4-6]|[58][3-6]))))\\\\d{6}|92(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|475|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\\\d{5}|9(?:2(?:2(?:57|81)|3(?:24|46|92)|9(?:01|23|64))|3(?:4(?:42|71)|5(?:25|37|4[347]|71)|7(?:18|5[17])))[3-6]\\\\d{5}|9(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|25|[45][25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[03-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[145]|4[13]|5[468]|7[2-5]|8[26])|8(?:2[5-7]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\\\d{5}\"]]],\"AS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|684|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([267]\\\\d{6})$\",\"684$1\",0,\"684\",[0,[\"684(?:2(?:48|5[2468]|7[26])|7(?:3[13]|70|82))\\\\d{4}\"]]],\"AT\":[\"43\",\"00\",\"1\\\\d{3,12}|2\\\\d{6,12}|43(?:(?:0\\\\d|5[02-9])\\\\d{3,9}|2\\\\d{4,5}|[3467]\\\\d{4}|8\\\\d{4,6}|9\\\\d{4,7})|5\\\\d{4,12}|8\\\\d{7,12}|9\\\\d{8,12}|(?:[367]\\\\d|4[0-24-9])\\\\d{4,11}\",[4,5,6,7,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{3,12})\",\"$1 $2\",[\"1(?:11|[2-9])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})\",\"$1 $2\",[\"517\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"5[079]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,10})\",\"$1 $2\",[\"(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,9})\",\"$1 $2\",[\"[2-467]|5[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,7})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"6(?:5[0-3579]|6[013-9]|[7-9]\\\\d)\\\\d{4,10}\",[7,8,9,10,11,12,13]]]],\"AU\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{7}(?:\\\\d(?:\\\\d{2})?)?|8[0-24-9]\\\\d{7})|[2-478]\\\\d{8}|1\\\\d{4,7}\",[5,6,7,8,9,10,12],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"16\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"16\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"14|4\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[2378]\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:30|[89])\"]]],\"0\",0,\"0|(183[12])\",0,0,0,[0,[\"4(?:83[0-389]|93[0-6])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\\\d{6}\",[9]]],\"0011\"],\"AW\":[\"297\",\"00\",\"(?:[25-79]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[25-9]\"]]],0,0,0,0,0,0,[0,[\"(?:290|5[69]\\\\d|6(?:[03]0|22|4[0-2]|[69]\\\\d)|7(?:[34]\\\\d|7[07])|9(?:6[45]|9[4-8]))\\\\d{4}\"]]],\"AX\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"2\\\\d{4,9}|35\\\\d{4,5}|(?:60\\\\d\\\\d|800)\\\\d{4,6}|7\\\\d{5,11}|(?:[14]\\\\d|3[0-46-9]|50)\\\\d{4,8}\",[5,6,7,8,9,10,11,12],0,\"0\",0,0,0,0,\"18\",[0,[\"4946\\\\d{2,6}|(?:4[0-8]|50)\\\\d{4,8}\",[6,7,8,9,10]]],\"00\"],\"AZ\":[\"994\",\"00\",\"365\\\\d{6}|(?:[124579]\\\\d|60|88)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[28]|2|365|46\",\"1[28]|2|365[45]|46\",\"1[28]|2|365(?:4|5[02])|46\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[13-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"36554\\\\d{4}|(?:[16]0|4[04]|5[015]|7[07]|99)\\\\d{7}\"]]],\"BA\":[\"387\",\"00\",\"6\\\\d{8}|(?:[35689]\\\\d|49|70)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[1-3]|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2-$3\",[\"[3-5]|6[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"6040\\\\d{5}|6(?:03|[1-356]|44|7\\\\d)\\\\d{6}\"]]],\"BB\":[\"1\",\"011\",\"(?:246|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-9]\\\\d{6})$\",\"246$1\",0,\"246\",[0,[\"246(?:(?:2(?:[3568]\\\\d|4[0-57-9])|3(?:5[2-9]|6[0-6])|4(?:46|5\\\\d)|69[5-7]|8(?:[2-5]\\\\d|83))\\\\d|52(?:1[147]|20))\\\\d{3}\"]]],\"BD\":[\"880\",\"00\",\"[1-469]\\\\d{9}|8[0-79]\\\\d{7,8}|[2-79]\\\\d{8}|[2-9]\\\\d{7}|[3-9]\\\\d{6}|[57-9]\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1-$2\",[\"31[5-8]|[459]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1-$2\",[\"3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:28|4[14]|5)|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,6})\",\"$1-$2\",[\"[13-9]|22\"],\"0$1\"],[\"(\\\\d)(\\\\d{7,8})\",\"$1-$2\",[\"2\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:1[13-9]\\\\d|644)\\\\d{7}|(?:3[78]|44|66)[02-9]\\\\d{7}\",[10]]]],\"BE\":[\"32\",\"00\",\"4\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:80|9)0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[239]|4[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[15-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"4[5-9]\\\\d{7}\",[9]]]],\"BF\":[\"226\",\"00\",\"[025-7]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[025-7]\"]]],0,0,0,0,0,0,[0,[\"(?:0[1-35-7]|5[1-8]|[67]\\\\d)\\\\d{6}\"]]],\"BG\":[\"359\",\"00\",\"00800\\\\d{7}|[2-7]\\\\d{6,7}|[89]\\\\d{6,8}|2\\\\d{5}\",[6,7,8,9,12],[[\"(\\\\d)(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"43[1-6]|70[1-9]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:70|8)0\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3\",[\"43[1-7]|7\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[48]|9[08]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:43[07-9]|99[69]\\\\d)\\\\d{5}|(?:8[7-9]|98)\\\\d{7}\",[8,9]]]],\"BH\":[\"973\",\"00\",\"[136-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[13679]|8[047]\"]]],0,0,0,0,0,0,[0,[\"(?:3(?:[1-79]\\\\d|8[0-47-9])\\\\d|6(?:3(?:00|33|6[16])|6(?:3[03-9]|[69]\\\\d|7[0-6])))\\\\d{4}\"]]],\"BI\":[\"257\",\"00\",\"(?:[267]\\\\d|31)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2367]\"]]],0,0,0,0,0,0,[0,[\"(?:29|[67][125-9])\\\\d{6}\"]]],\"BJ\":[\"229\",\"00\",\"[24-689]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-689]\"]]],0,0,0,0,0,0,[0,[\"(?:4[01]|5[1-9]|6\\\\d|9[013-9])\\\\d{6}\"]]],\"BL\":[\"590\",\"00\",\"(?:590|(?:69|80)\\\\d|976)\\\\d{6}\",[9],0,\"0\",0,0,0,0,0,[0,[\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5]))\\\\d{4}\"]]],\"BM\":[\"1\",\"011\",\"(?:441|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-9]\\\\d{6})$\",\"441$1\",0,\"441\",[0,[\"441(?:[2378]\\\\d|5[0-39]|92)\\\\d{5}\"]]],\"BN\":[\"673\",\"00\",\"[2-578]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-578]\"]]],0,0,0,0,0,0,[0,[\"(?:22[89]|[78]\\\\d\\\\d)\\\\d{4}\"]]],\"BO\":[\"591\",\"00(?:1\\\\d)?\",\"(?:[2-467]\\\\d\\\\d|8001)\\\\d{5}\",[8,9],[[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[23]|4[46]\"]],[\"(\\\\d{8})\",\"$1\",[\"[67]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\",0,\"0(1\\\\d)?\",0,0,0,[0,[\"[67]\\\\d{7}\",[8]]]],\"BQ\":[\"599\",\"00\",\"(?:[34]1|7\\\\d)\\\\d{5}\",[7],0,0,0,0,0,0,\"[347]\",[0,[\"(?:31(?:8[14-8]|9[14578])|416[14-9]|7(?:0[01]|7[07]|8\\\\d|9[056])\\\\d)\\\\d{3}\"]]],\"BR\":[\"55\",\"00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)\",\"(?:[1-46-9]\\\\d\\\\d|5(?:[0-46-9]\\\\d|5[0-46-9]))\\\\d{8}|[1-9]\\\\d{9}|[3589]\\\\d{8}|[34]\\\\d{7}\",[8,9,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"300|4(?:0[02]|37)\",\"4(?:02|37)0|[34]00\"]],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:[358]|90)0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1 $2-$3\",[\"[16][1-9]|[2-57-9]\"],\"($1)\"]],\"0\",0,\"(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\\\d{10,11}))?\",\"$2\",0,0,[0,[\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])(?:7|9\\\\d)\\\\d{7}\",[10,11]]]],\"BS\":[\"1\",\"011\",\"(?:242|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([3-8]\\\\d{6})$\",\"242$1\",0,\"242\",[0,[\"242(?:3(?:5[79]|7[56]|95)|4(?:[23][1-9]|4[1-35-9]|5[1-8]|6[2-8]|7\\\\d|81)|5(?:2[45]|3[35]|44|5[1-46-9]|65|77)|6[34]6|7(?:27|38)|8(?:0[1-9]|1[02-9]|2\\\\d|[89]9))\\\\d{4}\"]]],\"BT\":[\"975\",\"00\",\"[17]\\\\d{7}|[2-8]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-68]|7[246]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[67]|7\"]]],0,0,0,0,0,0,[0,[\"(?:1[67]|77)\\\\d{6}\",[8]]]],\"BW\":[\"267\",\"00\",\"(?:0800|(?:[37]|800)\\\\d)\\\\d{6}|(?:[2-6]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[24-6]|3[15-79]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]],0,0,0,0,0,0,[0,[\"(?:321|7(?:[1-7]\\\\d|8[0-4]))\\\\d{5}\",[8]]]],\"BY\":[\"375\",\"810\",\"(?:[12]\\\\d|33|44|902)\\\\d{7}|8(?:0[0-79]\\\\d{5,7}|[1-7]\\\\d{9})|8(?:1[0-489]|[5-79]\\\\d)\\\\d{7}|8[1-79]\\\\d{6,7}|8[0-79]\\\\d{5}|8\\\\d{5}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"800\"],\"8 $1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,4})\",\"$1 $2 $3\",[\"800\"],\"8 $1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{3})\",\"$1 $2-$3\",[\"1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])\",\"1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"1(?:[56]|7[467])|2[1-3]\"],\"8 0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-4]\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"8 $1\"]],\"8\",0,\"0|80?\",0,0,0,[0,[\"(?:2(?:5[5-79]|9[1-9])|(?:33|44)\\\\d)\\\\d{6}\",[9]]],\"8~10\"],\"BZ\":[\"501\",\"00\",\"(?:0800\\\\d|[2-8])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-8]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"0\"]]],0,0,0,0,0,0,[0,[\"6[0-35-7]\\\\d{5}\",[7]]]],\"CA\":[\"1\",\"011\",\"(?:[2-8]\\\\d|90)\\\\d{8}|3\\\\d{6}\",[7,10],0,\"1\",0,0,0,0,0,[0,[\"(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|3[178]|50|68|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\\\d{6}\",[10]]]],\"CC\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10,12],0,\"0\",0,\"0|([59]\\\\d{7})$\",\"8$1\",0,0,[0,[\"4(?:83[0-389]|93[0-6])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\\\d{6}\",[9]]],\"0011\"],\"CD\":[\"243\",\"00\",\"[189]\\\\d{8}|[1-68]\\\\d{6}\",[7,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[1-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"88\\\\d{5}|(?:8[0-59]|9[017-9])\\\\d{7}\"]]],\"CF\":[\"236\",\"00\",\"(?:[27]\\\\d{3}|8776)\\\\d{4}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[278]\"]]],0,0,0,0,0,0,[0,[\"7[02457]\\\\d{6}\"]]],\"CG\":[\"242\",\"00\",\"222\\\\d{6}|(?:0\\\\d|80)\\\\d{7}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[02]\"]]],0,0,0,0,0,0,[0,[\"026(?:1[0-5]|6[6-9])\\\\d{4}|0(?:[14-6]\\\\d\\\\d|2(?:40|5[5-8]|6[07-9]))\\\\d{5}\"]]],\"CH\":[\"41\",\"00\",\"8\\\\d{11}|[2-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8[047]|90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]|81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"7[35-9]\\\\d{7}\"]]],\"CI\":[\"225\",\"00\",\"[02]\\\\d{9}\",[10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d)(\\\\d{5})\",\"$1 $2 $3 $4\",[\"2\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"0\"]]],0,0,0,0,0,0,[0,[\"0[157]\\\\d{8}\"]]],\"CK\":[\"682\",\"00\",\"[2-578]\\\\d{4}\",[5],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"[2-578]\"]]],0,0,0,0,0,0,[0,[\"[578]\\\\d{4}\"]]],\"CL\":[\"56\",\"(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0\",\"12300\\\\d{6}|6\\\\d{9,10}|[2-9]\\\\d{8}\",[9,10,11],[[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"219\",\"2196\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[1-36]\"],\"($1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"9[2-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"60|8\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"60\"]]],0,0,0,0,0,0,[0,[\"2(?:1982[0-6]|3314[05-9])\\\\d{3}|(?:2(?:1(?:160|962)|3(?:2\\\\d\\\\d|3(?:[0346]\\\\d|1[0-35-9]|2[1-9]|5[0-24-9]|7[0-3])|600)|646[59])|80[1-9]\\\\d\\\\d|9(?:3(?:[0-57-9]\\\\d\\\\d|6(?:0[02-9]|[1-9]\\\\d))|6(?:[0-8]\\\\d\\\\d|9(?:[02-79]\\\\d|1[05-9]))|7[1-9]\\\\d\\\\d|9(?:[03-9]\\\\d\\\\d|1(?:[0235-9]\\\\d|4[0-24-9])|2(?:[0-79]\\\\d|8[0-46-9]))))\\\\d{4}|(?:22|3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|8[1-9]|9[2458])\\\\d{7}\",[9]]]],\"CM\":[\"237\",\"00\",\"[26]\\\\d{8}|88\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"88\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[26]|88\"]]],0,0,0,0,0,0,[0,[\"(?:24[23]|6[25-9]\\\\d)\\\\d{6}\",[9]]]],\"CN\":[\"86\",\"00|1(?:[12]\\\\d|79)\\\\d\\\\d00\",\"1[127]\\\\d{8,9}|2\\\\d{9}(?:\\\\d{2})?|[12]\\\\d{6,7}|86\\\\d{6}|(?:1[03-689]\\\\d|6)\\\\d{7,9}|(?:[3-579]\\\\d|8[0-57-9])\\\\d{6,9}\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5,6})\",\"$1 $2\",[\"(?:10|2[0-57-9])[19]\",\"(?:10|2[0-57-9])(?:10|9[56])\",\"10(?:10|9[56])|2[0-57-9](?:100|9[56])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]\",\"(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))[19]\",\"85[23](?:10|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:10|9[56])\",\"85[23](?:100|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:100|9[56])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:4|80)0\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|2(?:[02-57-9]|1[1-9])\",\"10|2(?:[02-57-9]|1[1-9])\",\"10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-578]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"1[3-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"[12]\"],\"0$1\",1]],\"0\",0,\"0|(1(?:[12]\\\\d|79)\\\\d\\\\d)\",0,0,0,[0,[\"1740[0-5]\\\\d{6}|1(?:[38]\\\\d|4[57]|[59][0-35-9]|6[25-7]|7[0-35-8])\\\\d{8}\",[11]]],\"00\"],\"CO\":[\"57\",\"00(?:4(?:[14]4|56)|[579])\",\"(?:60\\\\d\\\\d|9101)\\\\d{6}|(?:1\\\\d|3)\\\\d{9}\",[10,11],[[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"6\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3[0-357]|91\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{7})\",\"$1-$2-$3\",[\"1\"],\"0$1\",0,\"$1 $2 $3\"]],\"0\",0,\"0(4(?:[14]4|56)|[579])?\",0,0,0,[0,[\"3333(?:0(?:0\\\\d|1[0-5])|[4-9]\\\\d\\\\d)\\\\d{3}|(?:3(?:24[1-9]|3(?:00|3[0-24-9]))|9101)\\\\d{6}|3(?:0[0-5]|1\\\\d|2[0-3]|5[01]|70)\\\\d{7}\",[10]]]],\"CR\":[\"506\",\"00\",\"(?:8\\\\d|90)\\\\d{8}|(?:[24-8]\\\\d{3}|3005)\\\\d{4}\",[8,10],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[3-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[89]\"]]],0,0,\"(19(?:0[0-2468]|1[09]|20|66|77|99))\",0,0,0,[0,[\"(?:3005\\\\d|6500[01])\\\\d{3}|(?:5[07]|6[0-4]|7[0-3]|8[3-9])\\\\d{6}\",[8]]]],\"CU\":[\"53\",\"119\",\"[27]\\\\d{6,7}|[34]\\\\d{5,7}|(?:5|8\\\\d\\\\d)\\\\d{7}\",[6,7,8,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"2[1-4]|[34]\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{6,7})\",\"$1 $2\",[\"7\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"5\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"5\\\\d{7}\",[8]]]],\"CV\":[\"238\",\"0\",\"(?:[2-59]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2-589]\"]]],0,0,0,0,0,0,[0,[\"(?:36|5[1-389]|9\\\\d)\\\\d{5}\"]]],\"CW\":[\"599\",\"00\",\"(?:[34]1|60|(?:7|9\\\\d)\\\\d)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[3467]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9[4-8]\"]]],0,0,0,0,0,\"[69]\",[0,[\"953[01]\\\\d{4}|9(?:5[12467]|6[5-9])\\\\d{5}\"]]],\"CX\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10,12],0,\"0\",0,\"0|([59]\\\\d{7})$\",\"8$1\",0,0,[0,[\"4(?:83[0-389]|93[0-6])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\\\d{6}\",[9]]],\"0011\"],\"CY\":[\"357\",\"00\",\"(?:[279]\\\\d|[58]0)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[257-9]\"]]],0,0,0,0,0,0,[0,[\"9(?:10|[4-79]\\\\d)\\\\d{5}\"]]],\"CZ\":[\"420\",\"00\",\"(?:[2-578]\\\\d|60)\\\\d{7}|9\\\\d{8,11}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]|9[015-7]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"96\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]],0,0,0,0,0,0,[0,[\"(?:60[1-8]|7(?:0[2-5]|[2379]\\\\d))\\\\d{6}\"]]],\"DE\":[\"49\",\"00\",\"[2579]\\\\d{5,14}|49(?:[34]0|69|8\\\\d)\\\\d\\\\d?|49(?:37|49|60|7[089]|9\\\\d)\\\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\\\d{1,8}|(?:1|[368]\\\\d|4[0-8])\\\\d{3,13}|49(?:[015]\\\\d|2[13]|31|[46][1-8])\\\\d{1,9}\",[4,5,6,7,8,9,10,11,12,13,14,15],[[\"(\\\\d{2})(\\\\d{3,13})\",\"$1 $2\",[\"3[02]|40|[68]9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,12})\",\"$1 $2\",[\"2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\",\"2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2,11})\",\"$1 $2\",[\"[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]\",\"[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"138\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{2,10})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,11})\",\"$1 $2\",[\"181\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{4,10})\",\"$1 $2 $3\",[\"1(?:3|80)|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"1[67]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,12})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"185\",\"1850\",\"18500\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"18[68]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"15[0568]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"15[1279]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{8})\",\"$1 $2\",[\"18\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{7,8})\",\"$1 $2 $3\",[\"1(?:6[023]|7)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{7})\",\"$1 $2 $3\",[\"15[279]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{8})\",\"$1 $2 $3\",[\"15\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"15[0-25-9]\\\\d{8}|1(?:6[023]|7\\\\d)\\\\d{7,8}\",[10,11]]]],\"DJ\":[\"253\",\"00\",\"(?:2\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[27]\"]]],0,0,0,0,0,0,[0,[\"77\\\\d{6}\"]]],\"DK\":[\"45\",\"00\",\"[2-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-9]\"]]],0,0,0,0,0,0,[0,[\"(?:[2-7]\\\\d|8[126-9]|9[1-46-9])\\\\d{6}\"]]],\"DM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|767|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-7]\\\\d{6})$\",\"767$1\",0,\"767\",[0,[\"767(?:2(?:[2-4689]5|7[5-7])|31[5-7]|61[1-8]|70[1-6])\\\\d{4}\"]]],\"DO\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"8001|8[024]9\",[0,[\"8[024]9[2-9]\\\\d{6}\"]]],\"DZ\":[\"213\",\"00\",\"(?:[1-4]|[5-79]\\\\d|80)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-8]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:5(?:4[0-29]|5\\\\d|6[0-2])|6(?:[569]\\\\d|7[0-6])|7[7-9]\\\\d)\\\\d{6}\",[9]]]],\"EC\":[\"593\",\"00\",\"1\\\\d{9,10}|(?:[2-7]|9\\\\d)\\\\d{7}\",[8,9,10,11],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[2-7]\"],\"(0$1)\",0,\"$1-$2-$3\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1\"]]],\"0\",0,0,0,0,0,[0,[\"964[0-2]\\\\d{5}|9(?:39|[57][89]|6[0-36-9]|[89]\\\\d)\\\\d{6}\",[9]]]],\"EE\":[\"372\",\"00\",\"8\\\\d{9}|[4578]\\\\d{7}|(?:[3-8]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88\",\"[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88\"]],[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[45]|8(?:00|[1-49])\",\"[45]|8(?:00[1-9]|[1-49])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]],0,0,0,0,0,0,[0,[\"(?:5\\\\d{5}|8(?:1(?:0(?:000|[3-9]\\\\d\\\\d)|(?:1(?:0[236]|1\\\\d)|(?:23|[3-79]\\\\d)\\\\d)\\\\d)|2(?:0(?:000|(?:19|[2-7]\\\\d)\\\\d)|(?:(?:[124-6]\\\\d|3[5-9])\\\\d|7(?:[3679]\\\\d|8[13-9])|8(?:[2-6]\\\\d|7[01]))\\\\d)|[349]\\\\d{4}))\\\\d\\\\d|5(?:(?:[02]\\\\d|5[0-478])\\\\d|1(?:[0-8]\\\\d|95)|6(?:4[0-4]|5[1-589]))\\\\d{3}\",[7,8]]]],\"EG\":[\"20\",\"00\",\"[189]\\\\d{8,9}|[24-6]\\\\d{8}|[135]\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{7,8})\",\"$1 $2\",[\"[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,7})\",\"$1 $2\",[\"1[35]|[4-6]|8[2468]|9[235-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[189]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"1[0-25]\\\\d{8}\",[10]]]],\"EH\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],0,\"0\",0,0,0,0,\"528[89]\",[0,[\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:[017]\\\\d|2[0-2]|6[0-8]|8[0-3]))\\\\d{6}\"]]],\"ER\":[\"291\",\"00\",\"[178]\\\\d{6}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[178]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:17[1-3]|7\\\\d\\\\d)\\\\d{4}\"]]],\"ES\":[\"34\",\"00\",\"[5-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]00\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-9]\"]]],0,0,0,0,0,0,[0,[\"(?:590[16]00\\\\d|9(?:6906(?:09|10)|7390\\\\d\\\\d))\\\\d\\\\d|(?:6\\\\d|7[1-48])\\\\d{7}\"]]],\"ET\":[\"251\",\"00\",\"(?:11|[2-579]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-579]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"7001\\\\d{5}|(?:7(?:0[1-9]|1[01]|77|86|99)|9\\\\d\\\\d)\\\\d{6}\"]]],\"FI\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"[1-35689]\\\\d{4}|7\\\\d{10,11}|(?:[124-7]\\\\d|3[0-46-9])\\\\d{8}|[1-9]\\\\d{5,8}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d)(\\\\d{4,9})\",\"$1 $2\",[\"[2568][1-8]|3(?:0[1-9]|[1-9])|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"[12]00|[368]|70[07-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,8})\",\"$1 $2\",[\"[1245]|7[135]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,10})\",\"$1 $2\",[\"7\"],\"0$1\"]],\"0\",0,0,0,0,\"1[03-79]|[2-9]\",[0,[\"4946\\\\d{2,6}|(?:4[0-8]|50)\\\\d{4,8}\",[6,7,8,9,10]]],\"00\"],\"FJ\":[\"679\",\"0(?:0|52)\",\"45\\\\d{5}|(?:0800\\\\d|[235-9])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[235-9]|45\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]]],0,0,0,0,0,0,[0,[\"(?:[279]\\\\d|45|5[01568]|8[034679])\\\\d{5}\",[7]]],\"00\"],\"FK\":[\"500\",\"00\",\"[2-7]\\\\d{4}\",[5],0,0,0,0,0,0,0,[0,[\"[56]\\\\d{4}\"]]],\"FM\":[\"691\",\"00\",\"(?:[39]\\\\d\\\\d|820)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[389]\"]]],0,0,0,0,0,0,[0,[\"31(?:00[67]|208|309)\\\\d\\\\d|(?:3(?:[2357]0[1-9]|602|804|905)|(?:820|9[2-7]\\\\d)\\\\d)\\\\d{3}\"]]],\"FO\":[\"298\",\"00\",\"[2-9]\\\\d{5}\",[6],[[\"(\\\\d{6})\",\"$1\",[\"[2-9]\"]]],0,0,\"(10(?:01|[12]0|88))\",0,0,0,[0,[\"(?:[27][1-9]|5\\\\d|9[16])\\\\d{4}\"]]],\"FR\":[\"33\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0 $1\"],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[1-79]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:6(?:[0-24-8]\\\\d|3[0-8]|9[589])|7(?:00|[3-9]\\\\d))\\\\d{6}\"]]],\"GA\":[\"241\",\"00\",\"(?:[067]\\\\d|11)\\\\d{6}|[2-7]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"11|[67]\"],\"0$1\"]],0,0,\"0(11\\\\d{6}|60\\\\d{6}|61\\\\d{6}|6[256]\\\\d{6}|7[467]\\\\d{6})\",\"$1\",0,0,[0,[\"(?:(?:0[2-7]|7[467])\\\\d|6(?:0[0-4]|10|[256]\\\\d))\\\\d{5}|[2-7]\\\\d{6}\"]]],\"GB\":[\"44\",\"00\",\"[1-357-9]\\\\d{9}|[18]\\\\d{8}|8\\\\d{6}\",[7,9,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"800\",\"8001\",\"80011\",\"800111\",\"8001111\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"845\",\"8454\",\"84546\",\"845464\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"1(?:38|5[23]|69|76|94)\",\"1(?:(?:38|69)7|5(?:24|39)|768|946)\",\"1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"1(?:[2-69][02-9]|[78])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[25]|7(?:0|6[02-9])\",\"[25]|7(?:0|6(?:[03-9]|2[356]))\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1389]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"7(?:457[0-57-9]|700[01]|911[028])\\\\d{5}|7(?:[1-3]\\\\d\\\\d|4(?:[0-46-9]\\\\d|5[0-689])|5(?:0[0-8]|[13-9]\\\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\\\d|8[02-9]|9[0-689])|8(?:[014-9]\\\\d|[23][0-8])|9(?:[024-9]\\\\d|1[02-9]|3[0-689]))\\\\d{6}\",[10]]],0,\" x\"],\"GD\":[\"1\",\"011\",\"(?:473|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-9]\\\\d{6})$\",\"473$1\",0,\"473\",[0,[\"473(?:4(?:0[2-79]|1[04-9]|2[0-5]|58)|5(?:2[01]|3[3-8])|901)\\\\d{4}\"]]],\"GE\":[\"995\",\"00\",\"(?:[3-57]\\\\d\\\\d|800)\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"32\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[57]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[348]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"5(?:(?:0555|1(?:[17]77|555))[5-9]|757(?:7[7-9]|8[01]))\\\\d{3}|5(?:0070|11(?:33|51)|[25]222|3333)[0-4]\\\\d{3}|5(?:00(?:0\\\\d|5[05])|11(?:00|[124]\\\\d|3[01])|5200|75(?:00|[57]5)|8(?:0(?:[01]\\\\d|2[0-4])|58[89]|8(?:55|88)))\\\\d{4}|(?:5(?:[14]4|5[0157-9]|68|7[0147-9]|9[1-35-9])|790)\\\\d{6}\"]]],\"GF\":[\"594\",\"00\",\"(?:[56]94|80\\\\d|976)\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[569]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"694(?:[0-249]\\\\d|3[0-8])\\\\d{4}\"]]],\"GG\":[\"44\",\"00\",\"(?:1481|[357-9]\\\\d{3})\\\\d{6}|8\\\\d{6}(?:\\\\d{2})?\",[7,9,10],0,\"0\",0,\"0|([25-9]\\\\d{5})$\",\"1481$1\",0,0,[0,[\"7(?:(?:781|839)\\\\d|911[17])\\\\d{5}\",[10]]]],\"GH\":[\"233\",\"00\",\"(?:[235]\\\\d{3}|800)\\\\d{5}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[235]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:2(?:[0346-9]\\\\d|5[67])|5(?:[03-7]\\\\d|9[1-9]))\\\\d{6}\",[9]]]],\"GI\":[\"350\",\"00\",\"(?:[25]\\\\d\\\\d|606)\\\\d{5}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2\"]]],0,0,0,0,0,0,[0,[\"525(?:0\\\\d|1[0-4])\\\\d{3}|(?:5[146-8]\\\\d|606)\\\\d{5}\"]]],\"GL\":[\"299\",\"00\",\"(?:19|[2-689]\\\\d|70)\\\\d{4}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"19|[2-9]\"]]],0,0,0,0,0,0,[0,[\"[245]\\\\d{5}\"]]],\"GM\":[\"220\",\"00\",\"[2-9]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]],0,0,0,0,0,0,[0,[\"(?:[23679]\\\\d|5[0-389])\\\\d{5}\"]]],\"GN\":[\"224\",\"00\",\"722\\\\d{6}|(?:3|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"3\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[67]\"]]],0,0,0,0,0,0,[0,[\"6[0-356]\\\\d{7}\",[9]]]],\"GP\":[\"590\",\"00\",\"(?:590|(?:69|80)\\\\d|976)\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[569]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5]))\\\\d{4}\"]]],\"GQ\":[\"240\",\"00\",\"222\\\\d{6}|(?:3\\\\d|55|[89]0)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235]\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[89]\"]]],0,0,0,0,0,0,[0,[\"(?:222|55\\\\d)\\\\d{6}\"]]],\"GR\":[\"30\",\"00\",\"5005000\\\\d{3}|8\\\\d{9,11}|(?:[269]\\\\d|70)\\\\d{8}\",[10,11,12],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"21|7\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2689]\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{5})\",\"$1 $2 $3\",[\"8\"]]],0,0,0,0,0,0,[0,[\"68[57-9]\\\\d{7}|(?:69|94)\\\\d{8}\",[10]]]],\"GT\":[\"502\",\"00\",\"(?:1\\\\d{3}|[2-7])\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]],0,0,0,0,0,0,[0,[\"[3-5]\\\\d{7}\",[8]]]],\"GU\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|671|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([3-9]\\\\d{6})$\",\"671$1\",0,\"671\",[0,[\"671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[02-46-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[48])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\\\d{4}\"]]],\"GW\":[\"245\",\"00\",\"[49]\\\\d{8}|4\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"40\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"]]],0,0,0,0,0,0,[0,[\"9(?:5\\\\d|6[569]|77)\\\\d{6}\",[9]]]],\"GY\":[\"592\",\"001\",\"9008\\\\d{3}|(?:[2-467]\\\\d\\\\d|862)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-46-9]\"]]],0,0,0,0,0,0,[0,[\"(?:6\\\\d\\\\d|70[0-35-7])\\\\d{4}\"]]],\"HK\":[\"852\",\"00(?:30|5[09]|[126-9]?)\",\"8[0-46-9]\\\\d{6,7}|9\\\\d{4,7}|(?:[2-7]|9\\\\d{3})\\\\d{7}\",[5,6,7,8,9,11],[[\"(\\\\d{3})(\\\\d{2,5})\",\"$1 $2\",[\"900\",\"9003\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[1-4]|9(?:0[1-9]|[1-8])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]],0,0,0,0,0,0,[0,[\"(?:4(?:44[5-9]|6(?:0[0-7]|1[0-6]|4[0-57-9]|6[0-4]|7[0-8]))|573[0-6]|6(?:26[013-8]|66[0-3])|70(?:7[1-5]|8[0-4])|848[015-9]|9(?:29[013-9]|59[0-4]))\\\\d{4}|(?:4(?:4[01]|6[2358])|5(?:[1-59][0-46-9]|6[0-4689]|7[0-246-9])|6(?:0[1-9]|[13-59]\\\\d|[268][0-57-9]|7[0-79])|84[09]|9(?:0[1-9]|1[02-9]|[2358][0-8]|[467]\\\\d))\\\\d{5}\",[8]]],\"00\"],\"HN\":[\"504\",\"00\",\"8\\\\d{10}|[237-9]\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[237-9]\"]]],0,0,0,0,0,0,[0,[\"[37-9]\\\\d{7}\",[8]]]],\"HR\":[\"385\",\"00\",\"(?:[24-69]\\\\d|3[0-79])\\\\d{7}|80\\\\d{5,7}|[1-79]\\\\d{7}|6\\\\d{5,6}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"6[01]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[67]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-5]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"98\\\\d{6,7}|975(?:1\\\\d|77|9[67])\\\\d{4}|9(?:0[1-9]|[1259]\\\\d|7[0679])\\\\d{6}\",[8,9]]]],\"HT\":[\"509\",\"00\",\"(?:[2-489]\\\\d|55)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-589]\"]]],0,0,0,0,0,0,[0,[\"(?:[34]\\\\d|55)\\\\d{6}\"]]],\"HU\":[\"36\",\"00\",\"[235-7]\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"06 $1\"]],\"06\",0,0,0,0,0,[0,[\"(?:[257]0|3[01])\\\\d{7}\",[9]]]],\"ID\":[\"62\",\"00[89]\",\"(?:(?:00[1-9]|8\\\\d)\\\\d{4}|[1-36])\\\\d{6}|00\\\\d{10}|[1-9]\\\\d{8,10}|[2-9]\\\\d{7}\",[7,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"15\"]],[\"(\\\\d{2})(\\\\d{5,9})\",\"$1 $2\",[\"2[124]|[36]1\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,7})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,8})\",\"$1 $2\",[\"[2-79]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{3})\",\"$1-$2-$3\",[\"8[1-35-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6,8})\",\"$1 $2\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"804\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"80\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"8[1-35-9]\\\\d{7,10}\",[9,10,11,12]]]],\"IE\":[\"353\",\"00\",\"(?:1\\\\d|[2569])\\\\d{6,8}|4\\\\d{6,9}|7\\\\d{8}|8\\\\d{8,9}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"2[24-9]|47|58|6[237-9]|9[35-9]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[45]0\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2569]|4[1-69]|7[14]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"81\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"4\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"8(?:22|[35-9]\\\\d)\\\\d{6}\",[9]]]],\"IL\":[\"972\",\"0(?:0|1[2-9])\",\"1\\\\d{6}(?:\\\\d{3,5})?|[57]\\\\d{8}|[1-489]\\\\d{7}\",[7,8,9,10,11,12],[[\"(\\\\d{4})(\\\\d{3})\",\"$1-$2\",[\"125\"]],[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"121\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[2-489]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"12\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1-$2\",[\"159\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"1[7-9]\"]],[\"(\\\\d{3})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3-$4\",[\"15\"]]],\"0\",0,0,0,0,0,[0,[\"5(?:(?:[02368]\\\\d|[19][2-9]|4[1-9])\\\\d|5(?:01|1[79]|2[2-9]|3[0-3]|4[34]|5[015689]|6[6-8]|7[0-267]|8[7-9]|9[1-9]))\\\\d{5}\",[9]]]],\"IM\":[\"44\",\"00\",\"1624\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"0|([25-8]\\\\d{5})$\",\"1624$1\",0,\"74576|(?:16|7[56])24\",[0,[\"76245[06]\\\\d{4}|7(?:4576|[59]24\\\\d|624[0-4689])\\\\d{5}\"]]],\"IN\":[\"91\",\"00\",\"(?:000800|[2-9]\\\\d\\\\d)\\\\d{7}|1\\\\d{7,12}\",[8,9,10,11,12,13],[[\"(\\\\d{8})\",\"$1\",[\"5(?:0|2[23]|3[03]|[67]1|88)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)\"],0,1],[\"(\\\\d{4})(\\\\d{4,5})\",\"$1 $2\",[\"180\",\"1800\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"140\"],0,1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"11|2[02]|33|4[04]|79[1-7]|80[2-46]\",\"11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])\",\"11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807\",\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]\",\"1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\\\d|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]))[2-7]\"],\"0$1\",1],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"[6-9]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{2,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:6|8[06])\",\"1(?:6|8[06]0)\"],0,1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"18\"],0,1]],\"0\",0,0,0,0,0,[0,[\"(?:61279|7(?:887[02-9]|9(?:313|79[07-9]))|8(?:079[04-9]|(?:84|91)7[02-8]))\\\\d{5}|(?:6(?:12|[2-47]1|5[17]|6[13]|80)[0189]|7(?:1(?:2[0189]|9[0-5])|2(?:[14][017-9]|8[0-59])|3(?:2[5-8]|[34][017-9]|9[016-9])|4(?:1[015-9]|[29][89]|39|8[389])|5(?:[15][017-9]|2[04-9]|9[7-9])|6(?:0[0-47]|1[0-257-9]|2[0-4]|3[19]|5[4589])|70[0289]|88[089]|97[02-8])|8(?:0(?:6[67]|7[02-8])|70[017-9]|84[01489]|91[0-289]))\\\\d{6}|(?:7(?:31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[0189]\\\\d|7[02-8])\\\\d{5}|(?:6(?:[09]\\\\d|1[04679]|2[03689]|3[05-9]|4[0489]|50|6[069]|7[07]|8[7-9])|7(?:0\\\\d|2[0235-79]|3[05-8]|40|5[0346-8]|6[6-9]|7[1-9]|8[0-79]|9[089])|8(?:0[01589]|1[0-57-9]|2[235-9]|3[03-57-9]|[45]\\\\d|6[02457-9]|7[1-69]|8[0-25-9]|9[02-9])|9\\\\d\\\\d)\\\\d{7}|(?:6(?:(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|8[124-6])\\\\d|7(?:[235689]\\\\d|4[0189]))|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-5])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]|881))[0189]\\\\d{5}\",[10]]]],\"IO\":[\"246\",\"00\",\"3\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"3\"]]],0,0,0,0,0,0,[0,[\"38\\\\d{5}\"]]],\"IQ\":[\"964\",\"00\",\"(?:1|7\\\\d\\\\d)\\\\d{7}|[2-6]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"7[3-9]\\\\d{8}\",[10]]]],\"IR\":[\"98\",\"00\",\"[1-9]\\\\d{9}|(?:[1-8]\\\\d\\\\d|9)\\\\d{3,4}\",[4,5,6,7,10],[[\"(\\\\d{4,5})\",\"$1\",[\"96\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,5})\",\"$1 $2\",[\"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-8]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"9(?:(?:0(?:[0-35]\\\\d|4[4-6])|(?:[13]\\\\d|2[0-3])\\\\d)\\\\d|9(?:[0-46]\\\\d\\\\d|5[15]0|8(?:1\\\\d|88)|9(?:0[0-3]|[19]\\\\d|21|77|8[7-9])))\\\\d{5}\",[10]]]],\"IS\":[\"354\",\"00|1(?:0(?:01|[12]0)|100)\",\"(?:38\\\\d|[4-9])\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,[0,[\"(?:38[589]\\\\d\\\\d|6(?:1[1-8]|2[0-6]|3[026-9]|4[014679]|5[0159]|6[0-69]|70|8[06-8]|9\\\\d)|7(?:5[057]|[6-9]\\\\d)|8(?:2[0-59]|[3-69]\\\\d|8[238]))\\\\d{4}\"]],\"00\"],\"IT\":[\"39\",\"00\",\"0\\\\d{5,10}|1\\\\d{8,10}|3(?:[0-8]\\\\d{7,10}|9\\\\d{7,8})|(?:55|70)\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?\",[6,7,8,9,10,11],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"0[26]\"]],[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"0[13-57-9][0159]|8(?:03|4[17]|9[2-5])\",\"0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))\"]],[\"(\\\\d{4})(\\\\d{2,6})\",\"$1 $2\",[\"0(?:[13-579][2-46-8]|8[236-8])\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"894\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[26]|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1(?:44|[679])|[378]\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[13-57-9][0159]|14\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{5})\",\"$1 $2 $3\",[\"0[26]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,[0,[\"3[1-9]\\\\d{8}|3[2-9]\\\\d{7}\",[9,10]]]],\"JE\":[\"44\",\"00\",\"1534\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"0|([0-24-8]\\\\d{5})$\",\"1534$1\",0,0,[0,[\"7(?:(?:(?:50|82)9|937)\\\\d|7(?:00[378]|97[7-9]))\\\\d{5}\"]]],\"JM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|658|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"658|876\",[0,[\"(?:658295|876(?:2(?:0[1-9]|[13-9]\\\\d|2[013-9])|[348]\\\\d\\\\d|5(?:0[1-9]|[1-9]\\\\d)|6(?:4[89]|6[67])|7(?:0[07]|7\\\\d|8[1-47-9]|9[0-36-9])|9(?:[01]9|9[0579])))\\\\d{4}\"]]],\"JO\":[\"962\",\"00\",\"(?:(?:[2689]|7\\\\d)\\\\d|32|53)\\\\d{6}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2356]|87\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"70\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"7(?:[78][0-25-9]|9\\\\d)\\\\d{6}\",[9]]]],\"JP\":[\"81\",\"010\",\"00[1-9]\\\\d{6,14}|[257-9]\\\\d{9}|(?:00|[1-9]\\\\d\\\\d)\\\\d{6}\",[8,9,10,11,12,13,14,15,16,17],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"(?:12|57|99)0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51|63)|9(?:80|9[16])\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9]|636)|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9]|636[457-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[36]|4(?:2[09]|7[01])\",\"[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[27-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9])|5(?:2|3[045]|4[0-369]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|49|51|6(?:[0-24]|36|5[0-3589]|72|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:49|55|83)[29]|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|7[015-9]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17|3[015-9]))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9(?:[019]|4[1-3]|6(?:[0-47-9]|5[01346-9])))|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|829(?:2|66)|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3\",[\"[14]|[289][2-9]|5[3-9]|7[2-4679]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"800\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[257-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"[7-9]0[1-9]\\\\d{7}\",[10]]]],\"KE\":[\"254\",\"000\",\"(?:[17]\\\\d\\\\d|900)\\\\d{6}|(?:2|80)0\\\\d{6,7}|[4-6]\\\\d{6,8}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"[24-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[17]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:1(?:0[0-6]|1[0-5]|2[014]|30)|7\\\\d\\\\d)\\\\d{6}\",[9]]]],\"KG\":[\"996\",\"00\",\"8\\\\d{9}|(?:[235-8]\\\\d|99)\\\\d{7}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3(?:1[346]|[24-79])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235-79]|88\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d)(\\\\d{2,3})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"312(?:58\\\\d|973)\\\\d{3}|(?:2(?:0[0-35]|2\\\\d)|5[0-24-7]\\\\d|600|7(?:[07]\\\\d|55)|88[08]|99[05-9])\\\\d{6}\",[9]]]],\"KH\":[\"855\",\"00[14-9]\",\"1\\\\d{9}|[1-9]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\",0,0,0,0,0,[0,[\"(?:(?:1[28]|3[18]|9[67])\\\\d|6[016-9]|7(?:[07-9]|[16]\\\\d)|8(?:[013-79]|8\\\\d))\\\\d{6}|(?:1\\\\d|9[0-57-9])\\\\d{6}|(?:2[3-6]|3[2-6]|4[2-4]|[5-7][2-5])48\\\\d{5}\",[8,9]]]],\"KI\":[\"686\",\"00\",\"(?:[37]\\\\d|6[0-79])\\\\d{6}|(?:[2-48]\\\\d|50)\\\\d{3}\",[5,8],0,\"0\",0,0,0,0,0,[0,[\"(?:63\\\\d{3}|73(?:0[0-5]\\\\d|140))\\\\d{3}|[67]200[01]\\\\d{3}\",[8]]]],\"KM\":[\"269\",\"00\",\"[3478]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[3478]\"]]],0,0,0,0,0,0,[0,[\"[34]\\\\d{6}\"]]],\"KN\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-7]\\\\d{6})$\",\"869$1\",0,\"869\",[0,[\"869(?:48[89]|55[6-8]|66\\\\d|76[02-7])\\\\d{4}\"]]],\"KP\":[\"850\",\"00|99\",\"85\\\\d{6}|(?:19\\\\d|[2-7])\\\\d{7}\",[8,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"19[1-3]\\\\d{7}\",[10]]]],\"KR\":[\"82\",\"00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))\",\"00[1-9]\\\\d{8,11}|(?:[12]|5\\\\d{3})\\\\d{7}|[13-6]\\\\d{9}|(?:[1-6]\\\\d|80)\\\\d{7}|[3-6]\\\\d{4,5}|(?:00|7)0\\\\d{8}\",[5,6,8,9,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1-$2\",[\"(?:3[1-3]|[46][1-4]|5[1-5])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"1\"]],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"[1346]|5[1-5]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1-$2-$3\",[\"5\"],\"0$1\"]],\"0\",0,\"0(8(?:[1-46-8]|5\\\\d\\\\d))?\",0,0,0,[0,[\"1(?:05(?:[0-8]\\\\d|9[0-6])|22[13]\\\\d)\\\\d{4,5}|1(?:0[1-46-9]|[16-9]\\\\d|2[013-9])\\\\d{6,7}\",[9,10]]]],\"KW\":[\"965\",\"00\",\"18\\\\d{5}|(?:[2569]\\\\d|41)\\\\d{6}\",[7,8],[[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[169]|2(?:[235]|4[1-35-9])|52\"]],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[245]\"]]],0,0,0,0,0,0,[0,[\"(?:41\\\\d\\\\d|5(?:(?:[05]\\\\d|1[0-7]|6[56])\\\\d|2(?:22|5[25])|7(?:55|77)|88[58])|6(?:(?:0[034679]|5[015-9]|6\\\\d)\\\\d|1(?:00|11|66)|222|3[36]3|444|7(?:0[013-9]|[67]\\\\d)|888|9(?:[069]\\\\d|3[039]))|9(?:(?:0[09]|22|[4679]\\\\d|8[057-9])\\\\d|1(?:1[01]|99)|3(?:00|33)|5(?:00|5\\\\d)))\\\\d{4}\",[8]]]],\"KY\":[\"1\",\"011\",\"(?:345|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-9]\\\\d{6})$\",\"345$1\",0,\"345\",[0,[\"345(?:32[1-9]|42[0-4]|5(?:1[67]|2[5-79]|4[6-9]|50|76)|649|82[56]|9(?:1[679]|2[2-9]|3[06-9]|90))\\\\d{4}\"]]],\"KZ\":[\"7\",\"810\",\"(?:33622|8\\\\d{8})\\\\d{5}|[78]\\\\d{9}\",[10,14],0,\"8\",0,0,0,0,\"33|7\",[0,[\"7(?:0[0-25-8]|47|6[0-4]|7[15-8]|85)\\\\d{7}\",[10]]],\"8~10\"],\"LA\":[\"856\",\"00\",\"[23]\\\\d{9}|3\\\\d{8}|(?:[235-8]\\\\d|41)\\\\d{6}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2[13]|3[14]|[4-8]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"30[013-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:20(?:[239]\\\\d|5[24-9]|7[6-8]|88)|302\\\\d)\\\\d{6}\",[10]]]],\"LB\":[\"961\",\"00\",\"[27-9]\\\\d{7}|[13-9]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27-9]\"]]],\"0\",0,0,0,0,0,[0,[\"793(?:[01]\\\\d|2[0-4])\\\\d{3}|(?:(?:3|81)\\\\d|7(?:[01]\\\\d|6[013-9]|8[89]|9[12]))\\\\d{5}\"]]],\"LC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|758|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-8]\\\\d{6})$\",\"758$1\",0,\"758\",[0,[\"758(?:28[4-7]|384|4(?:6[01]|8[4-9])|5(?:1[89]|20|84)|7(?:1[2-9]|2\\\\d|3[0-3])|812)\\\\d{4}\"]]],\"LI\":[\"423\",\"00\",\"[68]\\\\d{8}|(?:[2378]\\\\d|90)\\\\d{5}\",[7,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2379]|8(?:0[09]|7)\",\"[2379]|8(?:0(?:02|9)|7)\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"69\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]],\"0\",0,\"0|(1001)\",0,0,0,[0,[\"(?:6(?:(?:4[5-9]|5[0-4])\\\\d|6(?:[0245]\\\\d|[17]0|3[7-9]))\\\\d|7(?:[37-9]\\\\d|42|56))\\\\d{4}\"]]],\"LK\":[\"94\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[1-689]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"7(?:[0-25-8]\\\\d|4[0-4])\\\\d{6}\"]]],\"LR\":[\"231\",\"00\",\"(?:[25]\\\\d|33|77|88)\\\\d{7}|(?:2\\\\d|[4-6])\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[4-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[23578]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:(?:(?:22|33)0|555|(?:77|88)\\\\d)\\\\d|4[67])\\\\d{5}|[56]\\\\d{6}\",[7,9]]]],\"LS\":[\"266\",\"00\",\"(?:[256]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2568]\"]]],0,0,0,0,0,0,[0,[\"[56]\\\\d{7}\"]]],\"LT\":[\"370\",\"00\",\"(?:[3469]\\\\d|52|[78]0)\\\\d{6}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"52[0-7]\"],\"(8-$1)\",1],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"8 $1\",1],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"37|4(?:[15]|6[1-8])\"],\"(8-$1)\",1],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[3-6]\"],\"(8-$1)\",1]],\"8\",0,\"[08]\",0,0,0,[0,[\"6\\\\d{7}\"]]],\"LU\":[\"352\",\"00\",\"35[013-9]\\\\d{4,8}|6\\\\d{8}|35\\\\d{2,4}|(?:[2457-9]\\\\d|3[0-46-9])\\\\d{2,9}\",[4,5,6,7,8,9,10,11],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"20[2-689]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"80[01]|90[015]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"20\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4 $5\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,5})\",\"$1 $2 $3 $4\",[\"[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]\"]]],0,0,\"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\\\d)\",0,0,0,[0,[\"6(?:[269][18]|5[1568]|7[189]|81)\\\\d{6}\",[9]]]],\"LV\":[\"371\",\"00\",\"(?:[268]\\\\d|90)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[269]|8[01]\"]]],0,0,0,0,0,0,[0,[\"23(?:23[0-57-9]|33[0238])\\\\d{3}|2(?:[0-24-9]\\\\d\\\\d|3(?:0[07]|[14-9]\\\\d|2[024-9]|3[0-24-9]))\\\\d{4}\"]]],\"LY\":[\"218\",\"00\",\"[2-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"[2-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"9[1-6]\\\\d{7}\"]]],\"MA\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],[[\"(\\\\d{5})(\\\\d{4})\",\"$1-$2\",[\"5(?:29|38)\",\"5(?:29[1289]|389)\",\"529(?:1[1-46-9]|2[013-8]|90)|5(?:298|389)[0-46-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5[45]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1-$2\",[\"5(?:2[2-489]|3[5-9]|9)|892\",\"5(?:2(?:[2-49]|8[235-9])|3[5-9]|9)|892\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"8\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1-$2\",[\"[5-7]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:[017]\\\\d|2[0-2]|6[0-8]|8[0-3]))\\\\d{6}\"]]],\"MC\":[\"377\",\"00\",\"(?:[3489]|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[389]\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"6\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"4(?:[46]\\\\d|5[1-9])\\\\d{5}|(?:3|6\\\\d)\\\\d{7}\"]]],\"MD\":[\"373\",\"00\",\"(?:[235-7]\\\\d|[89]0)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"22|3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[25-7]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"562\\\\d{5}|(?:6\\\\d|7[16-9])\\\\d{6}\"]]],\"ME\":[\"382\",\"00\",\"(?:20|[3-79]\\\\d)\\\\d{6}|80\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"6(?:[07-9]\\\\d|3[024]|6[0-25])\\\\d{5}\",[8]]]],\"MF\":[\"590\",\"00\",\"(?:590|(?:69|80)\\\\d|976)\\\\d{6}\",[9],0,\"0\",0,0,0,0,0,[0,[\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5]))\\\\d{4}\"]]],\"MG\":[\"261\",\"00\",\"[23]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\",0,\"0|([24-9]\\\\d{6})$\",\"20$1\",0,0,[0,[\"3[2-47-9]\\\\d{7}\"]]],\"MH\":[\"692\",\"011\",\"329\\\\d{4}|(?:[256]\\\\d|45)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-6]\"]]],\"1\",0,0,0,0,0,[0,[\"(?:(?:23|54)5|329|45[356])\\\\d{4}\"]]],\"MK\":[\"389\",\"00\",\"[2-578]\\\\d{7}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2|34[47]|4(?:[37]7|5[47]|64)\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[347]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[58]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"7(?:3555|(?:474|9[019]7)7)\\\\d{3}|7(?:[0-25-8]\\\\d\\\\d|3(?:[1-48]\\\\d|7[01578])|4(?:2\\\\d|60|7[01578])|9(?:[2-4]\\\\d|7[015]))\\\\d{4}\"]]],\"ML\":[\"223\",\"00\",\"[24-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-9]\"]]],0,0,0,0,0,0,[0,[\"2(?:0(?:01|79)|17\\\\d)\\\\d{4}|(?:5[01]|[679]\\\\d|8[2-49])\\\\d{6}\"]]],\"MM\":[\"95\",\"00\",\"1\\\\d{5,7}|95\\\\d{6}|(?:[4-7]|9[0-46-9])\\\\d{6,8}|(?:2|8\\\\d)\\\\d{5,8}\",[6,7,8,9,10],[[\"(\\\\d)(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"16|2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[45]|6(?:0[23]|[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-6]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[4-7]|8[1-35]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4,6})\",\"$1 $2 $3\",[\"9(?:2[0-4]|[35-9]|4[137-9])\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"92\"],\"0$1\"],[\"(\\\\d)(\\\\d{5})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:17[01]|9(?:2(?:[0-4]|[56]\\\\d\\\\d)|(?:3(?:[0-36]|4\\\\d)|(?:6\\\\d|9[4-8])\\\\d|7(?:3|40|[5-9]\\\\d)|8(?:78|[89]\\\\d))\\\\d|4(?:(?:[0245]\\\\d|[1379])\\\\d|88)|5[0-6])\\\\d)\\\\d{4}|9[69]1\\\\d{6}|9(?:[68]\\\\d|9[089])\\\\d{5}\",[7,8,9,10]]]],\"MN\":[\"976\",\"001\",\"[12]\\\\d{7,9}|[5-9]\\\\d{7}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[12]1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[12]2[1-3]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])\",\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"[12]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:83[01]|920)\\\\d{5}|(?:5[05]|6[06]|8[015689]|9[013-9])\\\\d{6}\",[8]]]],\"MO\":[\"853\",\"00\",\"0800\\\\d{3}|(?:28|[68]\\\\d)\\\\d{6}\",[7,8],[[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[268]\"]]],0,0,0,0,0,0,[0,[\"6800[0-79]\\\\d{3}|6(?:[235]\\\\d\\\\d|6(?:0[0-5]|[1-9]\\\\d)|8(?:0[1-9]|[14-8]\\\\d|2[5-9]|[39][0-4]))\\\\d{4}\",[8]]]],\"MP\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:67|90)0\\\\d{7}\",[10],0,\"1\",0,\"1|([2-9]\\\\d{6})$\",\"670$1\",0,\"670\",[0,[\"670(?:2(?:3[3-7]|56|8[4-8])|32[1-38]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[3589]|8[3-9]8|989)\\\\d{4}\"]]],\"MQ\":[\"596\",\"00\",\"(?:69|80)\\\\d{7}|(?:59|97)6\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[569]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"69(?:6(?:[0-46-9]\\\\d|5[0-6])|727)\\\\d{4}\"]]],\"MR\":[\"222\",\"00\",\"(?:[2-4]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-48]\"]]],0,0,0,0,0,0,[0,[\"[2-4][0-46-9]\\\\d{6}\"]]],\"MS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|664|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([34]\\\\d{6})$\",\"664$1\",0,\"664\",[0,[\"664(?:3(?:49|9[1-6])|49[2-6])\\\\d{4}\"]]],\"MT\":[\"356\",\"00\",\"3550\\\\d{4}|(?:[2579]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2357-9]\"]]],0,0,0,0,0,0,[0,[\"(?:7(?:210|[79]\\\\d\\\\d)|9(?:[29]\\\\d\\\\d|69[67]|8(?:1[1-3]|89|97)))\\\\d{4}\"]]],\"MU\":[\"230\",\"0(?:0|[24-7]0|3[03])\",\"(?:[57]|8\\\\d\\\\d)\\\\d{7}|[2-468]\\\\d{6}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-46]|8[013]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[57]\"]],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"8\"]]],0,0,0,0,0,0,[0,[\"5(?:4(?:2[1-389]|7[1-9])|87[15-8])\\\\d{4}|(?:5(?:2[5-9]|4[3-689]|[57]\\\\d|8[0-689]|9[0-8])|7(?:01|30))\\\\d{5}\",[8]]],\"020\"],\"MV\":[\"960\",\"0(?:0|19)\",\"(?:800|9[0-57-9]\\\\d)\\\\d{7}|[34679]\\\\d{6}\",[7,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[3467]|9[1-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]],0,0,0,0,0,0,[0,[\"46[46]\\\\d{4}|(?:7\\\\d|9[1-9])\\\\d{5}\",[7]]],\"00\"],\"MW\":[\"265\",\"00\",\"(?:[1289]\\\\d|31|77)\\\\d{7}|1\\\\d{6}\",[7,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[137-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"111\\\\d{6}|(?:31|77|[89][89])\\\\d{7}\",[9]]]],\"MX\":[\"52\",\"0[09]\",\"1(?:(?:[27]2|44|99)[1-9]|65[0-689])\\\\d{7}|(?:1(?:[01]\\\\d|2[13-9]|[35][1-9]|4[0-35-9]|6[0-46-9]|7[013-9]|8[1-79]|9[1-8])|[2-9]\\\\d)\\\\d{8}\",[10,11],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"33|5[56]|81\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-9]\"],0,1],[\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$2 $3 $4\",[\"1(?:33|5[56]|81)\"],0,1],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$2 $3 $4\",[\"1\"],0,1]],\"01\",0,\"0(?:[12]|4[45])|1\",0,0,0,[0,[\"657[12]\\\\d{6}|(?:1(?:2(?:2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[24-7][1-9]|3[1-8]|8[1-35-9]|9[2-689])|5(?:[56]\\\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69][1-9]|7[12]|8[1-8]))|2(?:2\\\\d|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[25-7][1-9]|3[1-8]|4\\\\d|8[1-35-9]|9[2-689])|5(?:[56]\\\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[13467][1-9]|2\\\\d|5[13-9]|8[1-69]|9[17])|8(?:1\\\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|6[1-9]|7[12]|8[1-8]|9\\\\d))\\\\d{7}\"]],\"00\"],\"MY\":[\"60\",\"00\",\"1\\\\d{8,9}|(?:3\\\\d|[4-9])\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"[4-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1-$2 $3\",[\"1(?:[02469]|[378][1-9]|53)|8\",\"1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"3\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3-$4\",[\"1(?:[367]|80)\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"15\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"1\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"1(?:1888[689]|4400|8(?:47|8[27])[0-4])\\\\d{4}|1(?:0(?:[23568]\\\\d|4[0-6]|7[016-9]|9[0-8])|1(?:[1-5]\\\\d\\\\d|6(?:0[5-9]|[1-9]\\\\d)|7(?:[0134]\\\\d|2[1-9]|5[0-6]))|(?:[269]\\\\d|[37][1-9]|4[235-9])\\\\d|5(?:31|9\\\\d\\\\d)|8(?:1[23]|[236]\\\\d|4[06]|5(?:46|[7-9])|7[016-9]|8[01]|9[0-8]))\\\\d{5}\",[9,10]]]],\"MZ\":[\"258\",\"00\",\"(?:2|8\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2|8[2-79]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]],0,0,0,0,0,0,[0,[\"8[2-79]\\\\d{7}\",[9]]]],\"NA\":[\"264\",\"00\",\"[68]\\\\d{7,8}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"87\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:60|8[1245])\\\\d{7}\",[9]]]],\"NC\":[\"687\",\"00\",\"(?:050|[2-57-9]\\\\d\\\\d)\\\\d{3}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1.$2.$3\",[\"[02-57-9]\"]]],0,0,0,0,0,0,[0,[\"(?:5[0-4]|[79]\\\\d|8[0-79])\\\\d{4}\"]]],\"NE\":[\"227\",\"00\",\"[027-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"08\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[089]|2[013]|7[04]\"]]],0,0,0,0,0,0,[0,[\"(?:23|7[04]|[89]\\\\d)\\\\d{6}\"]]],\"NF\":[\"672\",\"00\",\"[13]\\\\d{5}\",[6],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"1[0-3]\"]],[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"[13]\"]]],0,0,\"([0-258]\\\\d{4})$\",\"3$1\",0,0,[0,[\"(?:14|3[58])\\\\d{4}\"]]],\"NG\":[\"234\",\"009\",\"(?:[124-7]|9\\\\d{3})\\\\d{6}|[1-9]\\\\d{7}|[78]\\\\d{9,13}\",[7,8,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"78\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]|9(?:0[3-9]|[1-9])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-7]|8[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})(\\\\d{5,6})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:702[0-24-9]|819[01])\\\\d{6}|(?:70[13-689]|8(?:0[1-9]|1[0-8])|9(?:0[1-9]|1[1-356]))\\\\d{7}\",[10]]]],\"NI\":[\"505\",\"00\",\"(?:1800|[25-8]\\\\d{3})\\\\d{4}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[125-8]\"]]],0,0,0,0,0,0,[0,[\"(?:5(?:5[0-7]|[78]\\\\d)|6(?:20|3[035]|4[045]|5[05]|77|8[1-9]|9[059])|(?:7[5-8]|8\\\\d)\\\\d)\\\\d{5}\"]]],\"NL\":[\"31\",\"00\",\"(?:[124-7]\\\\d\\\\d|3(?:[02-9]\\\\d|1[0-8]))\\\\d{6}|8\\\\d{6,9}|9\\\\d{6,10}|1\\\\d{4,5}\",[5,6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{4,7})\",\"$1 $2\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"66\"],\"0$1\"],[\"(\\\\d)(\\\\d{8})\",\"$1 $2\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[16-8]|2[259]|3[124]|4[17-9]|5[124679]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-578]|91\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:6[1-58]|970\\\\d)\\\\d{7}\",[9,11]]]],\"NO\":[\"47\",\"00\",\"(?:0|[2-9]\\\\d{3})\\\\d{4}\",[5,8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[489]|59\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[235-7]\"]]],0,0,0,0,0,\"[02-689]|7[0-8]\",[0,[\"(?:4[015-8]|59|9\\\\d)\\\\d{6}\",[8]]]],\"NP\":[\"977\",\"00\",\"(?:1\\\\d|9)\\\\d{9}|[1-9]\\\\d{7}\",[8,10,11],[[\"(\\\\d)(\\\\d{7})\",\"$1-$2\",[\"1[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1-$2\",[\"1[01]|[2-8]|9(?:[1-59]|[67][2-6])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"9\"]]],\"0\",0,0,0,0,0,[0,[\"9(?:6[0-3]|7[024-6]|8[0-24-68])\\\\d{7}\",[10]]]],\"NR\":[\"674\",\"00\",\"(?:444|(?:55|8\\\\d)\\\\d|666)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-68]\"]]],0,0,0,0,0,0,[0,[\"(?:55[3-9]|666|8\\\\d\\\\d)\\\\d{4}\"]]],\"NU\":[\"683\",\"00\",\"(?:[47]|888\\\\d)\\\\d{3}\",[4,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"8\"]]],0,0,0,0,0,0,[0,[\"888[4-9]\\\\d{3}\",[7]]]],\"NZ\":[\"64\",\"0(?:0|161)\",\"[29]\\\\d{7,9}|50\\\\d{5}(?:\\\\d{2,3})?|6[0-35-9]\\\\d{6}|7\\\\d{7,8}|8\\\\d{4,9}|(?:11\\\\d|[34])\\\\d{7}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,8})\",\"$1 $2\",[\"8[1-579]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"50[036-8]|[89]0\",\"50(?:[0367]|88)|[89]0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"24|[346]|7[2-57-9]|9[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:10|74)|[59]|80\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1|2[028]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,5})\",\"$1 $2 $3\",[\"2(?:[169]|7[0-35-9])|7|86\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"2[0-27-9]\\\\d{7,8}|21\\\\d{6}\",[8,9,10]]],\"00\"],\"OM\":[\"968\",\"00\",\"(?:1505|[279]\\\\d{3}|500)\\\\d{4}|800\\\\d{5,6}\",[7,8,9],[[\"(\\\\d{3})(\\\\d{4,6})\",\"$1 $2\",[\"[58]\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[179]\"]]],0,0,0,0,0,0,[0,[\"1505\\\\d{4}|(?:7(?:[1289]\\\\d|7[0-5])|9(?:0[1-9]|[1-9]\\\\d))\\\\d{5}\",[8]]]],\"PA\":[\"507\",\"00\",\"(?:00800|8\\\\d{3})\\\\d{6}|[68]\\\\d{7}|[1-57-9]\\\\d{6}\",[7,8,10,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[1-57-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[68]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],0,0,0,0,0,0,[0,[\"(?:1[16]1|21[89]|6\\\\d{3}|8(?:1[01]|7[23]))\\\\d{4}\",[7,8]]]],\"PE\":[\"51\",\"00|19(?:1[124]|77|90)00\",\"(?:[14-8]|9\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[4-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"]]],\"0\",0,0,0,0,0,[0,[\"9\\\\d{8}\",[9]]],\"00\",\" Anexo \"],\"PF\":[\"689\",\"00\",\"4\\\\d{5}(?:\\\\d{2})?|8\\\\d{7,8}\",[6,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4|8[7-9]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]],0,0,0,0,0,0,[0,[\"8[7-9]\\\\d{6}\",[8]]]],\"PG\":[\"675\",\"00|140[1-3]\",\"(?:180|[78]\\\\d{3})\\\\d{4}|(?:[2-589]\\\\d|64)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"18|[2-69]|85\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[78]\"]]],0,0,0,0,0,0,[0,[\"(?:7\\\\d|8[128])\\\\d{6}\",[8]]],\"00\"],\"PH\":[\"63\",\"00\",\"(?:[2-7]|9\\\\d)\\\\d{8}|2\\\\d{5}|(?:1800|8)\\\\d{7,9}\",[6,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"2\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2\",\"3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"346|4(?:27|9[35])|883\",\"3469|4(?:279|9(?:30|56))|8834\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|8[2-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{4})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"1\"]]],\"0\",0,0,0,0,0,[0,[\"(?:8(?:1[37]|9[5-8])|9(?:0[5-9]|1[0-24-9]|[235-7]\\\\d|4[2-9]|8[135-9]|9[1-9]))\\\\d{7}\",[10]]]],\"PK\":[\"92\",\"00\",\"122\\\\d{6}|[24-8]\\\\d{10,11}|9(?:[013-9]\\\\d{8,10}|2(?:[01]\\\\d\\\\d|2(?:[06-8]\\\\d|1[01]))\\\\d{7})|(?:[2-8]\\\\d{3}|92(?:[0-7]\\\\d|8[1-9]))\\\\d{6}|[24-9]\\\\d{8}|[89]\\\\d{7}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,7})\",\"$1 $2 $3\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{6,7})\",\"$1 $2\",[\"2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])\",\"9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{7,8})\",\"$1 $2\",[\"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"58\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[24-9]\"],\"(0$1)\"]],\"0\",0,0,0,0,0,[0,[\"3(?:[0-24]\\\\d|3[0-7]|55|64)\\\\d{7}\",[10]]]],\"PL\":[\"48\",\"00\",\"(?:6|8\\\\d\\\\d)\\\\d{7}|[1-9]\\\\d{6}(?:\\\\d{2})?|[26]\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{5})\",\"$1\",[\"19\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"11|20|64\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1\",\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"64\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[2-8]|[2-7]|8[1-79]|9[145]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"8\"]]],0,0,0,0,0,0,[0,[\"21(?:1(?:[145]\\\\d|3[1-5])|2[0-4]\\\\d)\\\\d{4}|(?:45|5[0137]|6[069]|7[2389]|88)\\\\d{7}\",[9]]]],\"PM\":[\"508\",\"00\",\"(?:[45]|80\\\\d\\\\d)\\\\d{5}\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[45]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:4[02-4]|5[056])\\\\d{4}\",[6]]]],\"PR\":[\"1\",\"011\",\"(?:[589]\\\\d\\\\d|787)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"787|939\",[0,[\"(?:787|939)[2-9]\\\\d{6}\"]]],\"PS\":[\"970\",\"00\",\"[2489]2\\\\d{6}|(?:1\\\\d|5)\\\\d{8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2489]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\",0,0,0,0,0,[0,[\"5[69]\\\\d{7}\",[9]]]],\"PT\":[\"351\",\"00\",\"1693\\\\d{5}|(?:[26-9]\\\\d|30)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2[12]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"16|[236-9]\"]]],0,0,0,0,0,0,[0,[\"6(?:[06]92(?:30|9\\\\d)|[35]92(?:3[03]|9\\\\d))\\\\d{3}|(?:(?:16|6[0356])93|9(?:[1-36]\\\\d\\\\d|480))\\\\d{5}\"]]],\"PW\":[\"680\",\"01[12]\",\"(?:[24-8]\\\\d\\\\d|345|900)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]],0,0,0,0,0,0,[0,[\"(?:(?:46|83)[0-5]|6[2-4689]0)\\\\d{4}|(?:45|77|88)\\\\d{5}\"]]],\"PY\":[\"595\",\"00\",\"59\\\\d{4,6}|9\\\\d{5,10}|(?:[2-46-8]\\\\d|5[0-8])\\\\d{4,7}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"[2-9]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{4,5})\",\"$1 $2\",[\"2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"87\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"9(?:[5-79]|8[1-6])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"]]],\"0\",0,0,0,0,0,[0,[\"9(?:51|6[129]|[78][1-6]|9[1-5])\\\\d{6}\",[9]]]],\"QA\":[\"974\",\"00\",\"800\\\\d{4}|(?:2|800)\\\\d{6}|(?:0080|[3-7])\\\\d{7}\",[7,8,9,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"2[16]|8\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[3-7]\"]]],0,0,0,0,0,0,[0,[\"[35-7]\\\\d{7}\",[8]]]],\"RE\":[\"262\",\"00\",\"976\\\\d{6}|(?:26|[68]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2689]\"],\"0$1\"]],\"0\",0,0,0,0,\"26[23]|69|[89]\",[0,[\"(?:69(?:2\\\\d\\\\d|3(?:0[0-46]|1[013]|2[0-2]|3[0-39]|4\\\\d|5[0-5]|6[0-6]|7[0-27]|8[0-8]|9[0-479]))|976(?:2[27]|3[0-37]|9\\\\d))\\\\d{4}\"]]],\"RO\":[\"40\",\"00\",\"(?:[2378]\\\\d|90)\\\\d{7}|[23]\\\\d{5}\",[6,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"2[3-6]\",\"2[3-6]\\\\d9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"219|31\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[23]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[237-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"7020\\\\d{5}|7(?:0[013-9]|1[0-3]|[2-7]\\\\d|8[03-8]|9[019])\\\\d{6}\",[9]]],0,\" int \"],\"RS\":[\"381\",\"00\",\"38[02-9]\\\\d{6,9}|6\\\\d{7,9}|90\\\\d{4,8}|38\\\\d{5,6}|(?:7\\\\d\\\\d|800)\\\\d{3,9}|(?:[12]\\\\d|3[0-79])\\\\d{5,10}\",[6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3,9})\",\"$1 $2\",[\"(?:2[389]|39)0|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5,10})\",\"$1 $2\",[\"[1-36]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"6(?:[0-689]|7\\\\d)\\\\d{6,7}\",[8,9,10]]]],\"RU\":[\"7\",\"810\",\"8\\\\d{13}|[347-9]\\\\d{9}\",[10,14],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-8]|2[1-9])\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2\"],\"8 ($1)\",1],[\"(\\\\d{5})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-68]|2[1-9])\",\"7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))\",\"7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[349]|8(?:[02-7]|1[1-8])\"],\"8 ($1)\",1],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"8\"],\"8 ($1)\"]],\"8\",0,0,0,0,\"3[04-689]|[489]\",[0,[\"9\\\\d{9}\",[10]]],\"8~10\"],\"RW\":[\"250\",\"00\",\"(?:06|[27]\\\\d\\\\d|[89]00)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"]]],\"0\",0,0,0,0,0,[0,[\"7[2389]\\\\d{7}\",[9]]]],\"SA\":[\"966\",\"00\",\"92\\\\d{7}|(?:[15]|8\\\\d)\\\\d{8}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\",0,0,0,0,0,[0,[\"579[01]\\\\d{5}|5(?:[013-689]\\\\d|7[0-35-8])\\\\d{6}\",[9]]]],\"SB\":[\"677\",\"0[01]\",\"(?:[1-6]|[7-9]\\\\d\\\\d)\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7|8[4-9]|9(?:[1-8]|9[0-8])\"]]],0,0,0,0,0,0,[0,[\"48\\\\d{3}|(?:(?:7[1-9]|8[4-9])\\\\d|9(?:1[2-9]|2[013-9]|3[0-2]|[46]\\\\d|5[0-46-9]|7[0-689]|8[0-79]|9[0-8]))\\\\d{4}\"]]],\"SC\":[\"248\",\"010|0[0-2]\",\"800\\\\d{4}|(?:[249]\\\\d|64)\\\\d{5}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[246]|9[57]\"]]],0,0,0,0,0,0,[0,[\"2[125-8]\\\\d{5}\"]],\"00\"],\"SD\":[\"249\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:1[0-2]|9[0-3569])\\\\d{7}\"]]],\"SE\":[\"46\",\"00\",\"(?:[26]\\\\d\\\\d|9)\\\\d{9}|[1-9]\\\\d{8}|[1-689]\\\\d{7}|[1-4689]\\\\d{6}|2\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"20\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"9(?:00|39|44|9)\"],\"0$1\",0,\"$1 $2\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3\",[\"[12][136]|3[356]|4[0246]|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d)(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{3})\",\"$1-$2 $3\",[\"9(?:00|39|44)\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"10|7\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1-$2 $3 $4\",[\"9\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4 $5\",[\"[26]\"],\"0$1\",0,\"$1 $2 $3 $4 $5\"]],\"0\",0,0,0,0,0,[0,[\"7[02369]\\\\d{7}\",[9]]]],\"SG\":[\"65\",\"0[0-3]\\\\d\",\"(?:(?:1\\\\d|8)\\\\d\\\\d|7000)\\\\d{7}|[3689]\\\\d{7}\",[8,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[369]|8(?:0[1-6]|[1-9])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]],0,0,0,0,0,0,[0,[\"8(?:06[0-6]|95[0-2])\\\\d{4}|(?:8(?:0[1-5]|[1-8]\\\\d|9[0-4])|9[0-8]\\\\d)\\\\d{5}\",[8]]]],\"SH\":[\"290\",\"00\",\"(?:[256]\\\\d|8)\\\\d{3}\",[4,5],0,0,0,0,0,0,\"[256]\",[0,[\"[56]\\\\d{4}\",[5]]]],\"SI\":[\"386\",\"00|10(?:22|66|88|99)\",\"[1-7]\\\\d{7}|8\\\\d{4,7}|90\\\\d{4,6}\",[5,6,7,8],[[\"(\\\\d{2})(\\\\d{3,6})\",\"$1 $2\",[\"8[09]|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"59|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37][01]|4[0139]|51|6\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-57]\"],\"(0$1)\"]],\"0\",0,0,0,0,0,[0,[\"65(?:1\\\\d|5[56]|6[01]|70)\\\\d{4}|(?:[37][01]|4[0139]|51|6[489])\\\\d{6}\",[8]]],\"00\"],\"SJ\":[\"47\",\"00\",\"0\\\\d{4}|(?:[489]\\\\d|[57]9)\\\\d{6}\",[5,8],0,0,0,0,0,0,\"79\",[0,[\"(?:4[015-8]|59|9\\\\d)\\\\d{6}\",[8]]]],\"SK\":[\"421\",\"00\",\"[2-689]\\\\d{8}|[2-59]\\\\d{6}|[2-5]\\\\d{5}\",[6,7,9],[[\"(\\\\d)(\\\\d{2})(\\\\d{3,4})\",\"$1 $2 $3\",[\"21\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-5][1-8]1\",\"[3-5][1-8]1[67]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[689]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"[3-5]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"909[1-9]\\\\d{5}|9(?:0[1-8]|1[0-24-9]|4[03-57-9]|5\\\\d)\\\\d{6}\",[9]]]],\"SL\":[\"232\",\"00\",\"(?:[237-9]\\\\d|66)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[236-9]\"],\"(0$1)\"]],\"0\",0,0,0,0,0,[0,[\"(?:25|3[0-5]|66|7[2-9]|8[08]|9[09])\\\\d{6}\"]]],\"SM\":[\"378\",\"00\",\"(?:0549|[5-7]\\\\d)\\\\d{6}\",[8,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"0\"]]],0,0,\"([89]\\\\d{5})$\",\"0549$1\",0,0,[0,[\"6[16]\\\\d{6}\",[8]]]],\"SN\":[\"221\",\"00\",\"(?:[378]\\\\d|93)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[379]\"]]],0,0,0,0,0,0,[0,[\"7(?:(?:[06-8]\\\\d|21|90)\\\\d|5(?:01|[19]0|25|[38]3|[4-7]\\\\d))\\\\d{5}\"]]],\"SO\":[\"252\",\"00\",\"[346-9]\\\\d{8}|[12679]\\\\d{7}|[1-5]\\\\d{6}|[1348]\\\\d{5}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"8[125]\"]],[\"(\\\\d{6})\",\"$1\",[\"[134]\"]],[\"(\\\\d)(\\\\d{6})\",\"$1 $2\",[\"[15]|2[0-79]|3[0-46-8]|4[0-7]\"]],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"(?:2|90)4|[67]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[3478]|64|90\"]],[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"1|28|6(?:0[5-7]|[1-35-9])|9[2-9]\"]]],\"0\",0,0,0,0,0,[0,[\"(?:(?:15|(?:3[59]|4[89]|79|8[08])\\\\d|6(?:0[5-7]|[1-9]\\\\d)|9(?:0\\\\d|[2-9]))\\\\d|2(?:4\\\\d|8))\\\\d{5}|(?:[67]\\\\d\\\\d|904)\\\\d{5}\",[7,8,9]]]],\"SR\":[\"597\",\"00\",\"(?:[2-5]|68|[78]\\\\d)\\\\d{5}\",[6,7],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"56\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1-$2\",[\"[2-5]\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[6-8]\"]]],0,0,0,0,0,0,[0,[\"(?:7[124-7]|8[124-9])\\\\d{5}\",[7]]]],\"SS\":[\"211\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:12|9[1257-9])\\\\d{7}\"]]],\"ST\":[\"239\",\"00\",\"(?:22|9\\\\d)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[29]\"]]],0,0,0,0,0,0,[0,[\"900[5-9]\\\\d{3}|9(?:0[1-9]|[89]\\\\d)\\\\d{4}\"]]],\"SV\":[\"503\",\"00\",\"[267]\\\\d{7}|[89]00\\\\d{4}(?:\\\\d{4})?\",[7,8,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[89]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[267]\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]],0,0,0,0,0,0,[0,[\"66(?:[02-9]\\\\d\\\\d|1(?:[02-9]\\\\d|16))\\\\d{3}|(?:6[0-57-9]|7\\\\d)\\\\d{6}\",[8]]]],\"SX\":[\"1\",\"011\",\"7215\\\\d{6}|(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|(5\\\\d{6})$\",\"721$1\",0,\"721\",[0,[\"7215(?:1[02]|2\\\\d|5[034679]|8[014-8])\\\\d{4}\"]]],\"SY\":[\"963\",\"00\",\"[1-39]\\\\d{8}|[1-5]\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-5]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\",1]],\"0\",0,0,0,0,0,[0,[\"9[1-689]\\\\d{7}\",[9]]]],\"SZ\":[\"268\",\"00\",\"0800\\\\d{4}|(?:[237]\\\\d|900)\\\\d{6}\",[8,9],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[0237]\"]],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"9\"]]],0,0,0,0,0,0,[0,[\"7[6-9]\\\\d{6}\",[8]]]],\"TA\":[\"290\",\"00\",\"8\\\\d{3}\",[4],0,0,0,0,0,0,\"8\"],\"TC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|649|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-479]\\\\d{6})$\",\"649$1\",0,\"649\",[0,[\"649(?:2(?:3[129]|4[1-79])|3\\\\d\\\\d|4[34][1-3])\\\\d{4}\"]]],\"TD\":[\"235\",\"00|16\",\"(?:22|[69]\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2679]\"]]],0,0,0,0,0,0,[0,[\"(?:6[023568]|77|9\\\\d)\\\\d{6}\"]],\"00\"],\"TG\":[\"228\",\"00\",\"[279]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[279]\"]]],0,0,0,0,0,0,[0,[\"(?:7[09]|9[0-36-9])\\\\d{6}\"]]],\"TH\":[\"66\",\"00[1-9]\",\"(?:001800|[2-57]|[689]\\\\d)\\\\d{7}|1\\\\d{7,9}\",[8,9,10,13],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[13-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\",0,0,0,0,0,[0,[\"671[0-8]\\\\d{5}|(?:14|6[1-6]|[89]\\\\d)\\\\d{7}\",[9]]]],\"TJ\":[\"992\",\"810\",\"(?:00|[1-57-9]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{6})(\\\\d)(\\\\d{2})\",\"$1 $2 $3\",[\"331\",\"3317\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[34]7|91[78]\"]],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"3[1-5]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[0-57-9]\"]]],0,0,0,0,0,0,[0,[\"41[18]\\\\d{6}|(?:[034]0|1[017]|2[02]|5[05]|7[0178]|8[078]|9\\\\d)\\\\d{7}\"]],\"8~10\"],\"TK\":[\"690\",\"00\",\"[2-47]\\\\d{3,6}\",[4,5,6,7],0,0,0,0,0,0,0,[0,[\"7[2-4]\\\\d{2,5}\"]]],\"TL\":[\"670\",\"00\",\"7\\\\d{7}|(?:[2-47]\\\\d|[89]0)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-489]|70\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"7\"]]],0,0,0,0,0,0,[0,[\"7[2-8]\\\\d{6}\",[8]]]],\"TM\":[\"993\",\"810\",\"[1-6]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"12\"],\"(8 $1)\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-5]\"],\"(8 $1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"6\"],\"8 $1\"]],\"8\",0,0,0,0,0,[0,[\"6\\\\d{7}\"]],\"8~10\"],\"TN\":[\"216\",\"00\",\"[2-57-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-57-9]\"]]],0,0,0,0,0,0,[0,[\"3(?:001|[12]40)\\\\d{4}|(?:(?:[259]\\\\d|4[0-7])\\\\d|3(?:1[1-35]|6[0-4]|91))\\\\d{5}\"]]],\"TO\":[\"676\",\"00\",\"(?:0800|(?:[5-8]\\\\d\\\\d|999)\\\\d)\\\\d{3}|[2-8]\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1-$2\",[\"[2-4]|50|6[09]|7[0-24-69]|8[05]\"]],[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]]],0,0,0,0,0,0,[0,[\"(?:55[4-6]|6(?:[09]\\\\d|3[02]|8[15-9])|(?:7\\\\d|8[46-9])\\\\d|999)\\\\d{4}\",[7]]]],\"TR\":[\"90\",\"00\",\"4\\\\d{6}|8\\\\d{11,12}|(?:[2-58]\\\\d\\\\d|900)\\\\d{7}\",[7,10,12,13],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"512|8[01589]|90\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5(?:[0-59]|61)\",\"5(?:[0-59]|616)\",\"5(?:[0-59]|6161)\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24][1-8]|3[1-9]\"],\"(0$1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{6,7})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1]],\"0\",0,0,0,0,0,[0,[\"56161\\\\d{5}|5(?:0[15-7]|1[06]|24|[34]\\\\d|5[1-59]|9[46])\\\\d{7}\",[10]]]],\"TT\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-46-8]\\\\d{6})$\",\"868$1\",0,\"868\",[0,[\"868(?:(?:2[5-9]|3\\\\d)\\\\d|4(?:3[0-6]|[6-9]\\\\d)|6(?:20|78|8\\\\d)|7(?:0[1-9]|1[02-9]|[2-9]\\\\d))\\\\d{4}\"]]],\"TV\":[\"688\",\"00\",\"(?:2|7\\\\d\\\\d|90)\\\\d{4}\",[5,6,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]],0,0,0,0,0,0,[0,[\"(?:7[01]\\\\d|90)\\\\d{4}\",[6,7]]]],\"TW\":[\"886\",\"0(?:0[25-79]|19)\",\"[2-689]\\\\d{8}|7\\\\d{9,10}|[2-8]\\\\d{7}|2\\\\d{6}\",[7,8,9,10,11],[[\"(\\\\d{2})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"202\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[258]0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]\",\"[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:40001[0-2]|9[0-8]\\\\d{4})\\\\d{3}\",[9]]],0,\"#\"],\"TZ\":[\"255\",\"00[056]\",\"(?:[25-8]\\\\d|41|90)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[24]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[67]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"77[2-9]\\\\d{6}|(?:6[125-9]|7[13-689])\\\\d{7}\"]]],\"UA\":[\"380\",\"00\",\"[89]\\\\d{9}|[3-9]\\\\d{8}\",[9,10],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]\",\"6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])\",\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|89|9[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:39|50|6[36-8]|7[1-3]|9[1-9])\\\\d{7}\",[9]]],\"0~0\"],\"UG\":[\"256\",\"00[057]\",\"800\\\\d{6}|(?:[29]0|[347]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"202\",\"2024\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[27-9]|4(?:6[45]|[7-9])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[34]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"726[01]\\\\d{5}|7(?:[01578]\\\\d|20|36|[46][0-4]|9[89])\\\\d{6}\"]]],\"US\":[\"1\",\"011\",\"[2-9]\\\\d{9}|3\\\\d{6}\",[10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"310\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"($1) $2-$3\",[\"[2-9]\"],0,1,\"$1-$2-$3\"]],\"1\",0,0,0,0,0,[0,[\"505(?:[2-57-9]\\\\d\\\\d|6(?:[0-35-9]\\\\d|4[46]))\\\\d{4}|(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[0-2]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\\\d{6}\"]]],\"UY\":[\"598\",\"0(?:0|1[3-9]\\\\d)\",\"(?:0004|4)\\\\d{9}|[1249]\\\\d{7}|(?:[49]\\\\d|80)\\\\d{5}\",[7,8,10,13],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"405|8|90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[124]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"4\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"0\"]]],\"0\",0,0,0,0,0,[0,[\"9[1-9]\\\\d{6}\",[8]]],\"00\",\" int. \"],\"UZ\":[\"998\",\"810\",\"(?:33|[5-79]\\\\d|88)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[35-9]\"],\"8 $1\"]],\"8\",0,0,0,0,0,[0,[\"(?:(?:33|88|9[0-57-9])\\\\d{3}|5(?:0\\\\d{3}|5(?:50[013]|90\\\\d))|6(?:1(?:2(?:2[01]|98)|35[0-4]|50\\\\d|61[23]|7(?:[01][017]|4\\\\d|55|9[5-9]))|2(?:(?:11|7\\\\d)\\\\d|2(?:[12]1|9[01379])|5(?:[126]\\\\d|3[0-4]))|5(?:19[01]|2(?:27|9[26])|(?:30|59|7\\\\d)\\\\d)|6(?:2(?:1[5-9]|2[0367]|38|41|52|60)|(?:3[79]|9[0-3])\\\\d|4(?:56|83)|7(?:[07]\\\\d|1[017]|3[07]|4[047]|5[057]|67|8[0178]|9[79]))|7(?:2(?:24|3[237]|4[5-9]|7[15-8])|5(?:7[12]|8[0589])|7(?:0\\\\d|[39][07])|9(?:0\\\\d|7[079]))|9(?:2(?:1[1267]|3[01]|5\\\\d|7[0-4])|(?:5[67]|7\\\\d)\\\\d|6(?:2[0-26]|8\\\\d)))|7(?:[07]\\\\d{3}|1(?:13[01]|6(?:0[47]|1[67]|66)|71[3-69]|98\\\\d)|2(?:2(?:2[79]|95)|3(?:2[5-9]|6[0-6])|57\\\\d|7(?:0\\\\d|1[17]|2[27]|3[37]|44|5[057]|66|88))|3(?:2(?:1[0-6]|21|3[469]|7[159])|(?:33|9[4-6])\\\\d|5(?:0[0-4]|5[579]|9\\\\d)|7(?:[0-3579]\\\\d|4[0467]|6[67]|8[078]))|4(?:2(?:29|5[0257]|6[0-7]|7[1-57])|5(?:1[0-4]|8\\\\d|9[5-9])|7(?:0\\\\d|1[024589]|2[0-27]|3[0137]|[46][07]|5[01]|7[5-9]|9[079])|9(?:7[015-9]|[89]\\\\d))|5(?:112|2(?:0\\\\d|2[29]|[49]4)|3[1568]\\\\d|52[6-9]|7(?:0[01578]|1[017]|[23]7|4[047]|[5-7]\\\\d|8[78]|9[079]))|6(?:2(?:2[1245]|4[2-4])|39\\\\d|41[179]|5(?:[349]\\\\d|5[0-2])|7(?:0[017]|[13]\\\\d|22|44|55|67|88))|9(?:22[128]|3(?:2[0-4]|7\\\\d)|57[02569]|7(?:2[05-9]|3[37]|4\\\\d|60|7[2579]|87|9[07]))))\\\\d{4}\"]],\"8~10\"],\"VA\":[\"39\",\"00\",\"0\\\\d{5,10}|3[0-8]\\\\d{7,10}|55\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?|(?:1\\\\d|39)\\\\d{7,8}\",[6,7,8,9,10,11],0,0,0,0,0,0,\"06698\",[0,[\"3[1-9]\\\\d{8}|3[2-9]\\\\d{7}\",[9,10]]]],\"VC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|784|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-7]\\\\d{6})$\",\"784$1\",0,\"784\",[0,[\"784(?:4(?:3[0-5]|5[45]|89|9[0-8])|5(?:2[6-9]|3[0-4])|720)\\\\d{4}\"]]],\"VE\":[\"58\",\"00\",\"[68]00\\\\d{7}|(?:[24]\\\\d|[59]0)\\\\d{8}\",[10],[[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"[24-689]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"4(?:1[24-8]|2[46])\\\\d{7}\"]]],\"VG\":[\"1\",\"011\",\"(?:284|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-578]\\\\d{6})$\",\"284$1\",0,\"284\",[0,[\"284496[6-9]\\\\d{3}|284(?:245|3(?:0[0-3]|4[0-7]|68|9[34])|4(?:4[0-6]|68|99)|5(?:4[0-7]|68|9[69]))\\\\d{4}\"]]],\"VI\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:34|90)0\\\\d{7}\",[10],0,\"1\",0,\"1|([2-9]\\\\d{6})$\",\"340$1\",0,\"340\",[0,[\"340(?:2(?:0[0-368]|2[06-8]|4[49]|77)|3(?:32|44)|4(?:2[23]|44|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|2[57]|7\\\\d)|884|998)\\\\d{4}\"]]],\"VN\":[\"84\",\"00\",\"[12]\\\\d{9}|[135-9]\\\\d{8}|[16]\\\\d{7}|[16-8]\\\\d{6}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"1\"],0,1],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[69]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[3578]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[48]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\",1]],\"0\",0,0,0,0,0,[0,[\"(?:5(?:2[238]|59)|89[6-9]|99[013-9])\\\\d{6}|(?:3\\\\d|5[689]|7[06-9]|8[1-8]|9[0-8])\\\\d{7}\",[9]]]],\"VU\":[\"678\",\"00\",\"[57-9]\\\\d{6}|(?:[238]\\\\d|48)\\\\d{3}\",[5,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[57-9]\"]]],0,0,0,0,0,0,[0,[\"(?:[58]\\\\d|7[013-7])\\\\d{5}\",[7]]]],\"WF\":[\"681\",\"00\",\"(?:40|72)\\\\d{4}|8\\\\d{5}(?:\\\\d{3})?\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[478]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]],0,0,0,0,0,0,[0,[\"(?:72|8[23])\\\\d{4}\",[6]]]],\"WS\":[\"685\",\"0\",\"(?:[2-6]|8\\\\d{5})\\\\d{4}|[78]\\\\d{6}|[68]\\\\d{5}\",[5,6,7,10],[[\"(\\\\d{5})\",\"$1\",[\"[2-5]|6[1-9]\"]],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"[68]\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]],0,0,0,0,0,0,[0,[\"(?:7[1-35-7]|8(?:[3-7]|9\\\\d{3}))\\\\d{5}\",[7,10]]]],\"XK\":[\"383\",\"00\",\"[23]\\\\d{7,8}|(?:4\\\\d\\\\d|[89]00)\\\\d{5}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[23]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"4[3-9]\\\\d{6}\",[8]]]],\"YE\":[\"967\",\"00\",\"(?:1|7\\\\d)\\\\d{7}|[1-7]\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-6]|7(?:[24-6]|8[0-7])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"7[01378]\\\\d{7}\",[9]]]],\"YT\":[\"262\",\"00\",\"80\\\\d{7}|(?:26|63)9\\\\d{6}\",[9],0,\"0\",0,0,0,0,\"269|63\",[0,[\"639(?:0[0-79]|1[019]|[267]\\\\d|3[09]|40|5[05-9]|9[04-79])\\\\d{4}\"]]],\"ZA\":[\"27\",\"00\",\"[1-79]\\\\d{8}|8\\\\d{4,9}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"860\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:1(?:3492[0-25]|4495[0235]|549(?:20|5[01]))|4[34]492[01])\\\\d{3}|8[1-4]\\\\d{3,7}|(?:2[27]|47|54)4950\\\\d{3}|(?:1(?:049[2-4]|9[12]\\\\d\\\\d)|(?:6\\\\d|7[0-46-9])\\\\d{3}|8(?:5\\\\d{3}|7(?:08[67]|158|28[5-9]|310)))\\\\d{4}|(?:1[6-8]|28|3[2-69]|4[025689]|5[36-8])4920\\\\d{3}|(?:12|[2-5]1)492\\\\d{4}\",[5,6,7,8,9]]]],\"ZM\":[\"260\",\"00\",\"800\\\\d{6}|(?:21|63|[79]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[28]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[79]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:7[5-79]|9[5-8])\\\\d{7}\"]]],\"ZW\":[\"263\",\"00\",\"2(?:[0-57-9]\\\\d{6,8}|6[0-24-9]\\\\d{6,7})|[38]\\\\d{9}|[35-8]\\\\d{8}|[3-6]\\\\d{7}|[1-689]\\\\d{6}|[1-3569]\\\\d{5}|[1356]\\\\d{4}\",[5,6,7,8,9,10],[[\"(\\\\d{3})(\\\\d{3,5})\",\"$1 $2\",[\"2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"80\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2\",\"2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)\",\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"29[013-9]|39|54\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,5})\",\"$1 $2\",[\"(?:25|54)8\",\"258|5483\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"7(?:[178]\\\\d|3[1-9])\\\\d{6}\",[9]]]]},\"nonGeographic\":{\"800\":[\"800\",0,\"(?:00|[1-9]\\\\d)\\\\d{6}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"\\\\d\"]]],0,0,0,0,0,0,[0,0,[\"(?:00|[1-9]\\\\d)\\\\d{6}\"]]],\"808\":[\"808\",0,\"[1-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[1-9]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,0,[\"[1-9]\\\\d{7}\"]]],\"870\":[\"870\",0,\"7\\\\d{11}|[35-7]\\\\d{8}\",[9,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[35-7]\"]]],0,0,0,0,0,0,[0,[\"(?:[356]|774[45])\\\\d{8}|7[6-8]\\\\d{7}\"]]],\"878\":[\"878\",0,\"10\\\\d{10}\",[12],[[\"(\\\\d{2})(\\\\d{5})(\\\\d{5})\",\"$1 $2 $3\",[\"1\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"10\\\\d{10}\"]]],\"881\":[\"881\",0,\"[0-36-9]\\\\d{8}\",[9],[[\"(\\\\d)(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"[0-36-9]\"]]],0,0,0,0,0,0,[0,[\"[0-36-9]\\\\d{8}\"]]],\"882\":[\"882\",0,\"[13]\\\\d{6}(?:\\\\d{2,5})?|[19]\\\\d{7}|(?:[25]\\\\d\\\\d|4)\\\\d{7}(?:\\\\d{2})?\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"16|342\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"49\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"1[36]|9\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"3[23]\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"16\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|23|3(?:[15]|4[57])|4|51\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"34\"]],[\"(\\\\d{2})(\\\\d{4,5})(\\\\d{5})\",\"$1 $2 $3\",[\"[1-35]\"]]],0,0,0,0,0,0,[0,[\"342\\\\d{4}|(?:337|49)\\\\d{6}|(?:3(?:2|47|7\\\\d{3})|50\\\\d{3})\\\\d{7}\",[7,8,9,10,12]],0,0,0,0,0,0,[\"1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\\\d{4}|6\\\\d{5,10})|(?:345\\\\d|9[89])\\\\d{6}|(?:10|2(?:3|85\\\\d)|3(?:[15]|[69]\\\\d\\\\d)|4[15-8]|51)\\\\d{8}\"]]],\"883\":[\"883\",0,\"(?:[1-4]\\\\d|51)\\\\d{6,10}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,8})\",\"$1 $2 $3\",[\"[14]|2[24-689]|3[02-689]|51[24-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"510\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"21\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"51[13]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[235]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"(?:2(?:00\\\\d\\\\d|10)|(?:370[1-9]|51\\\\d0)\\\\d)\\\\d{7}|51(?:00\\\\d{5}|[24-9]0\\\\d{4,7})|(?:1[013-79]|2[24-689]|3[02-689]|4[0-4])0\\\\d{5,9}\"]]],\"888\":[\"888\",0,\"\\\\d{11}\",[11],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\"]],0,0,0,0,0,0,[0,0,0,0,0,0,[\"\\\\d{11}\"]]],\"979\":[\"979\",0,\"[1359]\\\\d{8}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1359]\"]]],0,0,0,0,0,0,[0,0,0,[\"[1359]\\\\d{8}\"]]]}}","// Importing from a \".js\" file is a workaround for Node.js \"ES Modules\"\r\n// importing system which is even uncapable of importing \"*.json\" files.\r\nimport metadata from '../../metadata.mobile.json.js'\r\n\r\nexport default function withMetadataArgument(func, _arguments) {\r\n\tvar args = Array.prototype.slice.call(_arguments)\r\n\targs.push(metadata)\r\n\treturn func.apply(this, args)\r\n}"],"names":["getPossibleCountriesForNumber","callingCode","nationalNumber","metadata","possibleCountries","getCountryCodesForCallingCode","filter","country","_metadata","selectNumberingPlan","numberingPlan","possibleLengths","indexOf","length","couldNationalNumberBelongToCountry","FIRST_GROUP_PATTERN","formatNationalNumberUsingFormat","number","format","_ref","useInternationalFormat","withNationalPrefix","formattedNumber","carrierCode","replace","RegExp","pattern","internationalFormat","nationalPrefixFormattingRule","concat","trim","applyInternationalSeparatorStyle","SINGLE_IDD_PREFIX_REG_EXP","_createForOfIteratorHelperLoose","o","allowArrayLike","it","Symbol","iterator","call","next","bind","Array","isArray","minLen","_arrayLikeToArray","n","Object","prototype","toString","slice","constructor","name","from","test","_unsupportedIterableToArray","i","done","value","TypeError","arr","len","arr2","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","arguments","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","configurable","writable","DEFAULT_OPTIONS","formatExtension","extension","ext","formatNumber","input","options","hasCountry","Error","countryCallingCode","phone","v2","addExtension","formatNationalNumber","fromCountry","fromCountryCallingCode","iddPrefix","countryMetadata","defaultIDDPrefix","IDDPrefix","getIddPrefix","undefined","formatIDD","formatAs","availableFormats","nationalNnumber","_step","_iterator","leadingDigitsPatterns","lastLeadingDigitsPattern","search","matchesEntirely","chooseFormatForNumber","formats","nationalPrefixIsOptionalWhenFormattingInNationalFormat","nationalPrefix","_defineProperties","props","descriptor","PhoneNumber","instance","Constructor","_classCallCheck","this","isCountryCode","protoProps","staticProps","hasTypes","getNumberType","national_number","nationalNumberPattern","isValidNumber","isNonGeographicCallingCode","phoneNumber","_format","MIN_LENGTH_FOR_NSN","MAX_LENGTH_FOR_NSN","MAX_LENGTH_COUNTRY_CODE","VALID_DIGITS","VALID_PUNCTUATION","PLUS_CHARS","_slicedToArray","_arrayWithHoles","_i","_s","_e","_arr","_n","_d","err","_iterableToArrayLimit","_nonIterableRest","parseRFC3966","text","split","_part$split2","result","formatRFC3966","checkNumberLength","checkNumberLengthForType","type","type_info","possible_lengths","mobile_type","a","b","merged","element","sort","mergeArrays","actual_length","minimum_length","getExtensionDigitsPattern","maxLength","createExtensionPattern","purpose","possibleSeparatorsBetweenNumberAndExtLabel","possibleCharsAfterExtLabel","optionalExtnSuffix","possibleSeparatorsNumberExtLabelNoComma","NON_FIXED_LINE_PHONE_TYPES","isNumberTypeEqualTo","MIN_LENGTH_PHONE_NUMBER_PATTERN","VALID_PHONE_NUMBER","VALID_PHONE_NUMBER_START_REG_EXP","VALID_PHONE_NUMBER_WITH_EXTENSION","VALID_PHONE_NUMBER_PATTERN","isViablePhoneNumber","isViablePhoneNumberStart","regular_expression","isPossiblePhoneNumber","isPossibleNumber","pa","pb","na","Number","nb","isNaN","_typeof","_createClass","DEFAULT_EXT_PREFIX","CALLING_CODE_REG_EXP","Metadata","is_object","countries","join","type_of","validateMetadata","setVersion","_","countryCode","v1","v3","nonGeographic","nonGeographical","getCountryMetadata","countryCodes","countryCallingCodes","NumberingPlan","hasCallingCode","getNumberingPlanMetadata","getCountryCodeForCallingCode","nationalPrefixForParsing","nationalPrefixTransformRule","leadingDigits","_type","country_phone_code_to_countries","country_calling_codes","globalMetadataObject","_this","_getFormats","getDefaultCountryMetadataForRegion","map","Format","_getNationalPrefixFormattingRule","_nationalPrefixForParsing","_getNationalPrefixIsOptionalWhenFormatting","types","_type2","getType","Type","usesNationalPrefix","FIRST_GROUP_ONLY_PREFIX_PATTERN","getCountryCallingCode","version","v4","getExampleNumber","examples","withMetadataArgument","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","_wrapNativeSuper","Class","_cache","Map","fn","Function","has","get","set","Wrapper","_construct","_getPrototypeOf","create","_setPrototypeOf","Parent","args","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","e","p","setPrototypeOf","__proto__","getPrototypeOf","ParseError","_Error","subClass","superClass","_inherits","Derived","hasNativeReflectConstruct","_super","Super","NewTarget","code","EXTN_PATTERN","DIGITS","parseDigit","character","parseIncompletePhoneNumber","string","parsePhoneNumberCharacter","prevParsedCharacters","CAPTURING_DIGIT_PATTERN","extractNationalNumber","_extractNationalNumbe","prefixPattern","prefixMatch","exec","capturedGroupsCount","hasCapturedGroups","prefixBeforeNationalNumber","possiblePositionOfTheFirstCapturedGroup","extractNationalNumberFromPossiblyIncompleteNumber","nationalNumberBefore","nationalNumberAfter","shouldHaveExtractedNationalPrefix","isPossibleIncompleteNationalNumber","extractCountryCallingCode","numberWithoutIDD","IDDPrefixPattern","matchedGroups","match","stripIddPrefix","_extractCountryCallin","possibleShorterNumber","possibleShorterNationalNumber","extractCountryCallingCodeFromInternationalNumberWithoutPlusSign","shorterNumber","_countryCallingCode","getCountryByCallingCode","nationalPhoneNumber","getCountryByNationalNumber","PHONE_NUMBER_START_PATTERN","AFTER_PHONE_NUMBER_END_PATTERN","parse","defaultCountry","_parseInput","extract","throwOnError","startsAt","extractFormattedPhoneNumber","error","withExtensionStripped","start","numberWithoutExtension","matches","extractExtension","parseInput","formattedPhoneNumber","_parsePhoneNumber","defaultCallingCode","exactCountry","parsePhoneNumber","hasSelectedNumberingPlan","valid","extended","possible","_normalizeArguments","normalizeArguments","_Array$prototype$slic2","arg_1","arg_2","arg_3","arg_4","isObject","parsePhoneNumberWithError","func","_arguments"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"765.prod.js","mappings":"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,YAAY,GAAK,WAAW,GAAK,WAAW,GAAK,UAAU,GAAK,aAAa,GAAK,aAAa,GAAK,aAAa,GAAK,WAAW,GAAK,aAAa,GAAK,aAAa,GAAK,aAAa,GAAK,WAAW,GAAK,aAAa,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,WAAW,GAAK,WAAW,GAAK,YAAY,GAAK,WAAW,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,WAAW,GAAK,WAAW,GAAK,YAAY,GAAK,YAAY,GAAK,UAAU,GAAK,WAAW,GAAK,WAAW,GAAK,WAAW,GAAK,WAAW,GAAK,WAAW,GAAK,aAAa,GAAK,YAAY,GAAK,WAAW,GAAK,aAAa,GAAK,WAAW,GAAK,WAAW,GAAK,UAAU,GAAK,YAAY,GAAK,cAAc,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,SAAS,GAAK,WAAW,GAAK,SAAS,GAAK,aAAa,GAAK,WAAW,GAAK,YAAY,GAAK,WAAW,GAAK,aAAa,GAAK,UAAU,GAAK,UAAU,GAAK,YAAY,GAAK,WAAW,GAAK,WAAW,GAAK,YAAY,GAAK,WAAW,GAAK,WAAW,GAAK,aAAa,GAAK,aAAa,GAAK,YAAY,GAAK,SAAS,GAAK,aAAa,GAAK,YAAY,GAAK,YAAY,GAAK,UAAU,GAAK,YAAY,GAAK,WAAW,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,aAAa,GAAK,YAAY,GAAK,YAAY,GAAK,UAAU,GAAK,UAAU,GAAK,YAAY,GAAK,YAAY,GAAK,WAAW,GAAK,QAAQ,GAAK,WAAW,GAAK,WAAW,GAAK,YAAY,GAAK,WAAW,GAAK,WAAW,GAAK,YAAY,GAAK,WAAW,GAAK,UAAU,GAAK,YAAY,GAAK,UAAU,GAAK,WAAW,GAAK,aAAa,GAAK,YAAY,GAAK,WAAW,GAAK,OAAO,GAAK,aAAa,GAAK,WAAW,GAAK,WAAW,GAAK,YAAY,GAAK,YAAY,GAAK,OAAO,GAAK,WAAW,GAAK,WAAW,GAAK,WAAW,GAAK,UAAU,GAAK,aAAa,GAAK,aAAa,GAAK,SAAS,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,aAAa,GAAK,WAAW,GAAK,YAAY,GAAK,aAAa,GAAK,aAAa,GAAK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K,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,KAAK,KAAK,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAA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","sources":["webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/getPossibleCountriesForNumber.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/formatNationalNumberUsingFormat.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/applyInternationalSeparatorStyle.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/getIddPrefix.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/format_.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/PhoneNumber.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/validate_.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/constants.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/RFC3966.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/mergeArrays.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/checkNumberLength.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/extension/createExtensionPattern.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/getNumberType.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/isViablePhoneNumber.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/matchesEntirely.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/isPossibleNumber_.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/tools/semver-compare.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/metadata.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/examples.mobile.json.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/getExampleNumber.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/mobile/exports/getExampleNumber.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/ParseError.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/extension/extractExtension.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/parseDigits.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/parseIncompletePhoneNumber.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/stripIddPrefix.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/extractNationalNumber.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCode.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/getCountryByNationalNumber.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/helpers/getCountryByCallingCode.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/parse_.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/parsePhoneNumber_.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/parsePhoneNumber.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/mobile/exports/parsePhoneNumberWithError.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/metadata.mobile.json.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/mobile/exports/withMetadataArgument.js"],"sourcesContent":["import Metadata from '../metadata.js';\n/**\r\n * Returns a list of countries that the phone number could potentially belong to.\r\n * @param {string} callingCode — Calling code.\r\n * @param {string} nationalNumber — National (significant) number.\r\n * @param {object} metadata — Metadata.\r\n * @return {string[]} A list of possible countries.\r\n */\n\nexport default function getPossibleCountriesForNumber(callingCode, nationalNumber, metadata) {\n var _metadata = new Metadata(metadata);\n\n var possibleCountries = _metadata.getCountryCodesForCallingCode(callingCode);\n\n if (!possibleCountries) {\n return [];\n }\n\n return possibleCountries.filter(function (country) {\n return couldNationalNumberBelongToCountry(nationalNumber, country, metadata);\n });\n}\n\nfunction couldNationalNumberBelongToCountry(nationalNumber, country, metadata) {\n var _metadata = new Metadata(metadata);\n\n _metadata.selectNumberingPlan(country);\n\n if (_metadata.numberingPlan.possibleLengths().indexOf(nationalNumber.length) >= 0) {\n return true;\n }\n\n return false;\n}\n//# sourceMappingURL=getPossibleCountriesForNumber.js.map","import applyInternationalSeparatorStyle from './applyInternationalSeparatorStyle.js'; // This was originally set to $1 but there are some countries for which the\n// first group is not used in the national pattern (e.g. Argentina) so the $1\n// group does not match correctly. Therefore, we use `\\d`, so that the first\n// group actually used in the pattern will be matched.\n\nexport var FIRST_GROUP_PATTERN = /(\\$\\d)/;\nexport default function formatNationalNumberUsingFormat(number, format, _ref) {\n var useInternationalFormat = _ref.useInternationalFormat,\n withNationalPrefix = _ref.withNationalPrefix,\n carrierCode = _ref.carrierCode,\n metadata = _ref.metadata;\n var formattedNumber = number.replace(new RegExp(format.pattern()), useInternationalFormat ? format.internationalFormat() : // This library doesn't use `domestic_carrier_code_formatting_rule`,\n // because that one is only used when formatting phone numbers\n // for dialing from a mobile phone, and this is not a dialing library.\n // carrierCode && format.domesticCarrierCodeFormattingRule()\n // \t// First, replace the $CC in the formatting rule with the desired carrier code.\n // \t// Then, replace the $FG in the formatting rule with the first group\n // \t// and the carrier code combined in the appropriate way.\n // \t? format.format().replace(FIRST_GROUP_PATTERN, format.domesticCarrierCodeFormattingRule().replace('$CC', carrierCode))\n // \t: (\n // \t\twithNationalPrefix && format.nationalPrefixFormattingRule()\n // \t\t\t? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule())\n // \t\t\t: format.format()\n // \t)\n withNationalPrefix && format.nationalPrefixFormattingRule() ? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()) : format.format());\n\n if (useInternationalFormat) {\n return applyInternationalSeparatorStyle(formattedNumber);\n }\n\n return formattedNumber;\n}\n//# sourceMappingURL=formatNationalNumberUsingFormat.js.map","import { VALID_PUNCTUATION } from '../constants.js'; // Removes brackets and replaces dashes with spaces.\n//\n// E.g. \"(999) 111-22-33\" -> \"999 111 22 33\"\n//\n// For some reason Google's metadata contains ``s with brackets and dashes.\n// Meanwhile, there's no single opinion about using punctuation in international phone numbers.\n//\n// For example, Google's `` for USA is `+1 213-373-4253`.\n// And here's a quote from WikiPedia's \"North American Numbering Plan\" page:\n// https://en.wikipedia.org/wiki/North_American_Numbering_Plan\n//\n// \"The country calling code for all countries participating in the NANP is 1.\n// In international format, an NANP number should be listed as +1 301 555 01 00,\n// where 301 is an area code (Maryland).\"\n//\n// I personally prefer the international format without any punctuation.\n// For example, brackets are remnants of the old age, meaning that the\n// phone number part in brackets (so called \"area code\") can be omitted\n// if dialing within the same \"area\".\n// And hyphens were clearly introduced for splitting local numbers into memorizable groups.\n// For example, remembering \"5553535\" is difficult but \"555-35-35\" is much simpler.\n// Imagine a man taking a bus from home to work and seeing an ad with a phone number.\n// He has a couple of seconds to memorize that number until it passes by.\n// If it were spaces instead of hyphens the man wouldn't necessarily get it,\n// but with hyphens instead of spaces the grouping is more explicit.\n// I personally think that hyphens introduce visual clutter,\n// so I prefer replacing them with spaces in international numbers.\n// In the modern age all output is done on displays where spaces are clearly distinguishable\n// so hyphens can be safely replaced with spaces without losing any legibility.\n//\n\nexport default function applyInternationalSeparatorStyle(formattedNumber) {\n return formattedNumber.replace(new RegExp(\"[\".concat(VALID_PUNCTUATION, \"]+\"), 'g'), ' ').trim();\n}\n//# sourceMappingURL=applyInternationalSeparatorStyle.js.map","import Metadata from '../metadata.js';\n/**\r\n * Pattern that makes it easy to distinguish whether a region has a single\r\n * international dialing prefix or not. If a region has a single international\r\n * prefix (e.g. 011 in USA), it will be represented as a string that contains\r\n * a sequence of ASCII digits, and possibly a tilde, which signals waiting for\r\n * the tone. If there are multiple available international prefixes in a\r\n * region, they will be represented as a regex string that always contains one\r\n * or more characters that are not ASCII digits or a tilde.\r\n */\n\nvar SINGLE_IDD_PREFIX_REG_EXP = /^[\\d]+(?:[~\\u2053\\u223C\\uFF5E][\\d]+)?$/; // For regions that have multiple IDD prefixes\n// a preferred IDD prefix is returned.\n\nexport default function getIddPrefix(country, callingCode, metadata) {\n var countryMetadata = new Metadata(metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n\n if (countryMetadata.defaultIDDPrefix()) {\n return countryMetadata.defaultIDDPrefix();\n }\n\n if (SINGLE_IDD_PREFIX_REG_EXP.test(countryMetadata.IDDPrefix())) {\n return countryMetadata.IDDPrefix();\n }\n}\n//# sourceMappingURL=getIddPrefix.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// This is a port of Google Android `libphonenumber`'s\n// `phonenumberutil.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat.js';\nimport Metadata, { getCountryCallingCode } from './metadata.js';\nimport getIddPrefix from './helpers/getIddPrefix.js';\nimport { formatRFC3966 } from './helpers/RFC3966.js';\nvar DEFAULT_OPTIONS = {\n formatExtension: function formatExtension(formattedNumber, extension, metadata) {\n return \"\".concat(formattedNumber).concat(metadata.ext()).concat(extension);\n }\n}; // Formats a phone number\n//\n// Example use cases:\n//\n// ```js\n// formatNumber('8005553535', 'RU', 'INTERNATIONAL')\n// formatNumber('8005553535', 'RU', 'INTERNATIONAL', metadata)\n// formatNumber({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL')\n// formatNumber({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL', metadata)\n// formatNumber('+78005553535', 'NATIONAL')\n// formatNumber('+78005553535', 'NATIONAL', metadata)\n// ```\n//\n\nexport default function formatNumber(input, format, options, metadata) {\n // Apply default options.\n if (options) {\n options = _objectSpread(_objectSpread({}, DEFAULT_OPTIONS), options);\n } else {\n options = DEFAULT_OPTIONS;\n }\n\n metadata = new Metadata(metadata);\n\n if (input.country && input.country !== '001') {\n // Validate `input.country`.\n if (!metadata.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n\n metadata.country(input.country);\n } else if (input.countryCallingCode) {\n metadata.selectNumberingPlan(input.countryCallingCode);\n } else return input.phone || '';\n\n var countryCallingCode = metadata.countryCallingCode();\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // This variable should have been declared inside `case`s\n // but Babel has a bug and it says \"duplicate variable declaration\".\n\n var number;\n\n switch (format) {\n case 'NATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return '';\n }\n\n number = formatNationalNumber(nationalNumber, input.carrierCode, 'NATIONAL', metadata, options);\n return addExtension(number, input.ext, metadata, options.formatExtension);\n\n case 'INTERNATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return \"+\".concat(countryCallingCode);\n }\n\n number = formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata, options);\n number = \"+\".concat(countryCallingCode, \" \").concat(number);\n return addExtension(number, input.ext, metadata, options.formatExtension);\n\n case 'E.164':\n // `E.164` doesn't define \"phone number extensions\".\n return \"+\".concat(countryCallingCode).concat(nationalNumber);\n\n case 'RFC3966':\n return formatRFC3966({\n number: \"+\".concat(countryCallingCode).concat(nationalNumber),\n ext: input.ext\n });\n // For reference, here's Google's IDD formatter:\n // https://github.com/google/libphonenumber/blob/32719cf74e68796788d1ca45abc85dcdc63ba5b9/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L1546\n // Not saying that this IDD formatter replicates it 1:1, but it seems to work.\n // Who would even need to format phone numbers in IDD format anyway?\n\n case 'IDD':\n if (!options.fromCountry) {\n return; // throw new Error('`fromCountry` option not passed for IDD-prefixed formatting.')\n }\n\n var formattedNumber = formatIDD(nationalNumber, input.carrierCode, countryCallingCode, options.fromCountry, metadata);\n return addExtension(formattedNumber, input.ext, metadata, options.formatExtension);\n\n default:\n throw new Error(\"Unknown \\\"format\\\" argument passed to \\\"formatNumber()\\\": \\\"\".concat(format, \"\\\"\"));\n }\n}\n\nfunction formatNationalNumber(number, carrierCode, formatAs, metadata, options) {\n var format = chooseFormatForNumber(metadata.formats(), number);\n\n if (!format) {\n return number;\n }\n\n return formatNationalNumberUsingFormat(number, format, {\n useInternationalFormat: formatAs === 'INTERNATIONAL',\n withNationalPrefix: format.nationalPrefixIsOptionalWhenFormattingInNationalFormat() && options && options.nationalPrefix === false ? false : true,\n carrierCode: carrierCode,\n metadata: metadata\n });\n}\n\nfunction chooseFormatForNumber(availableFormats, nationalNnumber) {\n for (var _iterator = _createForOfIteratorHelperLoose(availableFormats), _step; !(_step = _iterator()).done;) {\n var format = _step.value;\n\n // Validate leading digits.\n // The test case for \"else path\" could be found by searching for\n // \"format.leadingDigitsPatterns().length === 0\".\n if (format.leadingDigitsPatterns().length > 0) {\n // The last leading_digits_pattern is used here, as it is the most detailed\n var lastLeadingDigitsPattern = format.leadingDigitsPatterns()[format.leadingDigitsPatterns().length - 1]; // If leading digits don't match then move on to the next phone number format\n\n if (nationalNnumber.search(lastLeadingDigitsPattern) !== 0) {\n continue;\n }\n } // Check that the national number matches the phone number format regular expression\n\n\n if (matchesEntirely(nationalNnumber, format.pattern())) {\n return format;\n }\n }\n}\n\nfunction addExtension(formattedNumber, ext, metadata, formatExtension) {\n return ext ? formatExtension(formattedNumber, ext, metadata) : formattedNumber;\n}\n\nfunction formatIDD(nationalNumber, carrierCode, countryCallingCode, fromCountry, metadata) {\n var fromCountryCallingCode = getCountryCallingCode(fromCountry, metadata.metadata); // When calling within the same country calling code.\n\n if (fromCountryCallingCode === countryCallingCode) {\n var formattedNumber = formatNationalNumber(nationalNumber, carrierCode, 'NATIONAL', metadata); // For NANPA regions, return the national format for these regions\n // but prefix it with the country calling code.\n\n if (countryCallingCode === '1') {\n return countryCallingCode + ' ' + formattedNumber;\n } // If regions share a country calling code, the country calling code need\n // not be dialled. This also applies when dialling within a region, so this\n // if clause covers both these cases. Technically this is the case for\n // dialling from La Reunion to other overseas departments of France (French\n // Guiana, Martinique, Guadeloupe), but not vice versa - so we don't cover\n // this edge case for now and for those cases return the version including\n // country calling code. Details here:\n // http://www.petitfute.com/voyage/225-info-pratiques-reunion\n //\n\n\n return formattedNumber;\n }\n\n var iddPrefix = getIddPrefix(fromCountry, undefined, metadata.metadata);\n\n if (iddPrefix) {\n return \"\".concat(iddPrefix, \" \").concat(countryCallingCode, \" \").concat(formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata));\n }\n}\n//# sourceMappingURL=format_.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport Metadata from './metadata.js';\nimport isPossibleNumber from './isPossibleNumber_.js';\nimport isValidNumber from './validate_.js';\nimport isValidNumberForRegion from './isValidNumberForRegion_.js';\nimport getNumberType from './helpers/getNumberType.js';\nimport getPossibleCountriesForNumber from './helpers/getPossibleCountriesForNumber.js';\nimport formatNumber from './format_.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\n\nvar PhoneNumber = /*#__PURE__*/function () {\n function PhoneNumber(countryCallingCode, nationalNumber, metadata) {\n _classCallCheck(this, PhoneNumber);\n\n if (!countryCallingCode) {\n throw new TypeError('`country` or `countryCallingCode` not passed');\n }\n\n if (!nationalNumber) {\n throw new TypeError('`nationalNumber` not passed');\n }\n\n if (!metadata) {\n throw new TypeError('`metadata` not passed');\n }\n\n var _metadata = new Metadata(metadata); // If country code is passed then derive `countryCallingCode` from it.\n // Also store the country code as `.country`.\n\n\n if (isCountryCode(countryCallingCode)) {\n this.country = countryCallingCode;\n\n _metadata.country(countryCallingCode);\n\n countryCallingCode = _metadata.countryCallingCode();\n } else {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (_metadata.isNonGeographicCallingCode(countryCallingCode)) {\n this.country = '001';\n }\n }\n }\n\n this.countryCallingCode = countryCallingCode;\n this.nationalNumber = nationalNumber;\n this.number = '+' + this.countryCallingCode + this.nationalNumber;\n this.metadata = metadata;\n }\n\n _createClass(PhoneNumber, [{\n key: \"setExt\",\n value: function setExt(ext) {\n this.ext = ext;\n }\n }, {\n key: \"getPossibleCountries\",\n value: function getPossibleCountries() {\n if (this.country) {\n return [this.country];\n }\n\n return getPossibleCountriesForNumber(this.countryCallingCode, this.nationalNumber, this.metadata);\n }\n }, {\n key: \"isPossible\",\n value: function isPossible() {\n return isPossibleNumber(this, {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"isValid\",\n value: function isValid() {\n return isValidNumber(this, {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"isNonGeographic\",\n value: function isNonGeographic() {\n var metadata = new Metadata(this.metadata);\n return metadata.isNonGeographicCallingCode(this.countryCallingCode);\n }\n }, {\n key: \"isEqual\",\n value: function isEqual(phoneNumber) {\n return this.number === phoneNumber.number && this.ext === phoneNumber.ext;\n } // // Is just an alias for `this.isValid() && this.country === country`.\n // // https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\n // isValidForRegion(country) {\n // \treturn isValidNumberForRegion(this, country, { v2: true }, this.metadata)\n // }\n\n }, {\n key: \"getType\",\n value: function getType() {\n return getNumberType(this, {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"format\",\n value: function format(_format, options) {\n return formatNumber(this, _format, options ? _objectSpread(_objectSpread({}, options), {}, {\n v2: true\n }) : {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"formatNational\",\n value: function formatNational(options) {\n return this.format('NATIONAL', options);\n }\n }, {\n key: \"formatInternational\",\n value: function formatInternational(options) {\n return this.format('INTERNATIONAL', options);\n }\n }, {\n key: \"getURI\",\n value: function getURI(options) {\n return this.format('RFC3966', options);\n }\n }]);\n\n return PhoneNumber;\n}();\n\nexport { PhoneNumber as default };\n\nvar isCountryCode = function isCountryCode(value) {\n return /^[A-Z]{2}$/.test(value);\n};\n//# sourceMappingURL=PhoneNumber.js.map","import Metadata from './metadata.js';\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport getNumberType from './helpers/getNumberType.js';\n/**\r\n * Checks if a given phone number is valid.\r\n *\r\n * If the `number` is a string, it will be parsed to an object,\r\n * but only if it contains only valid phone number characters (including punctuation).\r\n * If the `number` is an object, it is used as is.\r\n *\r\n * The optional `defaultCountry` argument is the default country.\r\n * I.e. it does not restrict to just that country,\r\n * e.g. in those cases where several countries share\r\n * the same phone numbering rules (NANPA, Britain, etc).\r\n * For example, even though the number `07624 369230`\r\n * belongs to the Isle of Man (\"IM\" country code)\r\n * calling `isValidNumber('07624369230', 'GB', metadata)`\r\n * still returns `true` because the country is not restricted to `GB`,\r\n * it's just that `GB` is the default one for the phone numbering rules.\r\n * For restricting the country see `isValidNumberForRegion()`\r\n * though restricting a country might not be a good idea.\r\n * https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\r\n *\r\n * Examples:\r\n *\r\n * ```js\r\n * isValidNumber('+78005553535', metadata)\r\n * isValidNumber('8005553535', 'RU', metadata)\r\n * isValidNumber('88005553535', 'RU', metadata)\r\n * isValidNumber({ phone: '8005553535', country: 'RU' }, metadata)\r\n * ```\r\n */\n\nexport default function isValidNumber(input, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {};\n metadata = new Metadata(metadata); // This is just to support `isValidNumber({})`\n // for cases when `parseNumber()` returns `{}`.\n\n if (!input.country) {\n return false;\n }\n\n metadata.selectNumberingPlan(input.country, input.countryCallingCode); // By default, countries only have type regexps when it's required for\n // distinguishing different countries having the same `countryCallingCode`.\n\n if (metadata.hasTypes()) {\n return getNumberType(input, options, metadata.metadata) !== undefined;\n } // If there are no type regexps for this country in metadata then use\n // `nationalNumberPattern` as a \"better than nothing\" replacement.\n\n\n var national_number = options.v2 ? input.nationalNumber : input.phone;\n return matchesEntirely(national_number, metadata.nationalNumberPattern());\n}\n//# sourceMappingURL=validate_.js.map","// The minimum length of the national significant number.\nexport var MIN_LENGTH_FOR_NSN = 2; // The ITU says the maximum length should be 15,\n// but one can find longer numbers in Germany.\n\nexport var MAX_LENGTH_FOR_NSN = 17; // The maximum length of the country calling code.\n\nexport var MAX_LENGTH_COUNTRY_CODE = 3; // Digits accepted in phone numbers\n// (ascii, fullwidth, arabic-indic, and eastern arabic digits).\n\nexport var VALID_DIGITS = \"0-9\\uFF10-\\uFF19\\u0660-\\u0669\\u06F0-\\u06F9\"; // `DASHES` will be right after the opening square bracket of the \"character class\"\n\nvar DASHES = \"-\\u2010-\\u2015\\u2212\\u30FC\\uFF0D\";\nvar SLASHES = \"\\uFF0F/\";\nvar DOTS = \"\\uFF0E.\";\nexport var WHITESPACE = \" \\xA0\\xAD\\u200B\\u2060\\u3000\";\nvar BRACKETS = \"()\\uFF08\\uFF09\\uFF3B\\uFF3D\\\\[\\\\]\"; // export const OPENING_BRACKETS = '(\\uFF08\\uFF3B\\\\\\['\n\nvar TILDES = \"~\\u2053\\u223C\\uFF5E\"; // Regular expression of acceptable punctuation found in phone numbers. This\n// excludes punctuation found as a leading character only. This consists of dash\n// characters, white space characters, full stops, slashes, square brackets,\n// parentheses and tildes. Full-width variants are also present.\n\nexport var VALID_PUNCTUATION = \"\".concat(DASHES).concat(SLASHES).concat(DOTS).concat(WHITESPACE).concat(BRACKETS).concat(TILDES);\nexport var PLUS_CHARS = \"+\\uFF0B\"; // const LEADING_PLUS_CHARS_PATTERN = new RegExp('^[' + PLUS_CHARS + ']+')\n//# sourceMappingURL=constants.js.map","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport isViablePhoneNumber from './isViablePhoneNumber.js'; // https://www.ietf.org/rfc/rfc3966.txt\n\n/**\r\n * @param {string} text - Phone URI (RFC 3966).\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\n\nexport function parseRFC3966(text) {\n var number;\n var ext; // Replace \"tel:\" with \"tel=\" for parsing convenience.\n\n text = text.replace(/^tel:/, 'tel=');\n\n for (var _iterator = _createForOfIteratorHelperLoose(text.split(';')), _step; !(_step = _iterator()).done;) {\n var part = _step.value;\n\n var _part$split = part.split('='),\n _part$split2 = _slicedToArray(_part$split, 2),\n name = _part$split2[0],\n value = _part$split2[1];\n\n switch (name) {\n case 'tel':\n number = value;\n break;\n\n case 'ext':\n ext = value;\n break;\n\n case 'phone-context':\n // Only \"country contexts\" are supported.\n // \"Domain contexts\" are ignored.\n if (value[0] === '+') {\n number = value + number;\n }\n\n break;\n }\n } // If the phone number is not viable, then abort.\n\n\n if (!isViablePhoneNumber(number)) {\n return {};\n }\n\n var result = {\n number: number\n };\n\n if (ext) {\n result.ext = ext;\n }\n\n return result;\n}\n/**\r\n * @param {object} - `{ ?number, ?extension }`.\r\n * @return {string} Phone URI (RFC 3966).\r\n */\n\nexport function formatRFC3966(_ref) {\n var number = _ref.number,\n ext = _ref.ext;\n\n if (!number) {\n return '';\n }\n\n if (number[0] !== '+') {\n throw new Error(\"\\\"formatRFC3966()\\\" expects \\\"number\\\" to be in E.164 format.\");\n }\n\n return \"tel:\".concat(number).concat(ext ? ';ext=' + ext : '');\n}\n//# sourceMappingURL=RFC3966.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\r\n * Merges two arrays.\r\n * @param {*} a\r\n * @param {*} b\r\n * @return {*}\r\n */\nexport default function mergeArrays(a, b) {\n var merged = a.slice();\n\n for (var _iterator = _createForOfIteratorHelperLoose(b), _step; !(_step = _iterator()).done;) {\n var element = _step.value;\n\n if (a.indexOf(element) < 0) {\n merged.push(element);\n }\n }\n\n return merged.sort(function (a, b) {\n return a - b;\n }); // ES6 version, requires Set polyfill.\n // let merged = new Set(a)\n // for (const element of b) {\n // \tmerged.add(i)\n // }\n // return Array.from(merged).sort((a, b) => a - b)\n}\n//# sourceMappingURL=mergeArrays.js.map","import mergeArrays from './mergeArrays.js';\nexport default function checkNumberLength(nationalNumber, metadata) {\n return checkNumberLengthForType(nationalNumber, undefined, metadata);\n} // Checks whether a number is possible for the country based on its length.\n// Should only be called for the \"new\" metadata which has \"possible lengths\".\n\nexport function checkNumberLengthForType(nationalNumber, type, metadata) {\n var type_info = metadata.type(type); // There should always be \"\" set for every type element.\n // This is declared in the XML schema.\n // For size efficiency, where a sub-description (e.g. fixed-line)\n // has the same \"\" as the \"general description\", this is missing,\n // so we fall back to the \"general description\". Where no numbers of the type\n // exist at all, there is one possible length (-1) which is guaranteed\n // not to match the length of any real phone number.\n\n var possible_lengths = type_info && type_info.possibleLengths() || metadata.possibleLengths(); // let local_lengths = type_info && type.possibleLengthsLocal() || metadata.possibleLengthsLocal()\n // Metadata before version `1.0.18` didn't contain `possible_lengths`.\n\n if (!possible_lengths) {\n return 'IS_POSSIBLE';\n }\n\n if (type === 'FIXED_LINE_OR_MOBILE') {\n // No such country in metadata.\n\n /* istanbul ignore next */\n if (!metadata.type('FIXED_LINE')) {\n // The rare case has been encountered where no fixedLine data is available\n // (true for some non-geographic entities), so we just check mobile.\n return checkNumberLengthForType(nationalNumber, 'MOBILE', metadata);\n }\n\n var mobile_type = metadata.type('MOBILE');\n\n if (mobile_type) {\n // Merge the mobile data in if there was any. \"Concat\" creates a new\n // array, it doesn't edit possible_lengths in place, so we don't need a copy.\n // Note that when adding the possible lengths from mobile, we have\n // to again check they aren't empty since if they are this indicates\n // they are the same as the general desc and should be obtained from there.\n possible_lengths = mergeArrays(possible_lengths, mobile_type.possibleLengths()); // The current list is sorted; we need to merge in the new list and\n // re-sort (duplicates are okay). Sorting isn't so expensive because\n // the lists are very small.\n // if (local_lengths) {\n // \tlocal_lengths = mergeArrays(local_lengths, mobile_type.possibleLengthsLocal())\n // } else {\n // \tlocal_lengths = mobile_type.possibleLengthsLocal()\n // }\n }\n } // If the type doesn't exist then return 'INVALID_LENGTH'.\n else if (type && !type_info) {\n return 'INVALID_LENGTH';\n }\n\n var actual_length = nationalNumber.length; // In `libphonenumber-js` all \"local-only\" formats are dropped for simplicity.\n // // This is safe because there is never an overlap beween the possible lengths\n // // and the local-only lengths; this is checked at build time.\n // if (local_lengths && local_lengths.indexOf(nationalNumber.length) >= 0)\n // {\n // \treturn 'IS_POSSIBLE_LOCAL_ONLY'\n // }\n\n var minimum_length = possible_lengths[0];\n\n if (minimum_length === actual_length) {\n return 'IS_POSSIBLE';\n }\n\n if (minimum_length > actual_length) {\n return 'TOO_SHORT';\n }\n\n if (possible_lengths[possible_lengths.length - 1] < actual_length) {\n return 'TOO_LONG';\n } // We skip the first element since we've already checked it.\n\n\n return possible_lengths.indexOf(actual_length, 1) >= 0 ? 'IS_POSSIBLE' : 'INVALID_LENGTH';\n}\n//# sourceMappingURL=checkNumberLength.js.map","import { VALID_DIGITS } from '../../constants.js'; // The RFC 3966 format for extensions.\n\nvar RFC3966_EXTN_PREFIX = ';ext=';\n/**\r\n * Helper method for constructing regular expressions for parsing. Creates\r\n * an expression that captures up to max_length digits.\r\n * @return {string} RegEx pattern to capture extension digits.\r\n */\n\nvar getExtensionDigitsPattern = function getExtensionDigitsPattern(maxLength) {\n return \"([\".concat(VALID_DIGITS, \"]{1,\").concat(maxLength, \"})\");\n};\n/**\r\n * Helper initialiser method to create the regular-expression pattern to match\r\n * extensions.\r\n * Copy-pasted from Google's `libphonenumber`:\r\n * https://github.com/google/libphonenumber/blob/55b2646ec9393f4d3d6661b9c82ef9e258e8b829/javascript/i18n/phonenumbers/phonenumberutil.js#L759-L766\r\n * @return {string} RegEx pattern to capture extensions.\r\n */\n\n\nexport default function createExtensionPattern(purpose) {\n // We cap the maximum length of an extension based on the ambiguity of the way\n // the extension is prefixed. As per ITU, the officially allowed length for\n // extensions is actually 40, but we don't support this since we haven't seen real\n // examples and this introduces many false interpretations as the extension labels\n // are not standardized.\n\n /** @type {string} */\n var extLimitAfterExplicitLabel = '20';\n /** @type {string} */\n\n var extLimitAfterLikelyLabel = '15';\n /** @type {string} */\n\n var extLimitAfterAmbiguousChar = '9';\n /** @type {string} */\n\n var extLimitWhenNotSure = '6';\n /** @type {string} */\n\n var possibleSeparatorsBetweenNumberAndExtLabel = \"[ \\xA0\\\\t,]*\"; // Optional full stop (.) or colon, followed by zero or more spaces/tabs/commas.\n\n /** @type {string} */\n\n var possibleCharsAfterExtLabel = \"[:\\\\.\\uFF0E]?[ \\xA0\\\\t,-]*\";\n /** @type {string} */\n\n var optionalExtnSuffix = \"#?\"; // Here the extension is called out in more explicit way, i.e mentioning it obvious\n // patterns like \"ext.\".\n\n /** @type {string} */\n\n var explicitExtLabels = \"(?:e?xt(?:ensi(?:o\\u0301?|\\xF3))?n?|\\uFF45?\\uFF58\\uFF54\\uFF4E?|\\u0434\\u043E\\u0431|anexo)\"; // One-character symbols that can be used to indicate an extension, and less\n // commonly used or more ambiguous extension labels.\n\n /** @type {string} */\n\n var ambiguousExtLabels = \"(?:[x\\uFF58#\\uFF03~\\uFF5E]|int|\\uFF49\\uFF4E\\uFF54)\"; // When extension is not separated clearly.\n\n /** @type {string} */\n\n var ambiguousSeparator = \"[- ]+\"; // This is the same as possibleSeparatorsBetweenNumberAndExtLabel, but not matching\n // comma as extension label may have it.\n\n /** @type {string} */\n\n var possibleSeparatorsNumberExtLabelNoComma = \"[ \\xA0\\\\t]*\"; // \",,\" is commonly used for auto dialling the extension when connected. First\n // comma is matched through possibleSeparatorsBetweenNumberAndExtLabel, so we do\n // not repeat it here. Semi-colon works in Iphone and Android also to pop up a\n // button with the extension number following.\n\n /** @type {string} */\n\n var autoDiallingAndExtLabelsFound = \"(?:,{2}|;)\";\n /** @type {string} */\n\n var rfcExtn = RFC3966_EXTN_PREFIX + getExtensionDigitsPattern(extLimitAfterExplicitLabel);\n /** @type {string} */\n\n var explicitExtn = possibleSeparatorsBetweenNumberAndExtLabel + explicitExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterExplicitLabel) + optionalExtnSuffix;\n /** @type {string} */\n\n var ambiguousExtn = possibleSeparatorsBetweenNumberAndExtLabel + ambiguousExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix;\n /** @type {string} */\n\n var americanStyleExtnWithSuffix = ambiguousSeparator + getExtensionDigitsPattern(extLimitWhenNotSure) + \"#\";\n /** @type {string} */\n\n var autoDiallingExtn = possibleSeparatorsNumberExtLabelNoComma + autoDiallingAndExtLabelsFound + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterLikelyLabel) + optionalExtnSuffix;\n /** @type {string} */\n\n var onlyCommasExtn = possibleSeparatorsNumberExtLabelNoComma + \"(?:,)+\" + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix; // The first regular expression covers RFC 3966 format, where the extension is added\n // using \";ext=\". The second more generic where extension is mentioned with explicit\n // labels like \"ext:\". In both the above cases we allow more numbers in extension than\n // any other extension labels. The third one captures when single character extension\n // labels or less commonly used labels are used. In such cases we capture fewer\n // extension digits in order to reduce the chance of falsely interpreting two\n // numbers beside each other as a number + extension. The fourth one covers the\n // special case of American numbers where the extension is written with a hash\n // at the end, such as \"- 503#\". The fifth one is exclusively for extension\n // autodialling formats which are used when dialling and in this case we accept longer\n // extensions. The last one is more liberal on the number of commas that acts as\n // extension labels, so we have a strict cap on the number of digits in such extensions.\n\n return rfcExtn + \"|\" + explicitExtn + \"|\" + ambiguousExtn + \"|\" + americanStyleExtnWithSuffix + \"|\" + autoDiallingExtn + \"|\" + onlyCommasExtn;\n}\n//# sourceMappingURL=createExtensionPattern.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport Metadata from '../metadata.js';\nimport matchesEntirely from './matchesEntirely.js';\nvar NON_FIXED_LINE_PHONE_TYPES = ['MOBILE', 'PREMIUM_RATE', 'TOLL_FREE', 'SHARED_COST', 'VOIP', 'PERSONAL_NUMBER', 'PAGER', 'UAN', 'VOICEMAIL']; // Finds out national phone number type (fixed line, mobile, etc)\n\nexport default function getNumberType(input, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {}; // When `parse()` returned `{}`\n // meaning that the phone number is not a valid one.\n\n if (!input.country) {\n return;\n }\n\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(input.country, input.countryCallingCode);\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // The following is copy-pasted from the original function:\n // https://github.com/googlei18n/libphonenumber/blob/3ea547d4fbaa2d0b67588904dfa5d3f2557c27ff/javascript/i18n/phonenumbers/phonenumberutil.js#L2835\n // Is this national number even valid for this country\n\n if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern())) {\n return;\n } // Is it fixed line number\n\n\n if (isNumberTypeEqualTo(nationalNumber, 'FIXED_LINE', metadata)) {\n // Because duplicate regular expressions are removed\n // to reduce metadata size, if \"mobile\" pattern is \"\"\n // then it means it was removed due to being a duplicate of the fixed-line pattern.\n //\n if (metadata.type('MOBILE') && metadata.type('MOBILE').pattern() === '') {\n return 'FIXED_LINE_OR_MOBILE';\n } // `MOBILE` type pattern isn't included if it matched `FIXED_LINE` one.\n // For example, for \"US\" country.\n // Old metadata (< `1.0.18`) had a specific \"types\" data structure\n // that happened to be `undefined` for `MOBILE` in that case.\n // Newer metadata (>= `1.0.18`) has another data structure that is\n // not `undefined` for `MOBILE` in that case (it's just an empty array).\n // So this `if` is just for backwards compatibility with old metadata.\n\n\n if (!metadata.type('MOBILE')) {\n return 'FIXED_LINE_OR_MOBILE';\n } // Check if the number happens to qualify as both fixed line and mobile.\n // (no such country in the minimal metadata set)\n\n /* istanbul ignore if */\n\n\n if (isNumberTypeEqualTo(nationalNumber, 'MOBILE', metadata)) {\n return 'FIXED_LINE_OR_MOBILE';\n }\n\n return 'FIXED_LINE';\n }\n\n for (var _iterator = _createForOfIteratorHelperLoose(NON_FIXED_LINE_PHONE_TYPES), _step; !(_step = _iterator()).done;) {\n var type = _step.value;\n\n if (isNumberTypeEqualTo(nationalNumber, type, metadata)) {\n return type;\n }\n }\n}\nexport function isNumberTypeEqualTo(nationalNumber, type, metadata) {\n type = metadata.type(type);\n\n if (!type || !type.pattern()) {\n return false;\n } // Check if any possible number lengths are present;\n // if so, we use them to avoid checking\n // the validation pattern if they don't match.\n // If they are absent, this means they match\n // the general description, which we have\n // already checked before a specific number type.\n\n\n if (type.possibleLengths() && type.possibleLengths().indexOf(nationalNumber.length) < 0) {\n return false;\n }\n\n return matchesEntirely(nationalNumber, type.pattern());\n}\n//# sourceMappingURL=getNumberType.js.map","import { MIN_LENGTH_FOR_NSN, VALID_DIGITS, VALID_PUNCTUATION, PLUS_CHARS } from '../constants.js';\nimport createExtensionPattern from './extension/createExtensionPattern.js'; // Regular expression of viable phone numbers. This is location independent.\n// Checks we have at least three leading digits, and only valid punctuation,\n// alpha characters and digits in the phone number. Does not include extension\n// data. The symbol 'x' is allowed here as valid punctuation since it is often\n// used as a placeholder for carrier codes, for example in Brazilian phone\n// numbers. We also allow multiple '+' characters at the start.\n//\n// Corresponds to the following:\n// [digits]{minLengthNsn}|\n// plus_sign*\n// (([punctuation]|[star])*[digits]){3,}([punctuation]|[star]|[digits]|[alpha])*\n//\n// The first reg-ex is to allow short numbers (two digits long) to be parsed if\n// they are entered as \"15\" etc, but only if there is no punctuation in them.\n// The second expression restricts the number of digits to three or more, but\n// then allows them to be in international form, and to have alpha-characters\n// and punctuation. We split up the two reg-exes here and combine them when\n// creating the reg-ex VALID_PHONE_NUMBER_PATTERN itself so we can prefix it\n// with ^ and append $ to each branch.\n//\n// \"Note VALID_PUNCTUATION starts with a -,\n// so must be the first in the range\" (c) Google devs.\n// (wtf did they mean by saying that; probably nothing)\n//\n\nvar MIN_LENGTH_PHONE_NUMBER_PATTERN = '[' + VALID_DIGITS + ']{' + MIN_LENGTH_FOR_NSN + '}'; //\n// And this is the second reg-exp:\n// (see MIN_LENGTH_PHONE_NUMBER_PATTERN for a full description of this reg-exp)\n//\n\nexport var VALID_PHONE_NUMBER = '[' + PLUS_CHARS + ']{0,1}' + '(?:' + '[' + VALID_PUNCTUATION + ']*' + '[' + VALID_DIGITS + ']' + '){3,}' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']*'; // This regular expression isn't present in Google's `libphonenumber`\n// and is only used to determine whether the phone number being input\n// is too short for it to even consider it a \"valid\" number.\n// This is just a way to differentiate between a really invalid phone\n// number like \"abcde\" and a valid phone number that a user has just\n// started inputting, like \"+1\" or \"1\": both these cases would be\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\n// library can provide a more detailed error message — whether it's\n// really \"not a number\", or is it just a start of a valid phone number.\n\nvar VALID_PHONE_NUMBER_START_REG_EXP = new RegExp('^' + '[' + PLUS_CHARS + ']{0,1}' + '(?:' + '[' + VALID_PUNCTUATION + ']*' + '[' + VALID_DIGITS + ']' + '){1,2}' + '$', 'i');\nexport var VALID_PHONE_NUMBER_WITH_EXTENSION = VALID_PHONE_NUMBER + // Phone number extensions\n'(?:' + createExtensionPattern() + ')?'; // The combined regular expression for valid phone numbers:\n//\n\nvar VALID_PHONE_NUMBER_PATTERN = new RegExp( // Either a short two-digit-only phone number\n'^' + MIN_LENGTH_PHONE_NUMBER_PATTERN + '$' + '|' + // Or a longer fully parsed phone number (min 3 characters)\n'^' + VALID_PHONE_NUMBER_WITH_EXTENSION + '$', 'i'); // Checks to see if the string of characters could possibly be a phone number at\n// all. At the moment, checks to see that the string begins with at least 2\n// digits, ignoring any punctuation commonly found in phone numbers. This method\n// does not require the number to be normalized in advance - but does assume\n// that leading non-number symbols have been removed, such as by the method\n// `extract_possible_number`.\n//\n\nexport default function isViablePhoneNumber(number) {\n return number.length >= MIN_LENGTH_FOR_NSN && VALID_PHONE_NUMBER_PATTERN.test(number);\n} // This is just a way to differentiate between a really invalid phone\n// number like \"abcde\" and a valid phone number that a user has just\n// started inputting, like \"+1\" or \"1\": both these cases would be\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\n// library can provide a more detailed error message — whether it's\n// really \"not a number\", or is it just a start of a valid phone number.\n\nexport function isViablePhoneNumberStart(number) {\n return VALID_PHONE_NUMBER_START_REG_EXP.test(number);\n}\n//# sourceMappingURL=isViablePhoneNumber.js.map","/**\r\n * Checks whether the entire input sequence can be matched\r\n * against the regular expression.\r\n * @return {boolean}\r\n */\nexport default function matchesEntirely(text, regular_expression) {\n // If assigning the `''` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n text = text || '';\n return new RegExp('^(?:' + regular_expression + ')$').test(text);\n}\n//# sourceMappingURL=matchesEntirely.js.map","import Metadata from './metadata.js';\nimport checkNumberLength from './helpers/checkNumberLength.js';\nexport default function isPossiblePhoneNumber(input, options, metadata) {\n /* istanbul ignore if */\n if (options === undefined) {\n options = {};\n }\n\n metadata = new Metadata(metadata);\n\n if (options.v2) {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n\n metadata.selectNumberingPlan(input.countryCallingCode);\n } else {\n if (!input.phone) {\n return false;\n }\n\n if (input.country) {\n if (!metadata.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n\n metadata.country(input.country);\n } else {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n\n metadata.selectNumberingPlan(input.countryCallingCode);\n }\n } // Old metadata (< 1.0.18) had no \"possible length\" data.\n\n\n if (metadata.possibleLengths()) {\n return isPossibleNumber(input.phone || input.nationalNumber, metadata);\n } else {\n // There was a bug between `1.7.35` and `1.7.37` where \"possible_lengths\"\n // were missing for \"non-geographical\" numbering plans.\n // Just assume the number is possible in such cases:\n // it's unlikely that anyone generated their custom metadata\n // in that short period of time (one day).\n // This code can be removed in some future major version update.\n if (input.countryCallingCode && metadata.isNonGeographicCallingCode(input.countryCallingCode)) {\n // \"Non-geographic entities\" did't have `possibleLengths`\n // due to a bug in metadata generation process.\n return true;\n } else {\n throw new Error('Missing \"possibleLengths\" in metadata. Perhaps the metadata has been generated before v1.0.18.');\n }\n }\n}\nexport function isPossibleNumber(nationalNumber, metadata) {\n //, isInternational) {\n switch (checkNumberLength(nationalNumber, metadata)) {\n case 'IS_POSSIBLE':\n return true;\n // This library ignores \"local-only\" phone numbers (for simplicity).\n // See the readme for more info on what are \"local-only\" phone numbers.\n // case 'IS_POSSIBLE_LOCAL_ONLY':\n // \treturn !isInternational\n\n default:\n return false;\n }\n}\n//# sourceMappingURL=isPossibleNumber_.js.map","// Copy-pasted from:\n// https://github.com/substack/semver-compare/blob/master/index.js\n//\n// Inlining this function because some users reported issues with\n// importing from `semver-compare` in a browser with ES6 \"native\" modules.\n//\n// Fixes `semver-compare` not being able to compare versions with alpha/beta/etc \"tags\".\n// https://github.com/catamphetamine/libphonenumber-js/issues/381\nexport default function (a, b) {\n a = a.split('-');\n b = b.split('-');\n var pa = a[0].split('.');\n var pb = b[0].split('.');\n\n for (var i = 0; i < 3; i++) {\n var na = Number(pa[i]);\n var nb = Number(pb[i]);\n if (na > nb) return 1;\n if (nb > na) return -1;\n if (!isNaN(na) && isNaN(nb)) return 1;\n if (isNaN(na) && !isNaN(nb)) return -1;\n }\n\n if (a[1] && b[1]) {\n return a[1] > b[1] ? 1 : a[1] < b[1] ? -1 : 0;\n }\n\n return !a[1] && b[1] ? 1 : a[1] && !b[1] ? -1 : 0;\n}\n//# sourceMappingURL=semver-compare.js.map","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport compare from './tools/semver-compare.js'; // Added \"possibleLengths\" and renamed\n// \"country_phone_code_to_countries\" to \"country_calling_codes\".\n\nvar V2 = '1.0.18'; // Added \"idd_prefix\" and \"default_idd_prefix\".\n\nvar V3 = '1.2.0'; // Moved `001` country code to \"nonGeographic\" section of metadata.\n\nvar V4 = '1.7.35';\nvar DEFAULT_EXT_PREFIX = ' ext. ';\nvar CALLING_CODE_REG_EXP = /^\\d+$/;\n/**\r\n * See: https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md\r\n */\n\nvar Metadata = /*#__PURE__*/function () {\n function Metadata(metadata) {\n _classCallCheck(this, Metadata);\n\n validateMetadata(metadata);\n this.metadata = metadata;\n setVersion.call(this, metadata);\n }\n\n _createClass(Metadata, [{\n key: \"getCountries\",\n value: function getCountries() {\n return Object.keys(this.metadata.countries).filter(function (_) {\n return _ !== '001';\n });\n }\n }, {\n key: \"getCountryMetadata\",\n value: function getCountryMetadata(countryCode) {\n return this.metadata.countries[countryCode];\n }\n }, {\n key: \"nonGeographic\",\n value: function nonGeographic() {\n if (this.v1 || this.v2 || this.v3) return; // `nonGeographical` was a typo.\n // It's present in metadata generated from `1.7.35` to `1.7.37`.\n // The test case could be found by searching for \"nonGeographical\".\n\n return this.metadata.nonGeographic || this.metadata.nonGeographical;\n }\n }, {\n key: \"hasCountry\",\n value: function hasCountry(country) {\n return this.getCountryMetadata(country) !== undefined;\n }\n }, {\n key: \"hasCallingCode\",\n value: function hasCallingCode(callingCode) {\n if (this.getCountryCodesForCallingCode(callingCode)) {\n return true;\n }\n\n if (this.nonGeographic()) {\n if (this.nonGeographic()[callingCode]) {\n return true;\n }\n } else {\n // A hacky workaround for old custom metadata (generated before V4).\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n return true;\n }\n }\n }\n }, {\n key: \"isNonGeographicCallingCode\",\n value: function isNonGeographicCallingCode(callingCode) {\n if (this.nonGeographic()) {\n return this.nonGeographic()[callingCode] ? true : false;\n } else {\n return this.getCountryCodesForCallingCode(callingCode) ? false : true;\n }\n } // Deprecated.\n\n }, {\n key: \"country\",\n value: function country(countryCode) {\n return this.selectNumberingPlan(countryCode);\n }\n }, {\n key: \"selectNumberingPlan\",\n value: function selectNumberingPlan(countryCode, callingCode) {\n // Supports just passing `callingCode` as the first argument.\n if (countryCode && CALLING_CODE_REG_EXP.test(countryCode)) {\n callingCode = countryCode;\n countryCode = null;\n }\n\n if (countryCode && countryCode !== '001') {\n if (!this.hasCountry(countryCode)) {\n throw new Error(\"Unknown country: \".concat(countryCode));\n }\n\n this.numberingPlan = new NumberingPlan(this.getCountryMetadata(countryCode), this);\n } else if (callingCode) {\n if (!this.hasCallingCode(callingCode)) {\n throw new Error(\"Unknown calling code: \".concat(callingCode));\n }\n\n this.numberingPlan = new NumberingPlan(this.getNumberingPlanMetadata(callingCode), this);\n } else {\n this.numberingPlan = undefined;\n }\n\n return this;\n }\n }, {\n key: \"getCountryCodesForCallingCode\",\n value: function getCountryCodesForCallingCode(callingCode) {\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes) {\n // Metadata before V4 included \"non-geographic entity\" calling codes\n // inside `country_calling_codes` (for example, `\"881\":[\"001\"]`).\n // Now the semantics of `country_calling_codes` has changed:\n // it's specifically for \"countries\" now.\n // Older versions of custom metadata will simply skip parsing\n // \"non-geographic entity\" phone numbers with new versions\n // of this library: it's not considered a bug,\n // because such numbers are extremely rare,\n // and developers extremely rarely use custom metadata.\n if (countryCodes.length === 1 && countryCodes[0].length === 3) {\n return;\n }\n\n return countryCodes;\n }\n }\n }, {\n key: \"getCountryCodeForCallingCode\",\n value: function getCountryCodeForCallingCode(callingCode) {\n var countryCodes = this.getCountryCodesForCallingCode(callingCode);\n\n if (countryCodes) {\n return countryCodes[0];\n }\n }\n }, {\n key: \"getNumberingPlanMetadata\",\n value: function getNumberingPlanMetadata(callingCode) {\n var countryCode = this.getCountryCodeForCallingCode(callingCode);\n\n if (countryCode) {\n return this.getCountryMetadata(countryCode);\n }\n\n if (this.nonGeographic()) {\n var metadata = this.nonGeographic()[callingCode];\n\n if (metadata) {\n return metadata;\n }\n } else {\n // A hacky workaround for old custom metadata (generated before V4).\n // In that metadata, there was no concept of \"non-geographic\" metadata\n // so metadata for `001` country code was stored along with other countries.\n // The test case can be found by searching for:\n // \"should work around `nonGeographic` metadata not existing\".\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n return this.metadata.countries['001'];\n }\n }\n } // Deprecated.\n\n }, {\n key: \"countryCallingCode\",\n value: function countryCallingCode() {\n return this.numberingPlan.callingCode();\n } // Deprecated.\n\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n return this.numberingPlan.IDDPrefix();\n } // Deprecated.\n\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n return this.numberingPlan.defaultIDDPrefix();\n } // Deprecated.\n\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n return this.numberingPlan.nationalNumberPattern();\n } // Deprecated.\n\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n return this.numberingPlan.possibleLengths();\n } // Deprecated.\n\n }, {\n key: \"formats\",\n value: function formats() {\n return this.numberingPlan.formats();\n } // Deprecated.\n\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n return this.numberingPlan.nationalPrefixForParsing();\n } // Deprecated.\n\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.numberingPlan.nationalPrefixTransformRule();\n } // Deprecated.\n\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.numberingPlan.leadingDigits();\n } // Deprecated.\n\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n return this.numberingPlan.hasTypes();\n } // Deprecated.\n\n }, {\n key: \"type\",\n value: function type(_type) {\n return this.numberingPlan.type(_type);\n } // Deprecated.\n\n }, {\n key: \"ext\",\n value: function ext() {\n return this.numberingPlan.ext();\n }\n }, {\n key: \"countryCallingCodes\",\n value: function countryCallingCodes() {\n if (this.v1) return this.metadata.country_phone_code_to_countries;\n return this.metadata.country_calling_codes;\n } // Deprecated.\n\n }, {\n key: \"chooseCountryByCountryCallingCode\",\n value: function chooseCountryByCountryCallingCode(callingCode) {\n return this.selectNumberingPlan(callingCode);\n }\n }, {\n key: \"hasSelectedNumberingPlan\",\n value: function hasSelectedNumberingPlan() {\n return this.numberingPlan !== undefined;\n }\n }]);\n\n return Metadata;\n}();\n\nexport { Metadata as default };\n\nvar NumberingPlan = /*#__PURE__*/function () {\n function NumberingPlan(metadata, globalMetadataObject) {\n _classCallCheck(this, NumberingPlan);\n\n this.globalMetadataObject = globalMetadataObject;\n this.metadata = metadata;\n setVersion.call(this, globalMetadataObject.metadata);\n }\n\n _createClass(NumberingPlan, [{\n key: \"callingCode\",\n value: function callingCode() {\n return this.metadata[0];\n } // Formatting information for regions which share\n // a country calling code is contained by only one region\n // for performance reasons. For example, for NANPA region\n // (\"North American Numbering Plan Administration\",\n // which includes USA, Canada, Cayman Islands, Bahamas, etc)\n // it will be contained in the metadata for `US`.\n\n }, {\n key: \"getDefaultCountryMetadataForRegion\",\n value: function getDefaultCountryMetadataForRegion() {\n return this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode());\n } // Is always present.\n\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n if (this.v1 || this.v2) return;\n return this.metadata[1];\n } // Is only present when a country supports multiple IDD prefixes.\n\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n if (this.v1 || this.v2) return;\n return this.metadata[12];\n }\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n if (this.v1 || this.v2) return this.metadata[1];\n return this.metadata[2];\n } // \"possible length\" data is always present in Google's metadata.\n\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.v1) return;\n return this.metadata[this.v2 ? 2 : 3];\n }\n }, {\n key: \"_getFormats\",\n value: function _getFormats(metadata) {\n return metadata[this.v1 ? 2 : this.v2 ? 3 : 4];\n } // For countries of the same region (e.g. NANPA)\n // formats are all stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"formats\",\n value: function formats() {\n var _this = this;\n\n var formats = this._getFormats(this.metadata) || this._getFormats(this.getDefaultCountryMetadataForRegion()) || [];\n return formats.map(function (_) {\n return new Format(_, _this);\n });\n }\n }, {\n key: \"nationalPrefix\",\n value: function nationalPrefix() {\n return this.metadata[this.v1 ? 3 : this.v2 ? 4 : 5];\n }\n }, {\n key: \"_getNationalPrefixFormattingRule\",\n value: function _getNationalPrefixFormattingRule(metadata) {\n return metadata[this.v1 ? 4 : this.v2 ? 5 : 6];\n } // For countries of the same region (e.g. NANPA)\n // national prefix formatting rule is stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._getNationalPrefixFormattingRule(this.metadata) || this._getNationalPrefixFormattingRule(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"_nationalPrefixForParsing\",\n value: function _nationalPrefixForParsing() {\n return this.metadata[this.v1 ? 5 : this.v2 ? 6 : 7];\n }\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n // If `national_prefix_for_parsing` is not set explicitly,\n // then infer it from `national_prefix` (if any)\n return this._nationalPrefixForParsing() || this.nationalPrefix();\n }\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.metadata[this.v1 ? 6 : this.v2 ? 7 : 8];\n }\n }, {\n key: \"_getNationalPrefixIsOptionalWhenFormatting\",\n value: function _getNationalPrefixIsOptionalWhenFormatting() {\n return !!this.metadata[this.v1 ? 7 : this.v2 ? 8 : 9];\n } // For countries of the same region (e.g. NANPA)\n // \"national prefix is optional when formatting\" flag is\n // stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return this._getNationalPrefixIsOptionalWhenFormatting(this.metadata) || this._getNationalPrefixIsOptionalWhenFormatting(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.metadata[this.v1 ? 8 : this.v2 ? 9 : 10];\n }\n }, {\n key: \"types\",\n value: function types() {\n return this.metadata[this.v1 ? 9 : this.v2 ? 10 : 11];\n }\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n // Versions 1.2.0 - 1.2.4: can be `[]`.\n\n /* istanbul ignore next */\n if (this.types() && this.types().length === 0) {\n return false;\n } // Versions <= 1.2.4: can be `undefined`.\n // Version >= 1.2.5: can be `0`.\n\n\n return !!this.types();\n }\n }, {\n key: \"type\",\n value: function type(_type2) {\n if (this.hasTypes() && getType(this.types(), _type2)) {\n return new Type(getType(this.types(), _type2), this);\n }\n }\n }, {\n key: \"ext\",\n value: function ext() {\n if (this.v1 || this.v2) return DEFAULT_EXT_PREFIX;\n return this.metadata[13] || DEFAULT_EXT_PREFIX;\n }\n }]);\n\n return NumberingPlan;\n}();\n\nvar Format = /*#__PURE__*/function () {\n function Format(format, metadata) {\n _classCallCheck(this, Format);\n\n this._format = format;\n this.metadata = metadata;\n }\n\n _createClass(Format, [{\n key: \"pattern\",\n value: function pattern() {\n return this._format[0];\n }\n }, {\n key: \"format\",\n value: function format() {\n return this._format[1];\n }\n }, {\n key: \"leadingDigitsPatterns\",\n value: function leadingDigitsPatterns() {\n return this._format[2] || [];\n }\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._format[3] || this.metadata.nationalPrefixFormattingRule();\n }\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return !!this._format[4] || this.metadata.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n }\n }, {\n key: \"nationalPrefixIsMandatoryWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsMandatoryWhenFormattingInNationalFormat() {\n // National prefix is omitted if there's no national prefix formatting rule\n // set for this country, or when the national prefix formatting rule\n // contains no national prefix itself, or when this rule is set but\n // national prefix is optional for this phone number format\n // (and it is not enforced explicitly)\n return this.usesNationalPrefix() && !this.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n } // Checks whether national prefix formatting rule contains national prefix.\n\n }, {\n key: \"usesNationalPrefix\",\n value: function usesNationalPrefix() {\n return this.nationalPrefixFormattingRule() && // Check that national prefix formatting rule is not a \"dummy\" one.\n !FIRST_GROUP_ONLY_PREFIX_PATTERN.test(this.nationalPrefixFormattingRule()) // In compressed metadata, `this.nationalPrefixFormattingRule()` is `0`\n // when `national_prefix_formatting_rule` is not present.\n // So, `true` or `false` are returned explicitly here, so that\n // `0` number isn't returned.\n ? true : false;\n }\n }, {\n key: \"internationalFormat\",\n value: function internationalFormat() {\n return this._format[5] || this.format();\n }\n }]);\n\n return Format;\n}();\n/**\r\n * A pattern that is used to determine if the national prefix formatting rule\r\n * has the first group only, i.e., does not start with the national prefix.\r\n * Note that the pattern explicitly allows for unbalanced parentheses.\r\n */\n\n\nvar FIRST_GROUP_ONLY_PREFIX_PATTERN = /^\\(?\\$1\\)?$/;\n\nvar Type = /*#__PURE__*/function () {\n function Type(type, metadata) {\n _classCallCheck(this, Type);\n\n this.type = type;\n this.metadata = metadata;\n }\n\n _createClass(Type, [{\n key: \"pattern\",\n value: function pattern() {\n if (this.metadata.v1) return this.type;\n return this.type[0];\n }\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.metadata.v1) return;\n return this.type[1] || this.metadata.possibleLengths();\n }\n }]);\n\n return Type;\n}();\n\nfunction getType(types, type) {\n switch (type) {\n case 'FIXED_LINE':\n return types[0];\n\n case 'MOBILE':\n return types[1];\n\n case 'TOLL_FREE':\n return types[2];\n\n case 'PREMIUM_RATE':\n return types[3];\n\n case 'PERSONAL_NUMBER':\n return types[4];\n\n case 'VOICEMAIL':\n return types[5];\n\n case 'UAN':\n return types[6];\n\n case 'PAGER':\n return types[7];\n\n case 'VOIP':\n return types[8];\n\n case 'SHARED_COST':\n return types[9];\n }\n}\n\nexport function validateMetadata(metadata) {\n if (!metadata) {\n throw new Error('[libphonenumber-js] `metadata` argument not passed. Check your arguments.');\n } // `country_phone_code_to_countries` was renamed to\n // `country_calling_codes` in `1.0.18`.\n\n\n if (!is_object(metadata) || !is_object(metadata.countries)) {\n throw new Error(\"[libphonenumber-js] `metadata` argument was passed but it's not a valid metadata. Must be an object having `.countries` child object property. Got \".concat(is_object(metadata) ? 'an object of shape: { ' + Object.keys(metadata).join(', ') + ' }' : 'a ' + type_of(metadata) + ': ' + metadata, \".\"));\n }\n} // Babel transforms `typeof` into some \"branches\"\n// so istanbul will show this as \"branch not covered\".\n\n/* istanbul ignore next */\n\nvar is_object = function is_object(_) {\n return _typeof(_) === 'object';\n}; // Babel transforms `typeof` into some \"branches\"\n// so istanbul will show this as \"branch not covered\".\n\n/* istanbul ignore next */\n\n\nvar type_of = function type_of(_) {\n return _typeof(_);\n};\n/**\r\n * Returns extension prefix for a country.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string?}\r\n * @example\r\n * // Returns \" ext. \"\r\n * getExtPrefix(\"US\")\r\n */\n\n\nexport function getExtPrefix(country, metadata) {\n metadata = new Metadata(metadata);\n\n if (metadata.hasCountry(country)) {\n return metadata.country(country).ext();\n }\n\n return DEFAULT_EXT_PREFIX;\n}\n/**\r\n * Returns \"country calling code\" for a country.\r\n * Throws an error if the country doesn't exist or isn't supported by this library.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string}\r\n * @example\r\n * // Returns \"44\"\r\n * getCountryCallingCode(\"GB\")\r\n */\n\nexport function getCountryCallingCode(country, metadata) {\n metadata = new Metadata(metadata);\n\n if (metadata.hasCountry(country)) {\n return metadata.country(country).countryCallingCode();\n }\n\n throw new Error(\"Unknown country: \".concat(country));\n}\nexport function isSupportedCountry(country, metadata) {\n // metadata = new Metadata(metadata)\n // return metadata.hasCountry(country)\n return metadata.countries[country] !== undefined;\n}\n\nfunction setVersion(metadata) {\n var version = metadata.version;\n\n if (typeof version === 'number') {\n this.v1 = version === 1;\n this.v2 = version === 2;\n this.v3 = version === 3;\n this.v4 = version === 4;\n } else {\n if (!version) {\n this.v1 = true;\n } else if (compare(version, V3) === -1) {\n this.v2 = true;\n } else if (compare(version, V4) === -1) {\n this.v3 = true;\n } else {\n this.v4 = true;\n }\n }\n} // const ISO_COUNTRY_CODE = /^[A-Z]{2}$/\n// function isCountryCode(countryCode) {\n// \treturn ISO_COUNTRY_CODE.test(countryCodeOrCountryCallingCode)\n// }\n//# sourceMappingURL=metadata.js.map","// This file is a workaround for a bug in web browsers' \"native\"\n// ES6 importing system which is uncapable of importing \"*.json\" files.\n// https://github.com/catamphetamine/libphonenumber-js/issues/239\nexport default {\"AC\":\"40123\",\"AD\":\"312345\",\"AE\":\"501234567\",\"AF\":\"701234567\",\"AG\":\"2684641234\",\"AI\":\"2642351234\",\"AL\":\"672123456\",\"AM\":\"77123456\",\"AO\":\"923123456\",\"AR\":\"91123456789\",\"AS\":\"6847331234\",\"AT\":\"664123456\",\"AU\":\"412345678\",\"AW\":\"5601234\",\"AX\":\"412345678\",\"AZ\":\"401234567\",\"BA\":\"61123456\",\"BB\":\"2462501234\",\"BD\":\"1812345678\",\"BE\":\"470123456\",\"BF\":\"70123456\",\"BG\":\"43012345\",\"BH\":\"36001234\",\"BI\":\"79561234\",\"BJ\":\"90011234\",\"BL\":\"690001234\",\"BM\":\"4413701234\",\"BN\":\"7123456\",\"BO\":\"71234567\",\"BQ\":\"3181234\",\"BR\":\"11961234567\",\"BS\":\"2423591234\",\"BT\":\"17123456\",\"BW\":\"71123456\",\"BY\":\"294911911\",\"BZ\":\"6221234\",\"CA\":\"5062345678\",\"CC\":\"412345678\",\"CD\":\"991234567\",\"CF\":\"70012345\",\"CG\":\"061234567\",\"CH\":\"781234567\",\"CI\":\"0123456789\",\"CK\":\"71234\",\"CL\":\"221234567\",\"CM\":\"671234567\",\"CN\":\"13123456789\",\"CO\":\"3211234567\",\"CR\":\"83123456\",\"CU\":\"51234567\",\"CV\":\"9911234\",\"CW\":\"95181234\",\"CX\":\"412345678\",\"CY\":\"96123456\",\"CZ\":\"601123456\",\"DE\":\"15123456789\",\"DJ\":\"77831001\",\"DK\":\"32123456\",\"DM\":\"7672251234\",\"DO\":\"8092345678\",\"DZ\":\"551234567\",\"EC\":\"991234567\",\"EE\":\"51234567\",\"EG\":\"1001234567\",\"EH\":\"650123456\",\"ER\":\"7123456\",\"ES\":\"612345678\",\"ET\":\"911234567\",\"FI\":\"412345678\",\"FJ\":\"7012345\",\"FK\":\"51234\",\"FM\":\"3501234\",\"FO\":\"211234\",\"FR\":\"612345678\",\"GA\":\"06031234\",\"GB\":\"7400123456\",\"GD\":\"4734031234\",\"GE\":\"555123456\",\"GF\":\"694201234\",\"GG\":\"7781123456\",\"GH\":\"231234567\",\"GI\":\"57123456\",\"GL\":\"221234\",\"GM\":\"3012345\",\"GN\":\"601123456\",\"GP\":\"690001234\",\"GQ\":\"222123456\",\"GR\":\"6912345678\",\"GT\":\"51234567\",\"GU\":\"6713001234\",\"GW\":\"955012345\",\"GY\":\"6091234\",\"HK\":\"51234567\",\"HN\":\"91234567\",\"HR\":\"921234567\",\"HT\":\"34101234\",\"HU\":\"201234567\",\"ID\":\"812345678\",\"IE\":\"850123456\",\"IL\":\"502345678\",\"IM\":\"7924123456\",\"IN\":\"8123456789\",\"IO\":\"3801234\",\"IQ\":\"7912345678\",\"IR\":\"9123456789\",\"IS\":\"6111234\",\"IT\":\"3123456789\",\"JE\":\"7797712345\",\"JM\":\"8762101234\",\"JO\":\"790123456\",\"JP\":\"9012345678\",\"KE\":\"712123456\",\"KG\":\"700123456\",\"KH\":\"91234567\",\"KI\":\"72001234\",\"KM\":\"3212345\",\"KN\":\"8697652917\",\"KP\":\"1921234567\",\"KR\":\"1020000000\",\"KW\":\"50012345\",\"KY\":\"3453231234\",\"KZ\":\"7710009998\",\"LA\":\"2023123456\",\"LB\":\"71123456\",\"LC\":\"7582845678\",\"LI\":\"660234567\",\"LK\":\"712345678\",\"LR\":\"770123456\",\"LS\":\"50123456\",\"LT\":\"61234567\",\"LU\":\"628123456\",\"LV\":\"21234567\",\"LY\":\"912345678\",\"MA\":\"650123456\",\"MC\":\"612345678\",\"MD\":\"62112345\",\"ME\":\"67622901\",\"MF\":\"690001234\",\"MG\":\"321234567\",\"MH\":\"2351234\",\"MK\":\"72345678\",\"ML\":\"65012345\",\"MM\":\"92123456\",\"MN\":\"88123456\",\"MO\":\"66123456\",\"MP\":\"6702345678\",\"MQ\":\"696201234\",\"MR\":\"22123456\",\"MS\":\"6644923456\",\"MT\":\"96961234\",\"MU\":\"52512345\",\"MV\":\"7712345\",\"MW\":\"991234567\",\"MX\":\"12221234567\",\"MY\":\"123456789\",\"MZ\":\"821234567\",\"NA\":\"811234567\",\"NC\":\"751234\",\"NE\":\"93123456\",\"NF\":\"381234\",\"NG\":\"8021234567\",\"NI\":\"81234567\",\"NL\":\"612345678\",\"NO\":\"40612345\",\"NP\":\"9841234567\",\"NR\":\"5551234\",\"NU\":\"8884012\",\"NZ\":\"211234567\",\"OM\":\"92123456\",\"PA\":\"61234567\",\"PE\":\"912345678\",\"PF\":\"87123456\",\"PG\":\"70123456\",\"PH\":\"9051234567\",\"PK\":\"3012345678\",\"PL\":\"512345678\",\"PM\":\"551234\",\"PR\":\"7872345678\",\"PS\":\"599123456\",\"PT\":\"912345678\",\"PW\":\"6201234\",\"PY\":\"961456789\",\"QA\":\"33123456\",\"RE\":\"692123456\",\"RO\":\"712034567\",\"RS\":\"601234567\",\"RU\":\"9123456789\",\"RW\":\"720123456\",\"SA\":\"512345678\",\"SB\":\"7421234\",\"SC\":\"2510123\",\"SD\":\"911231234\",\"SE\":\"701234567\",\"SG\":\"81234567\",\"SH\":\"51234\",\"SI\":\"31234567\",\"SJ\":\"41234567\",\"SK\":\"912123456\",\"SL\":\"25123456\",\"SM\":\"66661212\",\"SN\":\"701234567\",\"SO\":\"71123456\",\"SR\":\"7412345\",\"SS\":\"977123456\",\"ST\":\"9812345\",\"SV\":\"70123456\",\"SX\":\"7215205678\",\"SY\":\"944567890\",\"SZ\":\"76123456\",\"TA\":\"8999\",\"TC\":\"6492311234\",\"TD\":\"63012345\",\"TG\":\"90112345\",\"TH\":\"812345678\",\"TJ\":\"917123456\",\"TK\":\"7290\",\"TL\":\"77212345\",\"TM\":\"66123456\",\"TN\":\"20123456\",\"TO\":\"7715123\",\"TR\":\"5012345678\",\"TT\":\"8682911234\",\"TV\":\"901234\",\"TW\":\"912345678\",\"TZ\":\"621234567\",\"UA\":\"501234567\",\"UG\":\"712345678\",\"US\":\"2015550123\",\"UY\":\"94231234\",\"UZ\":\"912345678\",\"VA\":\"3123456789\",\"VC\":\"7844301234\",\"VE\":\"4121234567\",\"VG\":\"2843001234\",\"VI\":\"3406421234\",\"VN\":\"912345678\",\"VU\":\"5912345\",\"WF\":\"821234\",\"WS\":\"7212345\",\"XK\":\"43201234\",\"YE\":\"712345678\",\"YT\":\"639012345\",\"ZA\":\"711234567\",\"ZM\":\"955123456\",\"ZW\":\"712345678\"}","import PhoneNumber from './PhoneNumber.js';\nexport default function getExampleNumber(country, examples, metadata) {\n if (examples[country]) {\n return new PhoneNumber(country, examples[country], metadata);\n }\n}\n//# sourceMappingURL=getExampleNumber.js.map","import withMetadataArgument from './withMetadataArgument.js'\r\nimport { getExampleNumber as _getExampleNumber } from '../../core/index.js'\r\n\r\nexport function getExampleNumber() {\r\n\treturn withMetadataArgument(_getExampleNumber, arguments)\r\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n// https://stackoverflow.com/a/46971044/970769\n// \"Breaking changes in Typescript 2.1\"\n// \"Extending built-ins like Error, Array, and Map may no longer work.\"\n// \"As a recommendation, you can manually adjust the prototype immediately after any super(...) calls.\"\n// https://github.com/Microsoft/TypeScript-wiki/blob/main/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\nvar ParseError = /*#__PURE__*/function (_Error) {\n _inherits(ParseError, _Error);\n\n var _super = _createSuper(ParseError);\n\n function ParseError(code) {\n var _this;\n\n _classCallCheck(this, ParseError);\n\n _this = _super.call(this, code); // Set the prototype explicitly.\n // Any subclass of FooError will have to manually set the prototype as well.\n\n Object.setPrototypeOf(_assertThisInitialized(_this), ParseError.prototype);\n _this.name = _this.constructor.name;\n return _this;\n }\n\n return _createClass(ParseError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nexport { ParseError as default };\n//# sourceMappingURL=ParseError.js.map","import createExtensionPattern from './createExtensionPattern.js'; // Regexp of all known extension prefixes used by different regions followed by\n// 1 or more valid digits, for use when parsing.\n\nvar EXTN_PATTERN = new RegExp('(?:' + createExtensionPattern() + ')$', 'i'); // Strips any extension (as in, the part of the number dialled after the call is\n// connected, usually indicated with extn, ext, x or similar) from the end of\n// the number, and returns it.\n\nexport default function extractExtension(number) {\n var start = number.search(EXTN_PATTERN);\n\n if (start < 0) {\n return {};\n } // If we find a potential extension, and the number preceding this is a viable\n // number, we assume it is an extension.\n\n\n var numberWithoutExtension = number.slice(0, start);\n var matches = number.match(EXTN_PATTERN);\n var i = 1;\n\n while (i < matches.length) {\n if (matches[i]) {\n return {\n number: numberWithoutExtension,\n ext: matches[i]\n };\n }\n\n i++;\n }\n}\n//# sourceMappingURL=extractExtension.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n// These mappings map a character (key) to a specific digit that should\n// replace it for normalization purposes. Non-European digits that\n// may be used in phone numbers are mapped to a European equivalent.\n//\n// E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n//\nexport var DIGITS = {\n '0': '0',\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n \"\\uFF10\": '0',\n // Fullwidth digit 0\n \"\\uFF11\": '1',\n // Fullwidth digit 1\n \"\\uFF12\": '2',\n // Fullwidth digit 2\n \"\\uFF13\": '3',\n // Fullwidth digit 3\n \"\\uFF14\": '4',\n // Fullwidth digit 4\n \"\\uFF15\": '5',\n // Fullwidth digit 5\n \"\\uFF16\": '6',\n // Fullwidth digit 6\n \"\\uFF17\": '7',\n // Fullwidth digit 7\n \"\\uFF18\": '8',\n // Fullwidth digit 8\n \"\\uFF19\": '9',\n // Fullwidth digit 9\n \"\\u0660\": '0',\n // Arabic-indic digit 0\n \"\\u0661\": '1',\n // Arabic-indic digit 1\n \"\\u0662\": '2',\n // Arabic-indic digit 2\n \"\\u0663\": '3',\n // Arabic-indic digit 3\n \"\\u0664\": '4',\n // Arabic-indic digit 4\n \"\\u0665\": '5',\n // Arabic-indic digit 5\n \"\\u0666\": '6',\n // Arabic-indic digit 6\n \"\\u0667\": '7',\n // Arabic-indic digit 7\n \"\\u0668\": '8',\n // Arabic-indic digit 8\n \"\\u0669\": '9',\n // Arabic-indic digit 9\n \"\\u06F0\": '0',\n // Eastern-Arabic digit 0\n \"\\u06F1\": '1',\n // Eastern-Arabic digit 1\n \"\\u06F2\": '2',\n // Eastern-Arabic digit 2\n \"\\u06F3\": '3',\n // Eastern-Arabic digit 3\n \"\\u06F4\": '4',\n // Eastern-Arabic digit 4\n \"\\u06F5\": '5',\n // Eastern-Arabic digit 5\n \"\\u06F6\": '6',\n // Eastern-Arabic digit 6\n \"\\u06F7\": '7',\n // Eastern-Arabic digit 7\n \"\\u06F8\": '8',\n // Eastern-Arabic digit 8\n \"\\u06F9\": '9' // Eastern-Arabic digit 9\n\n};\nexport function parseDigit(character) {\n return DIGITS[character];\n}\n/**\r\n * Parses phone number digits from a string.\r\n * Drops all punctuation leaving only digits.\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * parseDigits('8 (800) 555')\r\n * // Outputs '8800555'.\r\n * ```\r\n */\n\nexport default function parseDigits(string) {\n var result = ''; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n\n for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n var digit = parseDigit(character);\n\n if (digit) {\n result += digit;\n }\n }\n\n return result;\n}\n//# sourceMappingURL=parseDigits.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { parseDigit } from './helpers/parseDigits.js';\n/**\r\n * Parses phone number characters from a string.\r\n * Drops all punctuation leaving only digits and the leading `+` sign (if any).\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * // Outputs '8800555'.\r\n * parseIncompletePhoneNumber('8 (800) 555')\r\n * // Outputs '+7800555'.\r\n * parseIncompletePhoneNumber('+7 800 555')\r\n * ```\r\n */\n\nexport default function parseIncompletePhoneNumber(string) {\n var result = ''; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n\n for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n result += parsePhoneNumberCharacter(character, result) || '';\n }\n\n return result;\n}\n/**\r\n * Parses next character while parsing phone number digits (including a `+`)\r\n * from text: discards everything except `+` and digits, and `+` is only allowed\r\n * at the start of a phone number.\r\n * For example, is used in `react-phone-number-input` where it uses\r\n * [`input-format`](https://gitlab.com/catamphetamine/input-format).\r\n * @param {string} character - Yet another character from raw input string.\r\n * @param {string?} prevParsedCharacters - Previous parsed characters.\r\n * @param {object} meta - Optional custom use-case-specific metadata.\r\n * @return {string?} The parsed character.\r\n */\n\nexport function parsePhoneNumberCharacter(character, prevParsedCharacters) {\n // Only allow a leading `+`.\n if (character === '+') {\n // If this `+` is not the first parsed character\n // then discard it.\n if (prevParsedCharacters) {\n return;\n }\n\n return '+';\n } // Allow digits.\n\n\n return parseDigit(character);\n}\n//# sourceMappingURL=parseIncompletePhoneNumber.js.map","import Metadata from '../metadata.js';\nimport { VALID_DIGITS } from '../constants.js';\nvar CAPTURING_DIGIT_PATTERN = new RegExp('([' + VALID_DIGITS + '])');\nexport default function stripIddPrefix(number, country, callingCode, metadata) {\n if (!country) {\n return;\n } // Check if the number is IDD-prefixed.\n\n\n var countryMetadata = new Metadata(metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n var IDDPrefixPattern = new RegExp(countryMetadata.IDDPrefix());\n\n if (number.search(IDDPrefixPattern) !== 0) {\n return;\n } // Strip IDD prefix.\n\n\n number = number.slice(number.match(IDDPrefixPattern)[0].length); // If there're any digits after an IDD prefix,\n // then those digits are a country calling code.\n // Since no country code starts with a `0`,\n // the code below validates that the next digit (if present) is not `0`.\n\n var matchedGroups = number.match(CAPTURING_DIGIT_PATTERN);\n\n if (matchedGroups && matchedGroups[1] != null && matchedGroups[1].length > 0) {\n if (matchedGroups[1] === '0') {\n return;\n }\n }\n\n return number;\n}\n//# sourceMappingURL=stripIddPrefix.js.map","import extractNationalNumberFromPossiblyIncompleteNumber from './extractNationalNumberFromPossiblyIncompleteNumber.js';\nimport matchesEntirely from './matchesEntirely.js';\nimport checkNumberLength from './checkNumberLength.js';\n/**\r\n * Strips national prefix and carrier code from a complete phone number.\r\n * The difference from the non-\"FromCompleteNumber\" function is that\r\n * it won't extract national prefix if the resultant number is too short\r\n * to be a complete number for the selected phone numbering plan.\r\n * @param {string} number — Complete phone number digits.\r\n * @param {Metadata} metadata — Metadata with a phone numbering plan selected.\r\n * @return {object} `{ nationalNumber: string, carrierCode: string? }`.\r\n */\n\nexport default function extractNationalNumber(number, metadata) {\n // Parsing national prefixes and carrier codes\n // is only required for local phone numbers\n // but some people don't understand that\n // and sometimes write international phone numbers\n // with national prefixes (or maybe even carrier codes).\n // http://ucken.blogspot.ru/2016/03/trunk-prefixes-in-skype4b.html\n // Google's original library forgives such mistakes\n // and so does this library, because it has been requested:\n // https://github.com/catamphetamine/libphonenumber-js/issues/127\n var _extractNationalNumbe = extractNationalNumberFromPossiblyIncompleteNumber(number, metadata),\n carrierCode = _extractNationalNumbe.carrierCode,\n nationalNumber = _extractNationalNumbe.nationalNumber;\n\n if (nationalNumber !== number) {\n if (!shouldHaveExtractedNationalPrefix(number, nationalNumber, metadata)) {\n // Don't strip the national prefix.\n return {\n nationalNumber: number\n };\n } // Check the national (significant) number length after extracting national prefix and carrier code.\n // Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature.\n\n\n if (metadata.possibleLengths()) {\n // The number remaining after stripping the national prefix and carrier code\n // should be long enough to have a possible length for the country.\n // Otherwise, don't strip the national prefix and carrier code,\n // since the original number could be a valid number.\n // This check has been copy-pasted \"as is\" from Google's original library:\n // https://github.com/google/libphonenumber/blob/876268eb1ad6cdc1b7b5bef17fc5e43052702d57/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L3236-L3250\n // It doesn't check for the \"possibility\" of the original `number`.\n // I guess it's fine not checking that one. It works as is anyway.\n if (!isPossibleIncompleteNationalNumber(nationalNumber, metadata)) {\n // Don't strip the national prefix.\n return {\n nationalNumber: number\n };\n }\n }\n }\n\n return {\n nationalNumber: nationalNumber,\n carrierCode: carrierCode\n };\n} // In some countries, the same digit could be a national prefix\n// or a leading digit of a valid phone number.\n// For example, in Russia, national prefix is `8`,\n// and also `800 555 35 35` is a valid number\n// in which `8` is not a national prefix, but the first digit\n// of a national (significant) number.\n// Same's with Belarus:\n// `82004910060` is a valid national (significant) number,\n// but `2004910060` is not.\n// To support such cases (to prevent the code from always stripping\n// national prefix), a condition is imposed: a national prefix\n// is not extracted when the original number is \"viable\" and the\n// resultant number is not, a \"viable\" national number being the one\n// that matches `national_number_pattern`.\n\nfunction shouldHaveExtractedNationalPrefix(nationalNumberBefore, nationalNumberAfter, metadata) {\n // The equivalent in Google's code is:\n // https://github.com/google/libphonenumber/blob/e326fa1fc4283bb05eb35cb3c15c18f98a31af33/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L2969-L3004\n if (matchesEntirely(nationalNumberBefore, metadata.nationalNumberPattern()) && !matchesEntirely(nationalNumberAfter, metadata.nationalNumberPattern())) {\n return false;\n } // This \"is possible\" national number (length) check has been commented out\n // because it's superceded by the (effectively) same check done in the\n // `extractNationalNumber()` function after it calls `shouldHaveExtractedNationalPrefix()`.\n // In other words, why run the same check twice if it could only be run once.\n // // Check the national (significant) number length after extracting national prefix and carrier code.\n // // Fixes a minor \"weird behavior\" bug: https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/57\n // // (Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature).\n // if (metadata.possibleLengths()) {\n // \tif (isPossibleIncompleteNationalNumber(nationalNumberBefore, metadata) &&\n // \t\t!isPossibleIncompleteNationalNumber(nationalNumberAfter, metadata)) {\n // \t\treturn false\n // \t}\n // }\n\n\n return true;\n}\n\nfunction isPossibleIncompleteNationalNumber(nationalNumber, metadata) {\n switch (checkNumberLength(nationalNumber, metadata)) {\n case 'TOO_SHORT':\n case 'INVALID_LENGTH':\n // This library ignores \"local-only\" phone numbers (for simplicity).\n // See the readme for more info on what are \"local-only\" phone numbers.\n // case 'IS_POSSIBLE_LOCAL_ONLY':\n return false;\n\n default:\n return true;\n }\n}\n//# sourceMappingURL=extractNationalNumber.js.map","/**\r\n * Strips any national prefix (such as 0, 1) present in a\r\n * (possibly incomplete) number provided.\r\n * \"Carrier codes\" are only used in Colombia and Brazil,\r\n * and only when dialing within those countries from a mobile phone to a fixed line number.\r\n * Sometimes it won't actually strip national prefix\r\n * and will instead prepend some digits to the `number`:\r\n * for example, when number `2345678` is passed with `VI` country selected,\r\n * it will return `{ number: \"3402345678\" }`, because `340` area code is prepended.\r\n * @param {string} number — National number digits.\r\n * @param {object} metadata — Metadata with country selected.\r\n * @return {object} `{ nationalNumber: string, nationalPrefix: string? carrierCode: string? }`. Even if a national prefix was extracted, it's not necessarily present in the returned object, so don't rely on its presence in the returned object in order to find out whether a national prefix has been extracted or not.\r\n */\nexport default function extractNationalNumberFromPossiblyIncompleteNumber(number, metadata) {\n if (number && metadata.numberingPlan.nationalPrefixForParsing()) {\n // See METADATA.md for the description of\n // `national_prefix_for_parsing` and `national_prefix_transform_rule`.\n // Attempt to parse the first digits as a national prefix.\n var prefixPattern = new RegExp('^(?:' + metadata.numberingPlan.nationalPrefixForParsing() + ')');\n var prefixMatch = prefixPattern.exec(number);\n\n if (prefixMatch) {\n var nationalNumber;\n var carrierCode; // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n // If a `national_prefix_for_parsing` has any \"capturing groups\"\n // then it means that the national (significant) number is equal to\n // those \"capturing groups\" transformed via `national_prefix_transform_rule`,\n // and nothing could be said about the actual national prefix:\n // what is it and was it even there.\n // If a `national_prefix_for_parsing` doesn't have any \"capturing groups\",\n // then everything it matches is a national prefix.\n // To determine whether `national_prefix_for_parsing` matched any\n // \"capturing groups\", the value of the result of calling `.exec()`\n // is looked at, and if it has non-undefined values where there're\n // \"capturing groups\" in the regular expression, then it means\n // that \"capturing groups\" have been matched.\n // It's not possible to tell whether there'll be any \"capturing gropus\"\n // before the matching process, because a `national_prefix_for_parsing`\n // could exhibit both behaviors.\n\n var capturedGroupsCount = prefixMatch.length - 1;\n var hasCapturedGroups = capturedGroupsCount > 0 && prefixMatch[capturedGroupsCount];\n\n if (metadata.nationalPrefixTransformRule() && hasCapturedGroups) {\n nationalNumber = number.replace(prefixPattern, metadata.nationalPrefixTransformRule()); // If there's more than one captured group,\n // then carrier code is the second one.\n\n if (capturedGroupsCount > 1) {\n carrierCode = prefixMatch[1];\n }\n } // If there're no \"capturing groups\",\n // or if there're \"capturing groups\" but no\n // `national_prefix_transform_rule`,\n // then just strip the national prefix from the number,\n // and possibly a carrier code.\n // Seems like there could be more.\n else {\n // `prefixBeforeNationalNumber` is the whole substring matched by\n // the `national_prefix_for_parsing` regular expression.\n // There seem to be no guarantees that it's just a national prefix.\n // For example, if there's a carrier code, it's gonna be a\n // part of `prefixBeforeNationalNumber` too.\n var prefixBeforeNationalNumber = prefixMatch[0];\n nationalNumber = number.slice(prefixBeforeNationalNumber.length); // If there's at least one captured group,\n // then carrier code is the first one.\n\n if (hasCapturedGroups) {\n carrierCode = prefixMatch[1];\n }\n } // Tries to guess whether a national prefix was present in the input.\n // This is not something copy-pasted from Google's library:\n // they don't seem to have an equivalent for that.\n // So this isn't an \"officially approved\" way of doing something like that.\n // But since there seems no other existing method, this library uses it.\n\n\n var nationalPrefix;\n\n if (hasCapturedGroups) {\n var possiblePositionOfTheFirstCapturedGroup = number.indexOf(prefixMatch[1]);\n var possibleNationalPrefix = number.slice(0, possiblePositionOfTheFirstCapturedGroup); // Example: an Argentinian (AR) phone number `0111523456789`.\n // `prefixMatch[0]` is `01115`, and `$1` is `11`,\n // and the rest of the phone number is `23456789`.\n // The national number is transformed via `9$1` to `91123456789`.\n // National prefix `0` is detected being present at the start.\n // if (possibleNationalPrefix.indexOf(metadata.numberingPlan.nationalPrefix()) === 0) {\n\n if (possibleNationalPrefix === metadata.numberingPlan.nationalPrefix()) {\n nationalPrefix = metadata.numberingPlan.nationalPrefix();\n }\n } else {\n nationalPrefix = prefixMatch[0];\n }\n\n return {\n nationalNumber: nationalNumber,\n nationalPrefix: nationalPrefix,\n carrierCode: carrierCode\n };\n }\n }\n\n return {\n nationalNumber: number\n };\n}\n//# sourceMappingURL=extractNationalNumberFromPossiblyIncompleteNumber.js.map","import stripIddPrefix from './stripIddPrefix.js';\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js';\nimport Metadata from '../metadata.js';\nimport { MAX_LENGTH_COUNTRY_CODE } from '../constants.js';\n/**\r\n * Converts a phone number digits (possibly with a `+`)\r\n * into a calling code and the rest phone number digits.\r\n * The \"rest phone number digits\" could include\r\n * a national prefix, carrier code, and national\r\n * (significant) number.\r\n * @param {string} number — Phone number digits (possibly with a `+`).\r\n * @param {string} [country] — Default country.\r\n * @param {string} [callingCode] — Default calling code (some phone numbering plans are non-geographic).\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCode: string?, number: string }`\r\n * @example\r\n * // Returns `{ countryCallingCode: \"1\", number: \"2133734253\" }`.\r\n * extractCountryCallingCode('2133734253', 'US', null, metadata)\r\n * extractCountryCallingCode('2133734253', null, '1', metadata)\r\n * extractCountryCallingCode('+12133734253', null, null, metadata)\r\n * extractCountryCallingCode('+12133734253', 'RU', null, metadata)\r\n */\n\nexport default function extractCountryCallingCode(number, country, callingCode, metadata) {\n if (!number) {\n return {};\n } // If this is not an international phone number,\n // then either extract an \"IDD\" prefix, or extract a\n // country calling code from a number by autocorrecting it\n // by prepending a leading `+` in cases when it starts\n // with the country calling code.\n // https://wikitravel.org/en/International_dialling_prefix\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n\n\n if (number[0] !== '+') {\n // Convert an \"out-of-country\" dialing phone number\n // to a proper international phone number.\n var numberWithoutIDD = stripIddPrefix(number, country, callingCode, metadata); // If an IDD prefix was stripped then\n // convert the number to international one\n // for subsequent parsing.\n\n if (numberWithoutIDD && numberWithoutIDD !== number) {\n number = '+' + numberWithoutIDD;\n } else {\n // Check to see if the number starts with the country calling code\n // for the default country. If so, we remove the country calling code,\n // and do some checks on the validity of the number before and after.\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n if (country || callingCode) {\n var _extractCountryCallin = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata),\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n shorterNumber = _extractCountryCallin.number;\n\n if (countryCallingCode) {\n return {\n countryCallingCode: countryCallingCode,\n number: shorterNumber\n };\n }\n }\n\n return {\n number: number\n };\n }\n } // Fast abortion: country codes do not begin with a '0'\n\n\n if (number[1] === '0') {\n return {};\n }\n\n metadata = new Metadata(metadata); // The thing with country phone codes\n // is that they are orthogonal to each other\n // i.e. there's no such country phone code A\n // for which country phone code B exists\n // where B starts with A.\n // Therefore, while scanning digits,\n // if a valid country code is found,\n // that means that it is the country code.\n //\n\n var i = 2;\n\n while (i - 1 <= MAX_LENGTH_COUNTRY_CODE && i <= number.length) {\n var _countryCallingCode = number.slice(1, i);\n\n if (metadata.hasCallingCode(_countryCallingCode)) {\n metadata.selectNumberingPlan(_countryCallingCode);\n return {\n countryCallingCode: _countryCallingCode,\n number: number.slice(i)\n };\n }\n\n i++;\n }\n\n return {};\n}\n//# sourceMappingURL=extractCountryCallingCode.js.map","import Metadata from '../metadata.js';\nimport matchesEntirely from './matchesEntirely.js';\nimport extractNationalNumber from './extractNationalNumber.js';\nimport checkNumberLength from './checkNumberLength.js';\nimport getCountryCallingCode from '../getCountryCallingCode.js';\n/**\r\n * Sometimes some people incorrectly input international phone numbers\r\n * without the leading `+`. This function corrects such input.\r\n * @param {string} number — Phone number digits.\r\n * @param {string?} country\r\n * @param {string?} callingCode\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCode: string?, number: string }`.\r\n */\n\nexport default function extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata) {\n var countryCallingCode = country ? getCountryCallingCode(country, metadata) : callingCode;\n\n if (number.indexOf(countryCallingCode) === 0) {\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(country, callingCode);\n var possibleShorterNumber = number.slice(countryCallingCode.length);\n\n var _extractNationalNumbe = extractNationalNumber(possibleShorterNumber, metadata),\n possibleShorterNationalNumber = _extractNationalNumbe.nationalNumber;\n\n var _extractNationalNumbe2 = extractNationalNumber(number, metadata),\n nationalNumber = _extractNationalNumbe2.nationalNumber; // If the number was not valid before but is valid now,\n // or if it was too long before, we consider the number\n // with the country calling code stripped to be a better result\n // and keep that instead.\n // For example, in Germany (+49), `49` is a valid area code,\n // so if a number starts with `49`, it could be both a valid\n // national German number or an international number without\n // a leading `+`.\n\n\n if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) && matchesEntirely(possibleShorterNationalNumber, metadata.nationalNumberPattern()) || checkNumberLength(nationalNumber, metadata) === 'TOO_LONG') {\n return {\n countryCallingCode: countryCallingCode,\n number: possibleShorterNumber\n };\n }\n }\n\n return {\n number: number\n };\n}\n//# sourceMappingURL=extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport Metadata from '../metadata.js';\nimport getNumberType from './getNumberType.js';\nexport default function getCountryByNationalNumber(possibleCountries, nationalPhoneNumber, metadata) {\n // Re-create `metadata` because it will be selecting a `country`.\n metadata = new Metadata(metadata);\n\n for (var _iterator = _createForOfIteratorHelperLoose(possibleCountries), _step; !(_step = _iterator()).done;) {\n var country = _step.value;\n metadata.country(country); // \"Leading digits\" patterns are only defined for about 20% of all countries.\n // By definition, matching \"leading digits\" is a sufficient but not a necessary\n // condition for a phone number to belong to a country.\n // The point of \"leading digits\" check is that it's the fastest one to get a match.\n // https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md#leading_digits\n\n if (metadata.leadingDigits()) {\n if (nationalPhoneNumber && nationalPhoneNumber.search(metadata.leadingDigits()) === 0) {\n return country;\n }\n } // Else perform full validation with all of those\n // fixed-line/mobile/etc regular expressions.\n else if (getNumberType({\n phone: nationalPhoneNumber,\n country: country\n }, undefined, metadata.metadata)) {\n return country;\n }\n }\n}\n//# sourceMappingURL=getCountryByNationalNumber.js.map","import getCountryByNationalNumber from './getCountryByNationalNumber.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\nexport default function getCountryByCallingCode(callingCode, nationalPhoneNumber, metadata) {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(callingCode)) {\n return '001';\n }\n }\n\n var possibleCountries = metadata.getCountryCodesForCallingCode(callingCode);\n\n if (!possibleCountries) {\n return;\n } // If there's just one country corresponding to the country code,\n // then just return it, without further phone number digits validation.\n\n\n if (possibleCountries.length === 1) {\n return possibleCountries[0];\n }\n\n return getCountryByNationalNumber(possibleCountries, nationalPhoneNumber, metadata.metadata);\n}\n//# sourceMappingURL=getCountryByCallingCode.js.map","// This is a port of Google Android `libphonenumber`'s\n// `phonenumberutil.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\nimport { VALID_DIGITS, PLUS_CHARS, MIN_LENGTH_FOR_NSN, MAX_LENGTH_FOR_NSN } from './constants.js';\nimport ParseError from './ParseError.js';\nimport Metadata from './metadata.js';\nimport isViablePhoneNumber, { isViablePhoneNumberStart } from './helpers/isViablePhoneNumber.js';\nimport extractExtension from './helpers/extension/extractExtension.js';\nimport parseIncompletePhoneNumber from './parseIncompletePhoneNumber.js';\nimport getCountryCallingCode from './getCountryCallingCode.js';\nimport { isPossibleNumber } from './isPossibleNumber_.js';\nimport { parseRFC3966 } from './helpers/RFC3966.js';\nimport PhoneNumber from './PhoneNumber.js';\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport extractCountryCallingCode from './helpers/extractCountryCallingCode.js';\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js';\nimport extractNationalNumber from './helpers/extractNationalNumber.js';\nimport stripIddPrefix from './helpers/stripIddPrefix.js';\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode.js'; // We don't allow input strings for parsing to be longer than 250 chars.\n// This prevents malicious input from consuming CPU.\n\nvar MAX_INPUT_STRING_LENGTH = 250; // This consists of the plus symbol, digits, and arabic-indic digits.\n\nvar PHONE_NUMBER_START_PATTERN = new RegExp('[' + PLUS_CHARS + VALID_DIGITS + ']'); // Regular expression of trailing characters that we want to remove.\n// A trailing `#` is sometimes used when writing phone numbers with extensions in US.\n// Example: \"+1 (645) 123 1234-910#\" number has extension \"910\".\n\nvar AFTER_PHONE_NUMBER_END_PATTERN = new RegExp('[^' + VALID_DIGITS + '#' + ']+$');\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false; // Examples:\n//\n// ```js\n// parse('8 (800) 555-35-35', 'RU')\n// parse('8 (800) 555-35-35', 'RU', metadata)\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } })\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } }, metadata)\n// parse('+7 800 555 35 35')\n// parse('+7 800 555 35 35', metadata)\n// ```\n//\n\nexport default function parse(text, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {};\n metadata = new Metadata(metadata); // Validate `defaultCountry`.\n\n if (options.defaultCountry && !metadata.hasCountry(options.defaultCountry)) {\n if (options.v2) {\n throw new ParseError('INVALID_COUNTRY');\n }\n\n throw new Error(\"Unknown country: \".concat(options.defaultCountry));\n } // Parse the phone number.\n\n\n var _parseInput = parseInput(text, options.v2, options.extract),\n formattedPhoneNumber = _parseInput.number,\n ext = _parseInput.ext,\n error = _parseInput.error; // If the phone number is not viable then return nothing.\n\n\n if (!formattedPhoneNumber) {\n if (options.v2) {\n if (error === 'TOO_SHORT') {\n throw new ParseError('TOO_SHORT');\n }\n\n throw new ParseError('NOT_A_NUMBER');\n }\n\n return {};\n }\n\n var _parsePhoneNumber = parsePhoneNumber(formattedPhoneNumber, options.defaultCountry, options.defaultCallingCode, metadata),\n country = _parsePhoneNumber.country,\n nationalNumber = _parsePhoneNumber.nationalNumber,\n countryCallingCode = _parsePhoneNumber.countryCallingCode,\n carrierCode = _parsePhoneNumber.carrierCode;\n\n if (!metadata.hasSelectedNumberingPlan()) {\n if (options.v2) {\n throw new ParseError('INVALID_COUNTRY');\n }\n\n return {};\n } // Validate national (significant) number length.\n\n\n if (!nationalNumber || nationalNumber.length < MIN_LENGTH_FOR_NSN) {\n // Won't throw here because the regexp already demands length > 1.\n\n /* istanbul ignore if */\n if (options.v2) {\n throw new ParseError('TOO_SHORT');\n } // Google's demo just throws an error in this case.\n\n\n return {};\n } // Validate national (significant) number length.\n //\n // A sidenote:\n //\n // They say that sometimes national (significant) numbers\n // can be longer than `MAX_LENGTH_FOR_NSN` (e.g. in Germany).\n // https://github.com/googlei18n/libphonenumber/blob/7e1748645552da39c4e1ba731e47969d97bdb539/resources/phonenumber.proto#L36\n // Such numbers will just be discarded.\n //\n\n\n if (nationalNumber.length > MAX_LENGTH_FOR_NSN) {\n if (options.v2) {\n throw new ParseError('TOO_LONG');\n } // Google's demo just throws an error in this case.\n\n\n return {};\n }\n\n if (options.v2) {\n var phoneNumber = new PhoneNumber(countryCallingCode, nationalNumber, metadata.metadata);\n\n if (country) {\n phoneNumber.country = country;\n }\n\n if (carrierCode) {\n phoneNumber.carrierCode = carrierCode;\n }\n\n if (ext) {\n phoneNumber.ext = ext;\n }\n\n return phoneNumber;\n } // Check if national phone number pattern matches the number.\n // National number pattern is different for each country,\n // even for those ones which are part of the \"NANPA\" group.\n\n\n var valid = (options.extended ? metadata.hasSelectedNumberingPlan() : country) ? matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) : false;\n\n if (!options.extended) {\n return valid ? result(country, nationalNumber, ext) : {};\n } // isInternational: countryCallingCode !== undefined\n\n\n return {\n country: country,\n countryCallingCode: countryCallingCode,\n carrierCode: carrierCode,\n valid: valid,\n possible: valid ? true : options.extended === true && metadata.possibleLengths() && isPossibleNumber(nationalNumber, metadata) ? true : false,\n phone: nationalNumber,\n ext: ext\n };\n}\n/**\r\n * Extracts a formatted phone number from text.\r\n * Doesn't guarantee that the extracted phone number\r\n * is a valid phone number (for example, doesn't validate its length).\r\n * @param {string} text\r\n * @param {boolean} [extract] — If `false`, then will parse the entire `text` as a phone number.\r\n * @param {boolean} [throwOnError] — By default, it won't throw if the text is too long.\r\n * @return {string}\r\n * @example\r\n * // Returns \"(213) 373-4253\".\r\n * extractFormattedPhoneNumber(\"Call (213) 373-4253 for assistance.\")\r\n */\n\nfunction extractFormattedPhoneNumber(text, extract, throwOnError) {\n if (!text) {\n return;\n }\n\n if (text.length > MAX_INPUT_STRING_LENGTH) {\n if (throwOnError) {\n throw new ParseError('TOO_LONG');\n }\n\n return;\n }\n\n if (extract === false) {\n return text;\n } // Attempt to extract a possible number from the string passed in\n\n\n var startsAt = text.search(PHONE_NUMBER_START_PATTERN);\n\n if (startsAt < 0) {\n return;\n }\n\n return text // Trim everything to the left of the phone number\n .slice(startsAt) // Remove trailing non-numerical characters\n .replace(AFTER_PHONE_NUMBER_END_PATTERN, '');\n}\n/**\r\n * @param {string} text - Input.\r\n * @param {boolean} v2 - Legacy API functions don't pass `v2: true` flag.\r\n * @param {boolean} [extract] - Whether to extract a phone number from `text`, or attempt to parse the entire text as a phone number.\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\n\n\nfunction parseInput(text, v2, extract) {\n // Parse RFC 3966 phone number URI.\n if (text && text.indexOf('tel:') === 0) {\n return parseRFC3966(text);\n }\n\n var number = extractFormattedPhoneNumber(text, extract, v2); // If the phone number is not viable, then abort.\n\n if (!number) {\n return {};\n }\n\n if (!isViablePhoneNumber(number)) {\n if (isViablePhoneNumberStart(number)) {\n return {\n error: 'TOO_SHORT'\n };\n }\n\n return {};\n } // Attempt to parse extension first, since it doesn't require region-specific\n // data and we want to have the non-normalised number here.\n\n\n var withExtensionStripped = extractExtension(number);\n\n if (withExtensionStripped.ext) {\n return withExtensionStripped;\n }\n\n return {\n number: number\n };\n}\n/**\r\n * Creates `parse()` result object.\r\n */\n\n\nfunction result(country, nationalNumber, ext) {\n var result = {\n country: country,\n phone: nationalNumber\n };\n\n if (ext) {\n result.ext = ext;\n }\n\n return result;\n}\n/**\r\n * Parses a viable phone number.\r\n * @param {string} formattedPhoneNumber — Example: \"(213) 373-4253\".\r\n * @param {string} [defaultCountry]\r\n * @param {string} [defaultCallingCode]\r\n * @param {Metadata} metadata\r\n * @return {object} Returns `{ country: string?, countryCallingCode: string?, nationalNumber: string? }`.\r\n */\n\n\nfunction parsePhoneNumber(formattedPhoneNumber, defaultCountry, defaultCallingCode, metadata) {\n // Extract calling code from phone number.\n var _extractCountryCallin = extractCountryCallingCode(parseIncompletePhoneNumber(formattedPhoneNumber), defaultCountry, defaultCallingCode, metadata.metadata),\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n number = _extractCountryCallin.number; // Choose a country by `countryCallingCode`.\n\n\n var country;\n\n if (countryCallingCode) {\n metadata.selectNumberingPlan(countryCallingCode);\n } // If `formattedPhoneNumber` is in \"national\" format\n // then `number` is defined and `countryCallingCode` isn't.\n else if (number && (defaultCountry || defaultCallingCode)) {\n metadata.selectNumberingPlan(defaultCountry, defaultCallingCode);\n\n if (defaultCountry) {\n country = defaultCountry;\n } else {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(defaultCallingCode)) {\n country = '001';\n }\n }\n }\n\n countryCallingCode = defaultCallingCode || getCountryCallingCode(defaultCountry, metadata.metadata);\n } else return {};\n\n if (!number) {\n return {\n countryCallingCode: countryCallingCode\n };\n }\n\n var _extractNationalNumbe = extractNationalNumber(parseIncompletePhoneNumber(number), metadata),\n nationalNumber = _extractNationalNumbe.nationalNumber,\n carrierCode = _extractNationalNumbe.carrierCode; // Sometimes there are several countries\n // corresponding to the same country phone code\n // (e.g. NANPA countries all having `1` country phone code).\n // Therefore, to reliably determine the exact country,\n // national (significant) number should have been parsed first.\n //\n // When `metadata.json` is generated, all \"ambiguous\" country phone codes\n // get their countries populated with the full set of\n // \"phone number type\" regular expressions.\n //\n\n\n var exactCountry = getCountryByCallingCode(countryCallingCode, nationalNumber, metadata);\n\n if (exactCountry) {\n country = exactCountry;\n /* istanbul ignore if */\n\n if (exactCountry === '001') {// Can't happen with `USE_NON_GEOGRAPHIC_COUNTRY_CODE` being `false`.\n // If `USE_NON_GEOGRAPHIC_COUNTRY_CODE` is set to `true` for some reason,\n // then remove the \"istanbul ignore if\".\n } else {\n metadata.country(country);\n }\n }\n\n return {\n country: country,\n countryCallingCode: countryCallingCode,\n nationalNumber: nationalNumber,\n carrierCode: carrierCode\n };\n}\n//# sourceMappingURL=parse_.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport parseNumber from './parse_.js';\nexport default function parsePhoneNumber(text, options, metadata) {\n return parseNumber(text, _objectSpread(_objectSpread({}, options), {}, {\n v2: true\n }), metadata);\n}\n//# sourceMappingURL=parsePhoneNumber_.js.map","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport parsePhoneNumber_ from './parsePhoneNumber_.js';\nexport default function parsePhoneNumber() {\n var _normalizeArguments = normalizeArguments(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n\n return parsePhoneNumber_(text, options, metadata);\n}\nexport function normalizeArguments(args) {\n var _Array$prototype$slic = Array.prototype.slice.call(args),\n _Array$prototype$slic2 = _slicedToArray(_Array$prototype$slic, 4),\n arg_1 = _Array$prototype$slic2[0],\n arg_2 = _Array$prototype$slic2[1],\n arg_3 = _Array$prototype$slic2[2],\n arg_4 = _Array$prototype$slic2[3];\n\n var text;\n var options;\n var metadata; // If the phone number is passed as a string.\n // `parsePhoneNumber('88005553535', ...)`.\n\n if (typeof arg_1 === 'string') {\n text = arg_1;\n } else throw new TypeError('A text for parsing must be a string.'); // If \"default country\" argument is being passed then move it to `options`.\n // `parsePhoneNumber('88005553535', 'RU', [options], metadata)`.\n\n\n if (!arg_2 || typeof arg_2 === 'string') {\n if (arg_4) {\n options = arg_3;\n metadata = arg_4;\n } else {\n options = undefined;\n metadata = arg_3;\n }\n\n if (arg_2) {\n options = _objectSpread({\n defaultCountry: arg_2\n }, options);\n }\n } // `defaultCountry` is not passed.\n // Example: `parsePhoneNumber('+78005553535', [options], metadata)`.\n else if (isObject(arg_2)) {\n if (arg_3) {\n options = arg_2;\n metadata = arg_3;\n } else {\n metadata = arg_2;\n }\n } else throw new Error(\"Invalid second argument: \".concat(arg_2));\n\n return {\n text: text,\n options: options,\n metadata: metadata\n };\n} // Otherwise istanbul would show this as \"branch not covered\".\n\n/* istanbul ignore next */\n\nvar isObject = function isObject(_) {\n return _typeof(_) === 'object';\n};\n//# sourceMappingURL=parsePhoneNumber.js.map","import withMetadataArgument from './withMetadataArgument.js'\r\nimport { parsePhoneNumberWithError as _parsePhoneNumberWithError } from '../../core/index.js'\r\n\r\nexport function parsePhoneNumberWithError() {\r\n\treturn withMetadataArgument(_parsePhoneNumberWithError, arguments)\r\n}\r\n","// This file is a workaround for a bug in web browsers' \"native\"\n// ES6 importing system which is uncapable of importing \"*.json\" files.\n// https://github.com/catamphetamine/libphonenumber-js/issues/239\nexport default {\"version\":4,\"country_calling_codes\":{\"1\":[\"US\",\"AG\",\"AI\",\"AS\",\"BB\",\"BM\",\"BS\",\"CA\",\"DM\",\"DO\",\"GD\",\"GU\",\"JM\",\"KN\",\"KY\",\"LC\",\"MP\",\"MS\",\"PR\",\"SX\",\"TC\",\"TT\",\"VC\",\"VG\",\"VI\"],\"7\":[\"RU\",\"KZ\"],\"20\":[\"EG\"],\"27\":[\"ZA\"],\"30\":[\"GR\"],\"31\":[\"NL\"],\"32\":[\"BE\"],\"33\":[\"FR\"],\"34\":[\"ES\"],\"36\":[\"HU\"],\"39\":[\"IT\",\"VA\"],\"40\":[\"RO\"],\"41\":[\"CH\"],\"43\":[\"AT\"],\"44\":[\"GB\",\"GG\",\"IM\",\"JE\"],\"45\":[\"DK\"],\"46\":[\"SE\"],\"47\":[\"NO\",\"SJ\"],\"48\":[\"PL\"],\"49\":[\"DE\"],\"51\":[\"PE\"],\"52\":[\"MX\"],\"53\":[\"CU\"],\"54\":[\"AR\"],\"55\":[\"BR\"],\"56\":[\"CL\"],\"57\":[\"CO\"],\"58\":[\"VE\"],\"60\":[\"MY\"],\"61\":[\"AU\",\"CC\",\"CX\"],\"62\":[\"ID\"],\"63\":[\"PH\"],\"64\":[\"NZ\"],\"65\":[\"SG\"],\"66\":[\"TH\"],\"81\":[\"JP\"],\"82\":[\"KR\"],\"84\":[\"VN\"],\"86\":[\"CN\"],\"90\":[\"TR\"],\"91\":[\"IN\"],\"92\":[\"PK\"],\"93\":[\"AF\"],\"94\":[\"LK\"],\"95\":[\"MM\"],\"98\":[\"IR\"],\"211\":[\"SS\"],\"212\":[\"MA\",\"EH\"],\"213\":[\"DZ\"],\"216\":[\"TN\"],\"218\":[\"LY\"],\"220\":[\"GM\"],\"221\":[\"SN\"],\"222\":[\"MR\"],\"223\":[\"ML\"],\"224\":[\"GN\"],\"225\":[\"CI\"],\"226\":[\"BF\"],\"227\":[\"NE\"],\"228\":[\"TG\"],\"229\":[\"BJ\"],\"230\":[\"MU\"],\"231\":[\"LR\"],\"232\":[\"SL\"],\"233\":[\"GH\"],\"234\":[\"NG\"],\"235\":[\"TD\"],\"236\":[\"CF\"],\"237\":[\"CM\"],\"238\":[\"CV\"],\"239\":[\"ST\"],\"240\":[\"GQ\"],\"241\":[\"GA\"],\"242\":[\"CG\"],\"243\":[\"CD\"],\"244\":[\"AO\"],\"245\":[\"GW\"],\"246\":[\"IO\"],\"247\":[\"AC\"],\"248\":[\"SC\"],\"249\":[\"SD\"],\"250\":[\"RW\"],\"251\":[\"ET\"],\"252\":[\"SO\"],\"253\":[\"DJ\"],\"254\":[\"KE\"],\"255\":[\"TZ\"],\"256\":[\"UG\"],\"257\":[\"BI\"],\"258\":[\"MZ\"],\"260\":[\"ZM\"],\"261\":[\"MG\"],\"262\":[\"RE\",\"YT\"],\"263\":[\"ZW\"],\"264\":[\"NA\"],\"265\":[\"MW\"],\"266\":[\"LS\"],\"267\":[\"BW\"],\"268\":[\"SZ\"],\"269\":[\"KM\"],\"290\":[\"SH\",\"TA\"],\"291\":[\"ER\"],\"297\":[\"AW\"],\"298\":[\"FO\"],\"299\":[\"GL\"],\"350\":[\"GI\"],\"351\":[\"PT\"],\"352\":[\"LU\"],\"353\":[\"IE\"],\"354\":[\"IS\"],\"355\":[\"AL\"],\"356\":[\"MT\"],\"357\":[\"CY\"],\"358\":[\"FI\",\"AX\"],\"359\":[\"BG\"],\"370\":[\"LT\"],\"371\":[\"LV\"],\"372\":[\"EE\"],\"373\":[\"MD\"],\"374\":[\"AM\"],\"375\":[\"BY\"],\"376\":[\"AD\"],\"377\":[\"MC\"],\"378\":[\"SM\"],\"380\":[\"UA\"],\"381\":[\"RS\"],\"382\":[\"ME\"],\"383\":[\"XK\"],\"385\":[\"HR\"],\"386\":[\"SI\"],\"387\":[\"BA\"],\"389\":[\"MK\"],\"420\":[\"CZ\"],\"421\":[\"SK\"],\"423\":[\"LI\"],\"500\":[\"FK\"],\"501\":[\"BZ\"],\"502\":[\"GT\"],\"503\":[\"SV\"],\"504\":[\"HN\"],\"505\":[\"NI\"],\"506\":[\"CR\"],\"507\":[\"PA\"],\"508\":[\"PM\"],\"509\":[\"HT\"],\"590\":[\"GP\",\"BL\",\"MF\"],\"591\":[\"BO\"],\"592\":[\"GY\"],\"593\":[\"EC\"],\"594\":[\"GF\"],\"595\":[\"PY\"],\"596\":[\"MQ\"],\"597\":[\"SR\"],\"598\":[\"UY\"],\"599\":[\"CW\",\"BQ\"],\"670\":[\"TL\"],\"672\":[\"NF\"],\"673\":[\"BN\"],\"674\":[\"NR\"],\"675\":[\"PG\"],\"676\":[\"TO\"],\"677\":[\"SB\"],\"678\":[\"VU\"],\"679\":[\"FJ\"],\"680\":[\"PW\"],\"681\":[\"WF\"],\"682\":[\"CK\"],\"683\":[\"NU\"],\"685\":[\"WS\"],\"686\":[\"KI\"],\"687\":[\"NC\"],\"688\":[\"TV\"],\"689\":[\"PF\"],\"690\":[\"TK\"],\"691\":[\"FM\"],\"692\":[\"MH\"],\"850\":[\"KP\"],\"852\":[\"HK\"],\"853\":[\"MO\"],\"855\":[\"KH\"],\"856\":[\"LA\"],\"880\":[\"BD\"],\"886\":[\"TW\"],\"960\":[\"MV\"],\"961\":[\"LB\"],\"962\":[\"JO\"],\"963\":[\"SY\"],\"964\":[\"IQ\"],\"965\":[\"KW\"],\"966\":[\"SA\"],\"967\":[\"YE\"],\"968\":[\"OM\"],\"970\":[\"PS\"],\"971\":[\"AE\"],\"972\":[\"IL\"],\"973\":[\"BH\"],\"974\":[\"QA\"],\"975\":[\"BT\"],\"976\":[\"MN\"],\"977\":[\"NP\"],\"992\":[\"TJ\"],\"993\":[\"TM\"],\"994\":[\"AZ\"],\"995\":[\"GE\"],\"996\":[\"KG\"],\"998\":[\"UZ\"]},\"countries\":{\"AC\":[\"247\",\"00\",\"(?:[01589]\\\\d|[46])\\\\d{4}\",[5,6],0,0,0,0,0,0,0,[0,[\"4\\\\d{4}\",[5]]]],\"AD\":[\"376\",\"00\",\"(?:1|6\\\\d)\\\\d{7}|[135-9]\\\\d{5}\",[6,8,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"[135-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]],0,0,0,0,0,0,[0,[\"690\\\\d{6}|[356]\\\\d{5}\",[6,9]]]],\"AE\":[\"971\",\"00\",\"(?:[4-7]\\\\d|9[0-689])\\\\d{7}|800\\\\d{2,9}|[2-4679]\\\\d{7}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{2,9})\",\"$1 $2\",[\"60|8\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[236]|[479][2-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{5})\",\"$1 $2 $3\",[\"[479]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"5[024-68]\\\\d{7}\",[9]]]],\"AF\":[\"93\",\"00\",\"[2-7]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"7\\\\d{8}\"]]],\"AG\":[\"1\",\"011\",\"(?:268|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([457]\\\\d{6})$\",\"268$1\",0,\"268\",[0,[\"268(?:464|7(?:1[3-9]|[28]\\\\d|3[0246]|64|7[0-689]))\\\\d{4}\"]]],\"AI\":[\"1\",\"011\",\"(?:264|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2457]\\\\d{6})$\",\"264$1\",0,\"264\",[0,[\"264(?:235|4(?:69|76)|5(?:3[6-9]|8[1-4])|7(?:29|72))\\\\d{4}\"]]],\"AL\":[\"355\",\"00\",\"(?:700\\\\d\\\\d|900)\\\\d{3}|8\\\\d{5,7}|(?:[2-5]|6\\\\d)\\\\d{7}\",[6,7,8,9],[[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"80|9\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"4[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2358][2-5]|4\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[23578]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"6(?:[78][2-9]|9\\\\d)\\\\d{6}\",[9]]]],\"AM\":[\"374\",\"00\",\"(?:[1-489]\\\\d|55|60|77)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]0\"],\"0 $1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2|3[12]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"1|47\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[3-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:33|4[1349]|55|77|88|9[13-9])\\\\d{6}\"]]],\"AO\":[\"244\",\"00\",\"[29]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[29]\"]]],0,0,0,0,0,0,[0,[\"9[1-59]\\\\d{7}\"]]],\"AR\":[\"54\",\"00\",\"(?:11|[89]\\\\d\\\\d)\\\\d{8}|[2368]\\\\d{9}\",[10,11],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2-$3\",[\"2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])\",\"2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"1\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[68]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[23]\"],\"0$1\",1],[\"(\\\\d)(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9(?:2[2-469]|3[3-578])\",\"9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))\",\"9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$2 15-$3-$4\",[\"91\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9\"],\"0$1\",0,\"$1 $2 $3-$4\"]],\"0\",0,\"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?\",\"9$1\",0,0,[0,[\"93(?:7(?:1[15]|81)[46]|8(?:(?:21|4[16]|69|9[12])[46]|88[013-9]))\\\\d{5}|9(?:29(?:54|66)|3(?:7(?:55|77)|865))[2-8]\\\\d{5}|9(?:2(?:2(?:2[59]|44|52)|3(?:26|44)|473|9(?:[07]2|2[26]|34|46))|3327)[45]\\\\d{5}|9(?:2(?:284|3(?:02|23)|657|920)|3(?:4(?:8[27]|92)|541|878))[2-7]\\\\d{5}|9(?:2(?:(?:26|62)2|320|477|9(?:42|83))|3(?:329|4(?:[47]6|62|89)|564))[2-6]\\\\d{5}|(?:675\\\\d|9(?:11[1-8]\\\\d|2(?:2(?:0[45]|1[2-6]|3[3-6])|3(?:[06]4|7[45])|494|6(?:04|1[2-8]|[36][45]|4[3-6])|80[45]|9(?:[17][4-6]|[48][45]|9[3-6]))|3(?:364|4(?:1[2-7]|[235][4-6]|84)|5(?:1[2-9]|[38][4-6])|6(?:2[45]|44)|7[069][45]|8(?:0[45]|[17][2-6]|3[4-6]|[58][3-6]))))\\\\d{6}|92(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|475|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\\\d{5}|9(?:2(?:2(?:57|81)|3(?:24|46|92)|9(?:01|23|64))|3(?:4(?:42|71)|5(?:25|37|4[347]|71)|7(?:18|5[17])))[3-6]\\\\d{5}|9(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|25|[45][25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[03-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[145]|4[13]|5[468]|7[2-5]|8[26])|8(?:2[5-7]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\\\d{5}\"]]],\"AS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|684|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([267]\\\\d{6})$\",\"684$1\",0,\"684\",[0,[\"684(?:2(?:48|5[2468]|7[26])|7(?:3[13]|70|82))\\\\d{4}\"]]],\"AT\":[\"43\",\"00\",\"1\\\\d{3,12}|2\\\\d{6,12}|43(?:(?:0\\\\d|5[02-9])\\\\d{3,9}|2\\\\d{4,5}|[3467]\\\\d{4}|8\\\\d{4,6}|9\\\\d{4,7})|5\\\\d{4,12}|8\\\\d{7,12}|9\\\\d{8,12}|(?:[367]\\\\d|4[0-24-9])\\\\d{4,11}\",[4,5,6,7,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{3,12})\",\"$1 $2\",[\"1(?:11|[2-9])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})\",\"$1 $2\",[\"517\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"5[079]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,10})\",\"$1 $2\",[\"(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,9})\",\"$1 $2\",[\"[2-467]|5[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,7})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"6(?:5[0-3579]|6[013-9]|[7-9]\\\\d)\\\\d{4,10}\",[7,8,9,10,11,12,13]]]],\"AU\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{7}(?:\\\\d(?:\\\\d{2})?)?|8[0-24-9]\\\\d{7})|[2-478]\\\\d{8}|1\\\\d{4,7}\",[5,6,7,8,9,10,12],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"16\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"16\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"14|4\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[2378]\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:30|[89])\"]]],\"0\",0,\"0|(183[12])\",0,0,0,[0,[\"4(?:83[0-389]|93[0-6])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\\\d{6}\",[9]]],\"0011\"],\"AW\":[\"297\",\"00\",\"(?:[25-79]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[25-9]\"]]],0,0,0,0,0,0,[0,[\"(?:290|5[69]\\\\d|6(?:[03]0|22|4[0-2]|[69]\\\\d)|7(?:[34]\\\\d|7[07])|9(?:6[45]|9[4-8]))\\\\d{4}\"]]],\"AX\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"2\\\\d{4,9}|35\\\\d{4,5}|(?:60\\\\d\\\\d|800)\\\\d{4,6}|7\\\\d{5,11}|(?:[14]\\\\d|3[0-46-9]|50)\\\\d{4,8}\",[5,6,7,8,9,10,11,12],0,\"0\",0,0,0,0,\"18\",[0,[\"4946\\\\d{2,6}|(?:4[0-8]|50)\\\\d{4,8}\",[6,7,8,9,10]]],\"00\"],\"AZ\":[\"994\",\"00\",\"365\\\\d{6}|(?:[124579]\\\\d|60|88)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[28]|2|365|46\",\"1[28]|2|365[45]|46\",\"1[28]|2|365(?:4|5[02])|46\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[13-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"36554\\\\d{4}|(?:[16]0|4[04]|5[015]|7[07]|99)\\\\d{7}\"]]],\"BA\":[\"387\",\"00\",\"6\\\\d{8}|(?:[35689]\\\\d|49|70)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[1-3]|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2-$3\",[\"[3-5]|6[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"6040\\\\d{5}|6(?:03|[1-356]|44|7\\\\d)\\\\d{6}\"]]],\"BB\":[\"1\",\"011\",\"(?:246|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-9]\\\\d{6})$\",\"246$1\",0,\"246\",[0,[\"246(?:(?:2(?:[3568]\\\\d|4[0-57-9])|3(?:5[2-9]|6[0-6])|4(?:46|5\\\\d)|69[5-7]|8(?:[2-5]\\\\d|83))\\\\d|52(?:1[147]|20))\\\\d{3}\"]]],\"BD\":[\"880\",\"00\",\"[1-469]\\\\d{9}|8[0-79]\\\\d{7,8}|[2-79]\\\\d{8}|[2-9]\\\\d{7}|[3-9]\\\\d{6}|[57-9]\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1-$2\",[\"31[5-8]|[459]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1-$2\",[\"3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:28|4[14]|5)|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,6})\",\"$1-$2\",[\"[13-9]|22\"],\"0$1\"],[\"(\\\\d)(\\\\d{7,8})\",\"$1-$2\",[\"2\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:1[13-9]\\\\d|644)\\\\d{7}|(?:3[78]|44|66)[02-9]\\\\d{7}\",[10]]]],\"BE\":[\"32\",\"00\",\"4\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:80|9)0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[239]|4[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[15-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"4[5-9]\\\\d{7}\",[9]]]],\"BF\":[\"226\",\"00\",\"[025-7]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[025-7]\"]]],0,0,0,0,0,0,[0,[\"(?:0[1-35-7]|5[1-8]|[67]\\\\d)\\\\d{6}\"]]],\"BG\":[\"359\",\"00\",\"00800\\\\d{7}|[2-7]\\\\d{6,7}|[89]\\\\d{6,8}|2\\\\d{5}\",[6,7,8,9,12],[[\"(\\\\d)(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"43[1-6]|70[1-9]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:70|8)0\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3\",[\"43[1-7]|7\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[48]|9[08]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:43[07-9]|99[69]\\\\d)\\\\d{5}|(?:8[7-9]|98)\\\\d{7}\",[8,9]]]],\"BH\":[\"973\",\"00\",\"[136-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[13679]|8[047]\"]]],0,0,0,0,0,0,[0,[\"(?:3(?:[1-79]\\\\d|8[0-47-9])\\\\d|6(?:3(?:00|33|6[16])|6(?:3[03-9]|[69]\\\\d|7[0-6])))\\\\d{4}\"]]],\"BI\":[\"257\",\"00\",\"(?:[267]\\\\d|31)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2367]\"]]],0,0,0,0,0,0,[0,[\"(?:29|[67][125-9])\\\\d{6}\"]]],\"BJ\":[\"229\",\"00\",\"[24-689]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-689]\"]]],0,0,0,0,0,0,[0,[\"(?:4[0-2]|[56]\\\\d|9[013-9])\\\\d{6}\"]]],\"BL\":[\"590\",\"00\",\"(?:590|(?:69|80)\\\\d|976)\\\\d{6}\",[9],0,\"0\",0,0,0,0,0,[0,[\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5]))\\\\d{4}\"]]],\"BM\":[\"1\",\"011\",\"(?:441|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-9]\\\\d{6})$\",\"441$1\",0,\"441\",[0,[\"441(?:[2378]\\\\d|5[0-39]|92)\\\\d{5}\"]]],\"BN\":[\"673\",\"00\",\"[2-578]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-578]\"]]],0,0,0,0,0,0,[0,[\"(?:22[89]|[78]\\\\d\\\\d)\\\\d{4}\"]]],\"BO\":[\"591\",\"00(?:1\\\\d)?\",\"(?:[2-467]\\\\d\\\\d|8001)\\\\d{5}\",[8,9],[[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[23]|4[46]\"]],[\"(\\\\d{8})\",\"$1\",[\"[67]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\",0,\"0(1\\\\d)?\",0,0,0,[0,[\"[67]\\\\d{7}\",[8]]]],\"BQ\":[\"599\",\"00\",\"(?:[34]1|7\\\\d)\\\\d{5}\",[7],0,0,0,0,0,0,\"[347]\",[0,[\"(?:31(?:8[14-8]|9[14578])|416[14-9]|7(?:0[01]|7[07]|8\\\\d|9[056])\\\\d)\\\\d{3}\"]]],\"BR\":[\"55\",\"00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)\",\"(?:[1-46-9]\\\\d\\\\d|5(?:[0-46-9]\\\\d|5[0-46-9]))\\\\d{8}|[1-9]\\\\d{9}|[3589]\\\\d{8}|[34]\\\\d{7}\",[8,9,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"300|4(?:0[02]|37)\",\"4(?:02|37)0|[34]00\"]],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:[358]|90)0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1 $2-$3\",[\"[16][1-9]|[2-57-9]\"],\"($1)\"]],\"0\",0,\"(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\\\d{10,11}))?\",\"$2\",0,0,[0,[\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])(?:7|9\\\\d)\\\\d{7}\",[10,11]]]],\"BS\":[\"1\",\"011\",\"(?:242|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([3-8]\\\\d{6})$\",\"242$1\",0,\"242\",[0,[\"242(?:3(?:5[79]|7[56]|95)|4(?:[23][1-9]|4[1-35-9]|5[1-8]|6[2-8]|7\\\\d|81)|5(?:2[45]|3[35]|44|5[1-46-9]|65|77)|6[34]6|7(?:27|38)|8(?:0[1-9]|1[02-9]|2\\\\d|[89]9))\\\\d{4}\"]]],\"BT\":[\"975\",\"00\",\"[17]\\\\d{7}|[2-8]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-68]|7[246]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[67]|7\"]]],0,0,0,0,0,0,[0,[\"(?:1[67]|77)\\\\d{6}\",[8]]]],\"BW\":[\"267\",\"00\",\"(?:0800|(?:[37]|800)\\\\d)\\\\d{6}|(?:[2-6]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[24-6]|3[15-79]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]],0,0,0,0,0,0,[0,[\"(?:321|7(?:[1-7]\\\\d|8[0-4]))\\\\d{5}\",[8]]]],\"BY\":[\"375\",\"810\",\"(?:[12]\\\\d|33|44|902)\\\\d{7}|8(?:0[0-79]\\\\d{5,7}|[1-7]\\\\d{9})|8(?:1[0-489]|[5-79]\\\\d)\\\\d{7}|8[1-79]\\\\d{6,7}|8[0-79]\\\\d{5}|8\\\\d{5}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"800\"],\"8 $1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,4})\",\"$1 $2 $3\",[\"800\"],\"8 $1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{3})\",\"$1 $2-$3\",[\"1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])\",\"1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"1(?:[56]|7[467])|2[1-3]\"],\"8 0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-4]\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"8 $1\"]],\"8\",0,\"0|80?\",0,0,0,[0,[\"(?:2(?:5[5-79]|9[1-9])|(?:33|44)\\\\d)\\\\d{6}\",[9]]],\"8~10\"],\"BZ\":[\"501\",\"00\",\"(?:0800\\\\d|[2-8])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-8]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"0\"]]],0,0,0,0,0,0,[0,[\"6[0-35-7]\\\\d{5}\",[7]]]],\"CA\":[\"1\",\"011\",\"(?:[2-8]\\\\d|90)\\\\d{8}|3\\\\d{6}\",[7,10],0,\"1\",0,0,0,0,0,[0,[\"(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|3[178]|50|68|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\\\d{6}\",[10]]]],\"CC\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10,12],0,\"0\",0,\"0|([59]\\\\d{7})$\",\"8$1\",0,0,[0,[\"4(?:83[0-389]|93[0-6])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\\\d{6}\",[9]]],\"0011\"],\"CD\":[\"243\",\"00\",\"[189]\\\\d{8}|[1-68]\\\\d{6}\",[7,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[1-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"88\\\\d{5}|(?:8[0-59]|9[017-9])\\\\d{7}\"]]],\"CF\":[\"236\",\"00\",\"(?:[27]\\\\d{3}|8776)\\\\d{4}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[278]\"]]],0,0,0,0,0,0,[0,[\"7[02457]\\\\d{6}\"]]],\"CG\":[\"242\",\"00\",\"222\\\\d{6}|(?:0\\\\d|80)\\\\d{7}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[02]\"]]],0,0,0,0,0,0,[0,[\"026(?:1[0-5]|6[6-9])\\\\d{4}|0(?:[14-6]\\\\d\\\\d|2(?:40|5[5-8]|6[07-9]))\\\\d{5}\"]]],\"CH\":[\"41\",\"00\",\"8\\\\d{11}|[2-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8[047]|90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]|81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"7[35-9]\\\\d{7}\"]]],\"CI\":[\"225\",\"00\",\"[02]\\\\d{9}\",[10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d)(\\\\d{5})\",\"$1 $2 $3 $4\",[\"2\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"0\"]]],0,0,0,0,0,0,[0,[\"0[157]\\\\d{8}\"]]],\"CK\":[\"682\",\"00\",\"[2-578]\\\\d{4}\",[5],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"[2-578]\"]]],0,0,0,0,0,0,[0,[\"[578]\\\\d{4}\"]]],\"CL\":[\"56\",\"(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0\",\"12300\\\\d{6}|6\\\\d{9,10}|[2-9]\\\\d{8}\",[9,10,11],[[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"219\",\"2196\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[1-36]\"],\"($1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"9[2-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"60|8\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"60\"]]],0,0,0,0,0,0,[0,[\"2(?:1982[0-6]|3314[05-9])\\\\d{3}|(?:2(?:1(?:160|962)|3(?:2\\\\d\\\\d|3(?:[0346]\\\\d|1[0-35-9]|2[1-9]|5[0-24-9]|7[0-3])|600)|646[59])|80[1-9]\\\\d\\\\d|9(?:3(?:[0-57-9]\\\\d\\\\d|6(?:0[02-9]|[1-9]\\\\d))|6(?:[0-8]\\\\d\\\\d|9(?:[02-79]\\\\d|1[05-9]))|7[1-9]\\\\d\\\\d|9(?:[03-9]\\\\d\\\\d|1(?:[0235-9]\\\\d|4[0-24-9])|2(?:[0-79]\\\\d|8[0-46-9]))))\\\\d{4}|(?:22|3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|8[1-9]|9[2458])\\\\d{7}\",[9]]]],\"CM\":[\"237\",\"00\",\"[26]\\\\d{8}|88\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"88\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[26]|88\"]]],0,0,0,0,0,0,[0,[\"(?:24[23]|6[25-9]\\\\d)\\\\d{6}\",[9]]]],\"CN\":[\"86\",\"00|1(?:[12]\\\\d|79)\\\\d\\\\d00\",\"1[127]\\\\d{8,9}|2\\\\d{9}(?:\\\\d{2})?|[12]\\\\d{6,7}|86\\\\d{6}|(?:1[03-689]\\\\d|6)\\\\d{7,9}|(?:[3-579]\\\\d|8[0-57-9])\\\\d{6,9}\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5,6})\",\"$1 $2\",[\"(?:10|2[0-57-9])[19]\",\"(?:10|2[0-57-9])(?:10|9[56])\",\"10(?:10|9[56])|2[0-57-9](?:100|9[56])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]\",\"(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))[19]\",\"85[23](?:10|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:10|9[56])\",\"85[23](?:100|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:100|9[56])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:4|80)0\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|2(?:[02-57-9]|1[1-9])\",\"10|2(?:[02-57-9]|1[1-9])\",\"10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-578]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"1[3-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"[12]\"],\"0$1\",1]],\"0\",0,\"0|(1(?:[12]\\\\d|79)\\\\d\\\\d)\",0,0,0,[0,[\"1740[0-5]\\\\d{6}|1(?:[38]\\\\d|4[57]|[59][0-35-9]|6[25-7]|7[0-35-8])\\\\d{8}\",[11]]],\"00\"],\"CO\":[\"57\",\"00(?:4(?:[14]4|56)|[579])\",\"(?:60\\\\d\\\\d|9101)\\\\d{6}|(?:1\\\\d|3)\\\\d{9}\",[10,11],[[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"6\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3[0-357]|91\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{7})\",\"$1-$2-$3\",[\"1\"],\"0$1\",0,\"$1 $2 $3\"]],\"0\",0,\"0(4(?:[14]4|56)|[579])?\",0,0,0,[0,[\"3333(?:0(?:0\\\\d|1[0-5])|[4-9]\\\\d\\\\d)\\\\d{3}|(?:3(?:24[1-9]|3(?:00|3[0-24-9]))|9101)\\\\d{6}|3(?:0[0-5]|1\\\\d|2[0-3]|5[01]|70)\\\\d{7}\",[10]]]],\"CR\":[\"506\",\"00\",\"(?:8\\\\d|90)\\\\d{8}|(?:[24-8]\\\\d{3}|3005)\\\\d{4}\",[8,10],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[3-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[89]\"]]],0,0,\"(19(?:0[0-2468]|1[09]|20|66|77|99))\",0,0,0,[0,[\"(?:3005\\\\d|6500[01])\\\\d{3}|(?:5[07]|6[0-4]|7[0-3]|8[3-9])\\\\d{6}\",[8]]]],\"CU\":[\"53\",\"119\",\"[27]\\\\d{6,7}|[34]\\\\d{5,7}|(?:5|8\\\\d\\\\d)\\\\d{7}\",[6,7,8,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"2[1-4]|[34]\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{6,7})\",\"$1 $2\",[\"7\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"5\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"5\\\\d{7}\",[8]]]],\"CV\":[\"238\",\"0\",\"(?:[2-59]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2-589]\"]]],0,0,0,0,0,0,[0,[\"(?:36|5[1-389]|9\\\\d)\\\\d{5}\"]]],\"CW\":[\"599\",\"00\",\"(?:[34]1|60|(?:7|9\\\\d)\\\\d)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[3467]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9[4-8]\"]]],0,0,0,0,0,\"[69]\",[0,[\"953[01]\\\\d{4}|9(?:5[12467]|6[5-9])\\\\d{5}\"]]],\"CX\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10,12],0,\"0\",0,\"0|([59]\\\\d{7})$\",\"8$1\",0,0,[0,[\"4(?:83[0-389]|93[0-6])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\\\d{6}\",[9]]],\"0011\"],\"CY\":[\"357\",\"00\",\"(?:[279]\\\\d|[58]0)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[257-9]\"]]],0,0,0,0,0,0,[0,[\"9(?:10|[4-79]\\\\d)\\\\d{5}\"]]],\"CZ\":[\"420\",\"00\",\"(?:[2-578]\\\\d|60)\\\\d{7}|9\\\\d{8,11}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]|9[015-7]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"96\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]],0,0,0,0,0,0,[0,[\"(?:60[1-8]|7(?:0[2-5]|[2379]\\\\d))\\\\d{6}\"]]],\"DE\":[\"49\",\"00\",\"[2579]\\\\d{5,14}|49(?:[34]0|69|8\\\\d)\\\\d\\\\d?|49(?:37|49|60|7[089]|9\\\\d)\\\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\\\d{1,8}|(?:1|[368]\\\\d|4[0-8])\\\\d{3,13}|49(?:[015]\\\\d|2[13]|31|[46][1-8])\\\\d{1,9}\",[4,5,6,7,8,9,10,11,12,13,14,15],[[\"(\\\\d{2})(\\\\d{3,13})\",\"$1 $2\",[\"3[02]|40|[68]9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,12})\",\"$1 $2\",[\"2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\",\"2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2,11})\",\"$1 $2\",[\"[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]\",\"[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"138\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{2,10})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,11})\",\"$1 $2\",[\"181\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{4,10})\",\"$1 $2 $3\",[\"1(?:3|80)|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"1[67]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,12})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"185\",\"1850\",\"18500\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"18[68]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"15[0568]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"15[1279]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{8})\",\"$1 $2\",[\"18\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{7,8})\",\"$1 $2 $3\",[\"1(?:6[023]|7)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{7})\",\"$1 $2 $3\",[\"15[279]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{8})\",\"$1 $2 $3\",[\"15\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"15[0-25-9]\\\\d{8}|1(?:6[023]|7\\\\d)\\\\d{7,8}\",[10,11]]]],\"DJ\":[\"253\",\"00\",\"(?:2\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[27]\"]]],0,0,0,0,0,0,[0,[\"77\\\\d{6}\"]]],\"DK\":[\"45\",\"00\",\"[2-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-9]\"]]],0,0,0,0,0,0,[0,[\"(?:[2-7]\\\\d|8[126-9]|9[1-46-9])\\\\d{6}\"]]],\"DM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|767|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-7]\\\\d{6})$\",\"767$1\",0,\"767\",[0,[\"767(?:2(?:[2-4689]5|7[5-7])|31[5-7]|61[1-8]|70[1-6])\\\\d{4}\"]]],\"DO\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"8001|8[024]9\",[0,[\"8[024]9[2-9]\\\\d{6}\"]]],\"DZ\":[\"213\",\"00\",\"(?:[1-4]|[5-79]\\\\d|80)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-8]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:5(?:4[0-29]|5\\\\d|6[0-2])|6(?:[569]\\\\d|7[0-6])|7[7-9]\\\\d)\\\\d{6}\",[9]]]],\"EC\":[\"593\",\"00\",\"1\\\\d{9,10}|(?:[2-7]|9\\\\d)\\\\d{7}\",[8,9,10,11],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[2-7]\"],\"(0$1)\",0,\"$1-$2-$3\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1\"]]],\"0\",0,0,0,0,0,[0,[\"964[0-2]\\\\d{5}|9(?:39|[57][89]|6[0-36-9]|[89]\\\\d)\\\\d{6}\",[9]]]],\"EE\":[\"372\",\"00\",\"8\\\\d{9}|[4578]\\\\d{7}|(?:[3-8]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88\",\"[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88\"]],[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[45]|8(?:00|[1-49])\",\"[45]|8(?:00[1-9]|[1-49])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]],0,0,0,0,0,0,[0,[\"(?:5\\\\d{5}|8(?:1(?:0(?:000|[3-9]\\\\d\\\\d)|(?:1(?:0[236]|1\\\\d)|(?:2[0-59]|[3-79]\\\\d)\\\\d)\\\\d)|2(?:0(?:000|(?:19|[2-7]\\\\d)\\\\d)|(?:(?:[124-6]\\\\d|3[5-9])\\\\d|7(?:[3679]\\\\d|8[13-9])|8(?:[2-6]\\\\d|7[01]))\\\\d)|[349]\\\\d{4}))\\\\d\\\\d|5(?:(?:[02]\\\\d|5[0-478])\\\\d|1(?:[0-8]\\\\d|95)|6(?:4[0-4]|5[1-589]))\\\\d{3}\",[7,8]]]],\"EG\":[\"20\",\"00\",\"[189]\\\\d{8,9}|[24-6]\\\\d{8}|[135]\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{7,8})\",\"$1 $2\",[\"[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,7})\",\"$1 $2\",[\"1[35]|[4-6]|8[2468]|9[235-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[189]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"1[0-25]\\\\d{8}\",[10]]]],\"EH\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],0,\"0\",0,0,0,0,\"528[89]\",[0,[\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:[017]\\\\d|2[0-2]|6[0-8]|8[0-3]))\\\\d{6}\"]]],\"ER\":[\"291\",\"00\",\"[178]\\\\d{6}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[178]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:17[1-3]|7\\\\d\\\\d)\\\\d{4}\"]]],\"ES\":[\"34\",\"00\",\"[5-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]00\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-9]\"]]],0,0,0,0,0,0,[0,[\"(?:590[16]00\\\\d|9(?:6906(?:09|10)|7390\\\\d\\\\d))\\\\d\\\\d|(?:6\\\\d|7[1-48])\\\\d{7}\"]]],\"ET\":[\"251\",\"00\",\"(?:11|[2-579]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-579]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"7001\\\\d{5}|(?:7(?:0[1-9]|1[01]|77|86|99)|9\\\\d\\\\d)\\\\d{6}\"]]],\"FI\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"[1-35689]\\\\d{4}|7\\\\d{10,11}|(?:[124-7]\\\\d|3[0-46-9])\\\\d{8}|[1-9]\\\\d{5,8}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d)(\\\\d{4,9})\",\"$1 $2\",[\"[2568][1-8]|3(?:0[1-9]|[1-9])|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"[12]00|[368]|70[07-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,8})\",\"$1 $2\",[\"[1245]|7[135]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,10})\",\"$1 $2\",[\"7\"],\"0$1\"]],\"0\",0,0,0,0,\"1[03-79]|[2-9]\",[0,[\"4946\\\\d{2,6}|(?:4[0-8]|50)\\\\d{4,8}\",[6,7,8,9,10]]],\"00\"],\"FJ\":[\"679\",\"0(?:0|52)\",\"45\\\\d{5}|(?:0800\\\\d|[235-9])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[235-9]|45\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]]],0,0,0,0,0,0,[0,[\"(?:[279]\\\\d|45|5[01568]|8[034679])\\\\d{5}\",[7]]],\"00\"],\"FK\":[\"500\",\"00\",\"[2-7]\\\\d{4}\",[5],0,0,0,0,0,0,0,[0,[\"[56]\\\\d{4}\"]]],\"FM\":[\"691\",\"00\",\"(?:[39]\\\\d\\\\d|820)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[389]\"]]],0,0,0,0,0,0,[0,[\"31(?:00[67]|208|309)\\\\d\\\\d|(?:3(?:[2357]0[1-9]|602|804|905)|(?:820|9[2-7]\\\\d)\\\\d)\\\\d{3}\"]]],\"FO\":[\"298\",\"00\",\"[2-9]\\\\d{5}\",[6],[[\"(\\\\d{6})\",\"$1\",[\"[2-9]\"]]],0,0,\"(10(?:01|[12]0|88))\",0,0,0,[0,[\"(?:[27][1-9]|5\\\\d|9[16])\\\\d{4}\"]]],\"FR\":[\"33\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0 $1\"],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[1-79]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:6(?:[0-24-8]\\\\d|3[0-8]|9[589])|7(?:00|[3-9]\\\\d))\\\\d{6}\"]]],\"GA\":[\"241\",\"00\",\"(?:[067]\\\\d|11)\\\\d{6}|[2-7]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"11|[67]\"],\"0$1\"]],0,0,\"0(11\\\\d{6}|60\\\\d{6}|61\\\\d{6}|6[256]\\\\d{6}|7[467]\\\\d{6})\",\"$1\",0,0,[0,[\"(?:(?:0[2-7]|7[467])\\\\d|6(?:0[0-4]|10|[256]\\\\d))\\\\d{5}|[2-7]\\\\d{6}\"]]],\"GB\":[\"44\",\"00\",\"[1-357-9]\\\\d{9}|[18]\\\\d{8}|8\\\\d{6}\",[7,9,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"800\",\"8001\",\"80011\",\"800111\",\"8001111\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"845\",\"8454\",\"84546\",\"845464\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"1(?:38|5[23]|69|76|94)\",\"1(?:(?:38|69)7|5(?:24|39)|768|946)\",\"1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"1(?:[2-69][02-9]|[78])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[25]|7(?:0|6[02-9])\",\"[25]|7(?:0|6(?:[03-9]|2[356]))\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1389]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"7(?:457[0-57-9]|700[01]|911[028])\\\\d{5}|7(?:[1-3]\\\\d\\\\d|4(?:[0-46-9]\\\\d|5[0-689])|5(?:0[0-8]|[13-9]\\\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\\\d|8[02-9]|9[0-689])|8(?:[014-9]\\\\d|[23][0-8])|9(?:[024-9]\\\\d|1[02-9]|3[0-689]))\\\\d{6}\",[10]]],0,\" x\"],\"GD\":[\"1\",\"011\",\"(?:473|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-9]\\\\d{6})$\",\"473$1\",0,\"473\",[0,[\"473(?:4(?:0[2-79]|1[04-9]|2[0-5]|58)|5(?:2[01]|3[3-8])|901)\\\\d{4}\"]]],\"GE\":[\"995\",\"00\",\"(?:[3-57]\\\\d\\\\d|800)\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"32\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[57]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[348]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"5(?:(?:0555|1(?:[17]77|555))[5-9]|757(?:7[7-9]|8[01]))\\\\d{3}|5(?:0070|11(?:33|51)|[25]222|3333)[0-4]\\\\d{3}|5(?:00(?:0\\\\d|5[05])|11(?:00|[124]\\\\d|3[01])|5200|75(?:00|[57]5)|8(?:0(?:[01]\\\\d|2[0-4])|58[89]|8(?:55|88)))\\\\d{4}|(?:5(?:[14]4|5[0157-9]|68|7[0147-9]|9[1-35-9])|790)\\\\d{6}\"]]],\"GF\":[\"594\",\"00\",\"(?:[56]94|80\\\\d|976)\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[569]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"694(?:[0-249]\\\\d|3[0-8])\\\\d{4}\"]]],\"GG\":[\"44\",\"00\",\"(?:1481|[357-9]\\\\d{3})\\\\d{6}|8\\\\d{6}(?:\\\\d{2})?\",[7,9,10],0,\"0\",0,\"0|([25-9]\\\\d{5})$\",\"1481$1\",0,0,[0,[\"7(?:(?:781|839)\\\\d|911[17])\\\\d{5}\",[10]]]],\"GH\":[\"233\",\"00\",\"(?:[235]\\\\d{3}|800)\\\\d{5}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[235]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:2(?:[0346-9]\\\\d|5[67])|5(?:[03-7]\\\\d|9[1-9]))\\\\d{6}\",[9]]]],\"GI\":[\"350\",\"00\",\"(?:[25]\\\\d\\\\d|606)\\\\d{5}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2\"]]],0,0,0,0,0,0,[0,[\"525(?:0\\\\d|1[0-4])\\\\d{3}|(?:5[146-8]\\\\d|606)\\\\d{5}\"]]],\"GL\":[\"299\",\"00\",\"(?:19|[2-689]\\\\d|70)\\\\d{4}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"19|[2-9]\"]]],0,0,0,0,0,0,[0,[\"[245]\\\\d{5}\"]]],\"GM\":[\"220\",\"00\",\"[2-9]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]],0,0,0,0,0,0,[0,[\"(?:[23679]\\\\d|5[0-389])\\\\d{5}\"]]],\"GN\":[\"224\",\"00\",\"722\\\\d{6}|(?:3|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"3\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[67]\"]]],0,0,0,0,0,0,[0,[\"6[0-356]\\\\d{7}\",[9]]]],\"GP\":[\"590\",\"00\",\"(?:590|(?:69|80)\\\\d|976)\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[569]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5]))\\\\d{4}\"]]],\"GQ\":[\"240\",\"00\",\"222\\\\d{6}|(?:3\\\\d|55|[89]0)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235]\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[89]\"]]],0,0,0,0,0,0,[0,[\"(?:222|55\\\\d)\\\\d{6}\"]]],\"GR\":[\"30\",\"00\",\"5005000\\\\d{3}|8\\\\d{9,11}|(?:[269]\\\\d|70)\\\\d{8}\",[10,11,12],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"21|7\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2689]\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{5})\",\"$1 $2 $3\",[\"8\"]]],0,0,0,0,0,0,[0,[\"68[57-9]\\\\d{7}|(?:69|94)\\\\d{8}\",[10]]]],\"GT\":[\"502\",\"00\",\"(?:1\\\\d{3}|[2-7])\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]],0,0,0,0,0,0,[0,[\"[3-5]\\\\d{7}\",[8]]]],\"GU\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|671|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([3-9]\\\\d{6})$\",\"671$1\",0,\"671\",[0,[\"671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[02-46-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[48])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\\\d{4}\"]]],\"GW\":[\"245\",\"00\",\"[49]\\\\d{8}|4\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"40\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"]]],0,0,0,0,0,0,[0,[\"9(?:5\\\\d|6[569]|77)\\\\d{6}\",[9]]]],\"GY\":[\"592\",\"001\",\"9008\\\\d{3}|(?:[2-467]\\\\d\\\\d|862)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-46-9]\"]]],0,0,0,0,0,0,[0,[\"(?:6\\\\d\\\\d|70[0-35-7])\\\\d{4}\"]]],\"HK\":[\"852\",\"00(?:30|5[09]|[126-9]?)\",\"8[0-46-9]\\\\d{6,7}|9\\\\d{4,7}|(?:[2-7]|9\\\\d{3})\\\\d{7}\",[5,6,7,8,9,11],[[\"(\\\\d{3})(\\\\d{2,5})\",\"$1 $2\",[\"900\",\"9003\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[1-4]|9(?:0[1-9]|[1-8])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]],0,0,0,0,0,0,[0,[\"(?:4(?:44[5-9]|6(?:0[0-7]|1[0-6]|4[0-57-9]|6[0-4]|7[0-8]))|573[0-6]|6(?:26[013-8]|66[0-3])|70(?:7[1-5]|8[0-4])|848[015-9]|9(?:29[013-9]|59[0-4]))\\\\d{4}|(?:4(?:4[01]|6[2358])|5(?:[1-59][0-46-9]|6[0-4689]|7[0-246-9])|6(?:0[1-9]|[13-59]\\\\d|[268][0-57-9]|7[0-79])|84[09]|9(?:0[1-9]|1[02-9]|[2358][0-8]|[467]\\\\d))\\\\d{5}\",[8]]],\"00\"],\"HN\":[\"504\",\"00\",\"8\\\\d{10}|[237-9]\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[237-9]\"]]],0,0,0,0,0,0,[0,[\"[37-9]\\\\d{7}\",[8]]]],\"HR\":[\"385\",\"00\",\"(?:[24-69]\\\\d|3[0-79])\\\\d{7}|80\\\\d{5,7}|[1-79]\\\\d{7}|6\\\\d{5,6}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"6[01]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[67]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-5]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"98\\\\d{6,7}|975(?:1\\\\d|77|9[67])\\\\d{4}|9(?:0[1-9]|[1259]\\\\d|7[0679])\\\\d{6}\",[8,9]]]],\"HT\":[\"509\",\"00\",\"(?:[2-489]\\\\d|55)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-589]\"]]],0,0,0,0,0,0,[0,[\"(?:[34]\\\\d|55)\\\\d{6}\"]]],\"HU\":[\"36\",\"00\",\"[235-7]\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"06 $1\"]],\"06\",0,0,0,0,0,[0,[\"(?:[257]0|3[01])\\\\d{7}\",[9]]]],\"ID\":[\"62\",\"00[89]\",\"(?:(?:00[1-9]|8\\\\d)\\\\d{4}|[1-36])\\\\d{6}|00\\\\d{10}|[1-9]\\\\d{8,10}|[2-9]\\\\d{7}\",[7,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"15\"]],[\"(\\\\d{2})(\\\\d{5,9})\",\"$1 $2\",[\"2[124]|[36]1\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,7})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,8})\",\"$1 $2\",[\"[2-79]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{3})\",\"$1-$2-$3\",[\"8[1-35-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6,8})\",\"$1 $2\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"804\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"80\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"8[1-35-9]\\\\d{7,10}\",[9,10,11,12]]]],\"IE\":[\"353\",\"00\",\"(?:1\\\\d|[2569])\\\\d{6,8}|4\\\\d{6,9}|7\\\\d{8}|8\\\\d{8,9}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"2[24-9]|47|58|6[237-9]|9[35-9]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[45]0\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2569]|4[1-69]|7[14]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"81\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"4\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"8(?:22|[35-9]\\\\d)\\\\d{6}\",[9]]]],\"IL\":[\"972\",\"0(?:0|1[2-9])\",\"1\\\\d{6}(?:\\\\d{3,5})?|[57]\\\\d{8}|[1-489]\\\\d{7}\",[7,8,9,10,11,12],[[\"(\\\\d{4})(\\\\d{3})\",\"$1-$2\",[\"125\"]],[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"121\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[2-489]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"12\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1-$2\",[\"159\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"1[7-9]\"]],[\"(\\\\d{3})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3-$4\",[\"15\"]]],\"0\",0,0,0,0,0,[0,[\"5(?:(?:[02368]\\\\d|[19][2-9]|4[1-9])\\\\d|5(?:01|1[79]|2[2-9]|3[0-3]|4[34]|5[015689]|6[6-8]|7[0-267]|8[7-9]|9[1-9]))\\\\d{5}\",[9]]]],\"IM\":[\"44\",\"00\",\"1624\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"0|([25-8]\\\\d{5})$\",\"1624$1\",0,\"74576|(?:16|7[56])24\",[0,[\"76245[06]\\\\d{4}|7(?:4576|[59]24\\\\d|624[0-4689])\\\\d{5}\"]]],\"IN\":[\"91\",\"00\",\"(?:000800|[2-9]\\\\d\\\\d)\\\\d{7}|1\\\\d{7,12}\",[8,9,10,11,12,13],[[\"(\\\\d{8})\",\"$1\",[\"5(?:0|2[23]|3[03]|[67]1|88)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)\"],0,1],[\"(\\\\d{4})(\\\\d{4,5})\",\"$1 $2\",[\"180\",\"1800\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"140\"],0,1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"11|2[02]|33|4[04]|79[1-7]|80[2-46]\",\"11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])\",\"11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807\",\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]\",\"1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\\\d|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]))[2-7]\"],\"0$1\",1],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"[6-9]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{2,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:6|8[06])\",\"1(?:6|8[06]0)\"],0,1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"18\"],0,1]],\"0\",0,0,0,0,0,[0,[\"(?:61279|7(?:887[02-9]|9(?:313|79[07-9]))|8(?:079[04-9]|(?:84|91)7[02-8]))\\\\d{5}|(?:6(?:12|[2-47]1|5[17]|6[13]|80)[0189]|7(?:1(?:2[0189]|9[0-5])|2(?:[14][017-9]|8[0-59])|3(?:2[5-8]|[34][017-9]|9[016-9])|4(?:1[015-9]|[29][89]|39|8[389])|5(?:[15][017-9]|2[04-9]|9[7-9])|6(?:0[0-47]|1[0-257-9]|2[0-4]|3[19]|5[4589])|70[0289]|88[089]|97[02-8])|8(?:0(?:6[67]|7[02-8])|70[017-9]|84[01489]|91[0-289]))\\\\d{6}|(?:7(?:31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[0189]\\\\d|7[02-8])\\\\d{5}|(?:6(?:[09]\\\\d|1[04679]|2[03689]|3[05-9]|4[0489]|50|6[069]|7[07]|8[7-9])|7(?:0\\\\d|2[0235-79]|3[05-8]|40|5[0346-8]|6[6-9]|7[1-9]|8[0-79]|9[089])|8(?:0[01589]|1[0-57-9]|2[235-9]|3[03-57-9]|[45]\\\\d|6[02457-9]|7[1-69]|8[0-25-9]|9[02-9])|9\\\\d\\\\d)\\\\d{7}|(?:6(?:(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|8[124-6])\\\\d|7(?:[235689]\\\\d|4[0189]))|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-5])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]|881))[0189]\\\\d{5}\",[10]]]],\"IO\":[\"246\",\"00\",\"3\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"3\"]]],0,0,0,0,0,0,[0,[\"38\\\\d{5}\"]]],\"IQ\":[\"964\",\"00\",\"(?:1|7\\\\d\\\\d)\\\\d{7}|[2-6]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"7[3-9]\\\\d{8}\",[10]]]],\"IR\":[\"98\",\"00\",\"[1-9]\\\\d{9}|(?:[1-8]\\\\d\\\\d|9)\\\\d{3,4}\",[4,5,6,7,10],[[\"(\\\\d{4,5})\",\"$1\",[\"96\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,5})\",\"$1 $2\",[\"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-8]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"9(?:(?:0(?:[0-35]\\\\d|4[4-6])|(?:[13]\\\\d|2[0-3])\\\\d)\\\\d|9(?:[0-46]\\\\d\\\\d|5[15]0|8(?:1\\\\d|88)|9(?:0[0-3]|[19]\\\\d|21|77|8[7-9])))\\\\d{5}\",[10]]]],\"IS\":[\"354\",\"00|1(?:0(?:01|[12]0)|100)\",\"(?:38\\\\d|[4-9])\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,[0,[\"(?:38[589]\\\\d\\\\d|6(?:1[1-8]|2[0-6]|3[026-9]|4[014679]|5[0159]|6[0-69]|70|8[06-8]|9\\\\d)|7(?:5[057]|[6-9]\\\\d)|8(?:2[0-59]|[3-69]\\\\d|8[238]))\\\\d{4}\"]],\"00\"],\"IT\":[\"39\",\"00\",\"0\\\\d{5,10}|1\\\\d{8,10}|3(?:[0-8]\\\\d{7,10}|9\\\\d{7,8})|(?:55|70)\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?\",[6,7,8,9,10,11],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"0[26]\"]],[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"0[13-57-9][0159]|8(?:03|4[17]|9[2-5])\",\"0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))\"]],[\"(\\\\d{4})(\\\\d{2,6})\",\"$1 $2\",[\"0(?:[13-579][2-46-8]|8[236-8])\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"894\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[26]|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1(?:44|[679])|[378]\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[13-57-9][0159]|14\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{5})\",\"$1 $2 $3\",[\"0[26]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,[0,[\"3[1-9]\\\\d{8}|3[2-9]\\\\d{7}\",[9,10]]]],\"JE\":[\"44\",\"00\",\"1534\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"0|([0-24-8]\\\\d{5})$\",\"1534$1\",0,0,[0,[\"7(?:(?:(?:50|82)9|937)\\\\d|7(?:00[378]|97[7-9]))\\\\d{5}\"]]],\"JM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|658|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"658|876\",[0,[\"(?:658295|876(?:2(?:0[1-9]|[13-9]\\\\d|2[013-9])|[348]\\\\d\\\\d|5(?:0[1-9]|[1-9]\\\\d)|6(?:4[89]|6[67])|7(?:0[07]|7\\\\d|8[1-47-9]|9[0-36-9])|9(?:[01]9|9[0579])))\\\\d{4}\"]]],\"JO\":[\"962\",\"00\",\"(?:(?:[2689]|7\\\\d)\\\\d|32|53)\\\\d{6}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2356]|87\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"70\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"7(?:[78][0-25-9]|9\\\\d)\\\\d{6}\",[9]]]],\"JP\":[\"81\",\"010\",\"00[1-9]\\\\d{6,14}|[257-9]\\\\d{9}|(?:00|[1-9]\\\\d\\\\d)\\\\d{6}\",[8,9,10,11,12,13,14,15,16,17],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"(?:12|57|99)0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51|63)|9(?:80|9[16])\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9]|636)|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9]|636[457-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[36]|4(?:2[09]|7[01])\",\"[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[27-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9])|5(?:2|3[045]|4[0-369]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|49|51|6(?:[0-24]|36|5[0-3589]|72|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:49|55|83)[29]|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|7[015-9]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17|3[015-9]))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9(?:[019]|4[1-3]|6(?:[0-47-9]|5[01346-9])))|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|829(?:2|66)|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3\",[\"[14]|[289][2-9]|5[3-9]|7[2-4679]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"800\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[257-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"[7-9]0[1-9]\\\\d{7}\",[10]]]],\"KE\":[\"254\",\"000\",\"(?:[17]\\\\d\\\\d|900)\\\\d{6}|(?:2|80)0\\\\d{6,7}|[4-6]\\\\d{6,8}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"[24-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[17]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:1(?:0[0-6]|1[0-5]|2[014]|30)|7\\\\d\\\\d)\\\\d{6}\",[9]]]],\"KG\":[\"996\",\"00\",\"8\\\\d{9}|(?:[235-8]\\\\d|99)\\\\d{7}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3(?:1[346]|[24-79])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235-79]|88\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d)(\\\\d{2,3})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"312(?:58\\\\d|973)\\\\d{3}|(?:2(?:0[0-35]|2\\\\d)|5[0-24-7]\\\\d|600|7(?:[07]\\\\d|55)|88[08]|99[05-9])\\\\d{6}\",[9]]]],\"KH\":[\"855\",\"00[14-9]\",\"1\\\\d{9}|[1-9]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\",0,0,0,0,0,[0,[\"(?:(?:1[28]|3[18]|9[67])\\\\d|6[016-9]|7(?:[07-9]|[16]\\\\d)|8(?:[013-79]|8\\\\d))\\\\d{6}|(?:1\\\\d|9[0-57-9])\\\\d{6}|(?:2[3-6]|3[2-6]|4[2-4]|[5-7][2-5])48\\\\d{5}\",[8,9]]]],\"KI\":[\"686\",\"00\",\"(?:[37]\\\\d|6[0-79])\\\\d{6}|(?:[2-48]\\\\d|50)\\\\d{3}\",[5,8],0,\"0\",0,0,0,0,0,[0,[\"(?:63\\\\d{3}|73(?:0[0-5]\\\\d|140))\\\\d{3}|[67]200[01]\\\\d{3}\",[8]]]],\"KM\":[\"269\",\"00\",\"[3478]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[3478]\"]]],0,0,0,0,0,0,[0,[\"[34]\\\\d{6}\"]]],\"KN\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-7]\\\\d{6})$\",\"869$1\",0,\"869\",[0,[\"869(?:48[89]|55[6-8]|66\\\\d|76[02-7])\\\\d{4}\"]]],\"KP\":[\"850\",\"00|99\",\"85\\\\d{6}|(?:19\\\\d|[2-7])\\\\d{7}\",[8,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"19[1-3]\\\\d{7}\",[10]]]],\"KR\":[\"82\",\"00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))\",\"00[1-9]\\\\d{8,11}|(?:[12]|5\\\\d{3})\\\\d{7}|[13-6]\\\\d{9}|(?:[1-6]\\\\d|80)\\\\d{7}|[3-6]\\\\d{4,5}|(?:00|7)0\\\\d{8}\",[5,6,8,9,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1-$2\",[\"(?:3[1-3]|[46][1-4]|5[1-5])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"1\"]],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"[1346]|5[1-5]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1-$2-$3\",[\"5\"],\"0$1\"]],\"0\",0,\"0(8(?:[1-46-8]|5\\\\d\\\\d))?\",0,0,0,[0,[\"1(?:05(?:[0-8]\\\\d|9[0-6])|22[13]\\\\d)\\\\d{4,5}|1(?:0[1-46-9]|[16-9]\\\\d|2[013-9])\\\\d{6,7}\",[9,10]]]],\"KW\":[\"965\",\"00\",\"18\\\\d{5}|(?:[2569]\\\\d|41)\\\\d{6}\",[7,8],[[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[169]|2(?:[235]|4[1-35-9])|52\"]],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[245]\"]]],0,0,0,0,0,0,[0,[\"(?:41\\\\d\\\\d|5(?:(?:[05]\\\\d|1[0-7]|6[56])\\\\d|2(?:22|5[25])|7(?:55|77)|88[58])|6(?:(?:0[034679]|5[015-9]|6\\\\d)\\\\d|1(?:00|11|66)|222|3[36]3|444|7(?:0[013-9]|[67]\\\\d)|888|9(?:[069]\\\\d|3[039]))|9(?:(?:0[09]|22|[4679]\\\\d|8[057-9])\\\\d|1(?:1[01]|99)|3(?:00|33)|5(?:00|5\\\\d)))\\\\d{4}\",[8]]]],\"KY\":[\"1\",\"011\",\"(?:345|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-9]\\\\d{6})$\",\"345$1\",0,\"345\",[0,[\"345(?:32[1-9]|42[0-4]|5(?:1[67]|2[5-79]|4[6-9]|50|76)|649|82[56]|9(?:1[679]|2[2-9]|3[06-9]|90))\\\\d{4}\"]]],\"KZ\":[\"7\",\"810\",\"(?:33622|8\\\\d{8})\\\\d{5}|[78]\\\\d{9}\",[10,14],0,\"8\",0,0,0,0,\"33|7\",[0,[\"7(?:0[0-25-8]|47|6[0-4]|7[15-8]|85)\\\\d{7}\",[10]]],\"8~10\"],\"LA\":[\"856\",\"00\",\"[23]\\\\d{9}|3\\\\d{8}|(?:[235-8]\\\\d|41)\\\\d{6}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2[13]|3[14]|[4-8]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"30[013-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:20(?:[239]\\\\d|5[24-9]|7[6-8]|88)|302\\\\d)\\\\d{6}\",[10]]]],\"LB\":[\"961\",\"00\",\"[27-9]\\\\d{7}|[13-9]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27-9]\"]]],\"0\",0,0,0,0,0,[0,[\"793(?:[01]\\\\d|2[0-4])\\\\d{3}|(?:(?:3|81)\\\\d|7(?:[01]\\\\d|6[013-9]|8[89]|9[12]))\\\\d{5}\"]]],\"LC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|758|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-8]\\\\d{6})$\",\"758$1\",0,\"758\",[0,[\"758(?:28[4-7]|384|4(?:6[01]|8[4-9])|5(?:1[89]|20|84)|7(?:1[2-9]|2\\\\d|3[0-3])|812)\\\\d{4}\"]]],\"LI\":[\"423\",\"00\",\"[68]\\\\d{8}|(?:[2378]\\\\d|90)\\\\d{5}\",[7,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2379]|8(?:0[09]|7)\",\"[2379]|8(?:0(?:02|9)|7)\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"69\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]],\"0\",0,\"0|(1001)\",0,0,0,[0,[\"(?:6(?:(?:4[5-9]|5[0-4])\\\\d|6(?:[0245]\\\\d|[17]0|3[7-9]))\\\\d|7(?:[37-9]\\\\d|42|56))\\\\d{4}\"]]],\"LK\":[\"94\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[1-689]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"7(?:[0-25-8]\\\\d|4[0-4])\\\\d{6}\"]]],\"LR\":[\"231\",\"00\",\"(?:[25]\\\\d|33|77|88)\\\\d{7}|(?:2\\\\d|[4-6])\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[4-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[23578]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:(?:(?:22|33)0|555|(?:77|88)\\\\d)\\\\d|4[67])\\\\d{5}|[56]\\\\d{6}\",[7,9]]]],\"LS\":[\"266\",\"00\",\"(?:[256]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2568]\"]]],0,0,0,0,0,0,[0,[\"[56]\\\\d{7}\"]]],\"LT\":[\"370\",\"00\",\"(?:[3469]\\\\d|52|[78]0)\\\\d{6}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"52[0-7]\"],\"(8-$1)\",1],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"8 $1\",1],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"37|4(?:[15]|6[1-8])\"],\"(8-$1)\",1],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[3-6]\"],\"(8-$1)\",1]],\"8\",0,\"[08]\",0,0,0,[0,[\"6\\\\d{7}\"]]],\"LU\":[\"352\",\"00\",\"35[013-9]\\\\d{4,8}|6\\\\d{8}|35\\\\d{2,4}|(?:[2457-9]\\\\d|3[0-46-9])\\\\d{2,9}\",[4,5,6,7,8,9,10,11],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"20[2-689]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"80[01]|90[015]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"20\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4 $5\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,5})\",\"$1 $2 $3 $4\",[\"[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]\"]]],0,0,\"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\\\d)\",0,0,0,[0,[\"6(?:[269][18]|5[1568]|7[189]|81)\\\\d{6}\",[9]]]],\"LV\":[\"371\",\"00\",\"(?:[268]\\\\d|90)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[269]|8[01]\"]]],0,0,0,0,0,0,[0,[\"23(?:23[0-57-9]|33[0238])\\\\d{3}|2(?:[0-24-9]\\\\d\\\\d|3(?:0[07]|[14-9]\\\\d|2[024-9]|3[0-24-9]))\\\\d{4}\"]]],\"LY\":[\"218\",\"00\",\"[2-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"[2-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"9[1-6]\\\\d{7}\"]]],\"MA\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],[[\"(\\\\d{5})(\\\\d{4})\",\"$1-$2\",[\"5(?:29|38)\",\"5(?:29[1289]|389)\",\"529(?:1[1-46-9]|2[013-8]|90)|5(?:298|389)[0-46-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5[45]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1-$2\",[\"5(?:2[2-489]|3[5-9]|9)|892\",\"5(?:2(?:[2-49]|8[235-9])|3[5-9]|9)|892\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"8\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1-$2\",[\"[5-7]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:[017]\\\\d|2[0-2]|6[0-8]|8[0-3]))\\\\d{6}\"]]],\"MC\":[\"377\",\"00\",\"(?:[3489]|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[389]\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"6\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"4(?:[46]\\\\d|5[1-9])\\\\d{5}|(?:3|6\\\\d)\\\\d{7}\"]]],\"MD\":[\"373\",\"00\",\"(?:[235-7]\\\\d|[89]0)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"22|3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[25-7]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"562\\\\d{5}|(?:6\\\\d|7[16-9])\\\\d{6}\"]]],\"ME\":[\"382\",\"00\",\"(?:20|[3-79]\\\\d)\\\\d{6}|80\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"6(?:[07-9]\\\\d|3[024]|6[0-25])\\\\d{5}\",[8]]]],\"MF\":[\"590\",\"00\",\"(?:590|(?:69|80)\\\\d|976)\\\\d{6}\",[9],0,\"0\",0,0,0,0,0,[0,[\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5]))\\\\d{4}\"]]],\"MG\":[\"261\",\"00\",\"[23]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\",0,\"0|([24-9]\\\\d{6})$\",\"20$1\",0,0,[0,[\"3[2-47-9]\\\\d{7}\"]]],\"MH\":[\"692\",\"011\",\"329\\\\d{4}|(?:[256]\\\\d|45)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-6]\"]]],\"1\",0,0,0,0,0,[0,[\"(?:(?:23|54)5|329|45[356])\\\\d{4}\"]]],\"MK\":[\"389\",\"00\",\"[2-578]\\\\d{7}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2|34[47]|4(?:[37]7|5[47]|64)\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[347]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[58]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"7(?:3555|(?:474|9[019]7)7)\\\\d{3}|7(?:[0-25-8]\\\\d\\\\d|3(?:[1-48]\\\\d|7[01578])|4(?:2\\\\d|60|7[01578])|9(?:[2-4]\\\\d|7[015]))\\\\d{4}\"]]],\"ML\":[\"223\",\"00\",\"[24-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-9]\"]]],0,0,0,0,0,0,[0,[\"2(?:0(?:01|79)|17\\\\d)\\\\d{4}|(?:5[01]|[679]\\\\d|8[2-49])\\\\d{6}\"]]],\"MM\":[\"95\",\"00\",\"1\\\\d{5,7}|95\\\\d{6}|(?:[4-7]|9[0-46-9])\\\\d{6,8}|(?:2|8\\\\d)\\\\d{5,8}\",[6,7,8,9,10],[[\"(\\\\d)(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"16|2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[45]|6(?:0[23]|[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-6]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[4-7]|8[1-35]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4,6})\",\"$1 $2 $3\",[\"9(?:2[0-4]|[35-9]|4[137-9])\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"92\"],\"0$1\"],[\"(\\\\d)(\\\\d{5})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:17[01]|9(?:2(?:[0-4]|[56]\\\\d\\\\d)|(?:3(?:[0-36]|4\\\\d)|(?:6\\\\d|9[4-8])\\\\d|7(?:3|40|[5-9]\\\\d)|8(?:78|[89]\\\\d))\\\\d|4(?:(?:[0245]\\\\d|[1379])\\\\d|88)|5[0-6])\\\\d)\\\\d{4}|9[69]1\\\\d{6}|9(?:[68]\\\\d|9[089])\\\\d{5}\",[7,8,9,10]]]],\"MN\":[\"976\",\"001\",\"[12]\\\\d{7,9}|[5-9]\\\\d{7}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[12]1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[12]2[1-3]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])\",\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"[12]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:83[01]|920)\\\\d{5}|(?:5[05]|6[069]|8[015689]|9[013-9])\\\\d{6}\",[8]]]],\"MO\":[\"853\",\"00\",\"0800\\\\d{3}|(?:28|[68]\\\\d)\\\\d{6}\",[7,8],[[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[268]\"]]],0,0,0,0,0,0,[0,[\"6800[0-79]\\\\d{3}|6(?:[235]\\\\d\\\\d|6(?:0[0-5]|[1-9]\\\\d)|8(?:0[1-9]|[14-8]\\\\d|2[5-9]|[39][0-4]))\\\\d{4}\",[8]]]],\"MP\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:67|90)0\\\\d{7}\",[10],0,\"1\",0,\"1|([2-9]\\\\d{6})$\",\"670$1\",0,\"670\",[0,[\"670(?:2(?:3[3-7]|56|8[4-8])|32[1-38]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[3589]|8[3-9]8|989)\\\\d{4}\"]]],\"MQ\":[\"596\",\"00\",\"(?:69|80)\\\\d{7}|(?:59|97)6\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[569]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"69(?:6(?:[0-46-9]\\\\d|5[0-6])|727)\\\\d{4}\"]]],\"MR\":[\"222\",\"00\",\"(?:[2-4]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-48]\"]]],0,0,0,0,0,0,[0,[\"[2-4][0-46-9]\\\\d{6}\"]]],\"MS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|664|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([34]\\\\d{6})$\",\"664$1\",0,\"664\",[0,[\"664(?:3(?:49|9[1-6])|49[2-6])\\\\d{4}\"]]],\"MT\":[\"356\",\"00\",\"3550\\\\d{4}|(?:[2579]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2357-9]\"]]],0,0,0,0,0,0,[0,[\"(?:7(?:210|[79]\\\\d\\\\d)|9(?:[29]\\\\d\\\\d|69[67]|8(?:1[1-3]|89|97)))\\\\d{4}\"]]],\"MU\":[\"230\",\"0(?:0|[24-7]0|3[03])\",\"(?:[57]|8\\\\d\\\\d)\\\\d{7}|[2-468]\\\\d{6}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-46]|8[013]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[57]\"]],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"8\"]]],0,0,0,0,0,0,[0,[\"5(?:4(?:2[1-389]|7[1-9])|87[15-8])\\\\d{4}|(?:5(?:2[5-9]|4[3-689]|[57]\\\\d|8[0-689]|9[0-8])|7(?:01|30))\\\\d{5}\",[8]]],\"020\"],\"MV\":[\"960\",\"0(?:0|19)\",\"(?:800|9[0-57-9]\\\\d)\\\\d{7}|[34679]\\\\d{6}\",[7,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[3467]|9[1-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]],0,0,0,0,0,0,[0,[\"46[46]\\\\d{4}|(?:7\\\\d|9[1-9])\\\\d{5}\",[7]]],\"00\"],\"MW\":[\"265\",\"00\",\"(?:[1289]\\\\d|31|77)\\\\d{7}|1\\\\d{6}\",[7,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[137-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"111\\\\d{6}|(?:31|77|[89][89])\\\\d{7}\",[9]]]],\"MX\":[\"52\",\"0[09]\",\"1(?:(?:[27]2|44|99)[1-9]|65[0-689])\\\\d{7}|(?:1(?:[01]\\\\d|2[13-9]|[35][1-9]|4[0-35-9]|6[0-46-9]|7[013-9]|8[1-79]|9[1-8])|[2-9]\\\\d)\\\\d{8}\",[10,11],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"33|5[56]|81\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-9]\"],0,1],[\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$2 $3 $4\",[\"1(?:33|5[56]|81)\"],0,1],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$2 $3 $4\",[\"1\"],0,1]],\"01\",0,\"0(?:[12]|4[45])|1\",0,0,0,[0,[\"657[12]\\\\d{6}|(?:1(?:2(?:2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[24-7][1-9]|3[1-8]|8[1-35-9]|9[2-689])|5(?:[56]\\\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69][1-9]|7[12]|8[1-8]))|2(?:2\\\\d|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[25-7][1-9]|3[1-8]|4\\\\d|8[1-35-9]|9[2-689])|5(?:[56]\\\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[13467][1-9]|2\\\\d|5[13-9]|8[1-69]|9[17])|8(?:1\\\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|6[1-9]|7[12]|8[1-8]|9\\\\d))\\\\d{7}\"]],\"00\"],\"MY\":[\"60\",\"00\",\"1\\\\d{8,9}|(?:3\\\\d|[4-9])\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"[4-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1-$2 $3\",[\"1(?:[02469]|[378][1-9]|53)|8\",\"1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"3\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3-$4\",[\"1(?:[367]|80)\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"15\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"1\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"1(?:1888[689]|4400|8(?:47|8[27])[0-4])\\\\d{4}|1(?:0(?:[23568]\\\\d|4[0-6]|7[016-9]|9[0-8])|1(?:[1-5]\\\\d\\\\d|6(?:0[5-9]|[1-9]\\\\d)|7(?:[0134]\\\\d|2[1-9]|5[0-6]))|(?:[269]\\\\d|[37][1-9]|4[235-9])\\\\d|5(?:31|9\\\\d\\\\d)|8(?:1[23]|[236]\\\\d|4[06]|5(?:46|[7-9])|7[016-9]|8[01]|9[0-8]))\\\\d{5}\",[9,10]]]],\"MZ\":[\"258\",\"00\",\"(?:2|8\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2|8[2-79]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]],0,0,0,0,0,0,[0,[\"8[2-79]\\\\d{7}\",[9]]]],\"NA\":[\"264\",\"00\",\"[68]\\\\d{7,8}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"87\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:60|8[1245])\\\\d{7}\",[9]]]],\"NC\":[\"687\",\"00\",\"(?:050|[2-57-9]\\\\d\\\\d)\\\\d{3}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1.$2.$3\",[\"[02-57-9]\"]]],0,0,0,0,0,0,[0,[\"(?:5[0-4]|[79]\\\\d|8[0-79])\\\\d{4}\"]]],\"NE\":[\"227\",\"00\",\"[027-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"08\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[089]|2[013]|7[04]\"]]],0,0,0,0,0,0,[0,[\"(?:23|7[04]|[89]\\\\d)\\\\d{6}\"]]],\"NF\":[\"672\",\"00\",\"[13]\\\\d{5}\",[6],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"1[0-3]\"]],[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"[13]\"]]],0,0,\"([0-258]\\\\d{4})$\",\"3$1\",0,0,[0,[\"(?:14|3[58])\\\\d{4}\"]]],\"NG\":[\"234\",\"009\",\"(?:[124-7]|9\\\\d{3})\\\\d{6}|[1-9]\\\\d{7}|[78]\\\\d{9,13}\",[7,8,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"78\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]|9(?:0[3-9]|[1-9])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-7]|8[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})(\\\\d{5,6})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:702[0-24-9]|819[01])\\\\d{6}|(?:70[13-689]|8(?:0[1-9]|1[0-8])|9(?:0[1-9]|1[1-356]))\\\\d{7}\",[10]]]],\"NI\":[\"505\",\"00\",\"(?:1800|[25-8]\\\\d{3})\\\\d{4}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[125-8]\"]]],0,0,0,0,0,0,[0,[\"(?:5(?:5[0-7]|[78]\\\\d)|6(?:20|3[035]|4[045]|5[05]|77|8[1-9]|9[059])|(?:7[5-8]|8\\\\d)\\\\d)\\\\d{5}\"]]],\"NL\":[\"31\",\"00\",\"(?:[124-7]\\\\d\\\\d|3(?:[02-9]\\\\d|1[0-8]))\\\\d{6}|8\\\\d{6,9}|9\\\\d{6,10}|1\\\\d{4,5}\",[5,6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{4,7})\",\"$1 $2\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"66\"],\"0$1\"],[\"(\\\\d)(\\\\d{8})\",\"$1 $2\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[16-8]|2[259]|3[124]|4[17-9]|5[124679]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-578]|91\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:6[1-58]|970\\\\d)\\\\d{7}\",[9,11]]]],\"NO\":[\"47\",\"00\",\"(?:0|[2-9]\\\\d{3})\\\\d{4}\",[5,8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[489]|59\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[235-7]\"]]],0,0,0,0,0,\"[02-689]|7[0-8]\",[0,[\"(?:4[015-8]|59|9\\\\d)\\\\d{6}\",[8]]]],\"NP\":[\"977\",\"00\",\"(?:1\\\\d|9)\\\\d{9}|[1-9]\\\\d{7}\",[8,10,11],[[\"(\\\\d)(\\\\d{7})\",\"$1-$2\",[\"1[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1-$2\",[\"1[01]|[2-8]|9(?:[1-59]|[67][2-6])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"9\"]]],\"0\",0,0,0,0,0,[0,[\"9(?:6[0-3]|7[024-6]|8[0-24-68])\\\\d{7}\",[10]]]],\"NR\":[\"674\",\"00\",\"(?:444|(?:55|8\\\\d)\\\\d|666)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-68]\"]]],0,0,0,0,0,0,[0,[\"(?:55[3-9]|666|8\\\\d\\\\d)\\\\d{4}\"]]],\"NU\":[\"683\",\"00\",\"(?:[47]|888\\\\d)\\\\d{3}\",[4,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"8\"]]],0,0,0,0,0,0,[0,[\"888[4-9]\\\\d{3}\",[7]]]],\"NZ\":[\"64\",\"0(?:0|161)\",\"[29]\\\\d{7,9}|50\\\\d{5}(?:\\\\d{2,3})?|6[0-35-9]\\\\d{6}|7\\\\d{7,8}|8\\\\d{4,9}|(?:11\\\\d|[34])\\\\d{7}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,8})\",\"$1 $2\",[\"8[1-579]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"50[036-8]|[89]0\",\"50(?:[0367]|88)|[89]0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"24|[346]|7[2-57-9]|9[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:10|74)|[59]|80\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1|2[028]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,5})\",\"$1 $2 $3\",[\"2(?:[169]|7[0-35-9])|7|86\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"2[0-27-9]\\\\d{7,8}|21\\\\d{6}\",[8,9,10]]],\"00\"],\"OM\":[\"968\",\"00\",\"(?:1505|[279]\\\\d{3}|500)\\\\d{4}|800\\\\d{5,6}\",[7,8,9],[[\"(\\\\d{3})(\\\\d{4,6})\",\"$1 $2\",[\"[58]\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[179]\"]]],0,0,0,0,0,0,[0,[\"1505\\\\d{4}|(?:7(?:[1289]\\\\d|7[0-5])|9(?:0[1-9]|[1-9]\\\\d))\\\\d{5}\",[8]]]],\"PA\":[\"507\",\"00\",\"(?:00800|8\\\\d{3})\\\\d{6}|[68]\\\\d{7}|[1-57-9]\\\\d{6}\",[7,8,10,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[1-57-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[68]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],0,0,0,0,0,0,[0,[\"(?:1[16]1|21[89]|6\\\\d{3}|8(?:1[01]|7[23]))\\\\d{4}\",[7,8]]]],\"PE\":[\"51\",\"00|19(?:1[124]|77|90)00\",\"(?:[14-8]|9\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[4-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"]]],\"0\",0,0,0,0,0,[0,[\"9\\\\d{8}\",[9]]],\"00\",\" Anexo \"],\"PF\":[\"689\",\"00\",\"4\\\\d{5}(?:\\\\d{2})?|8\\\\d{7,8}\",[6,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4|8[7-9]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]],0,0,0,0,0,0,[0,[\"8[7-9]\\\\d{6}\",[8]]]],\"PG\":[\"675\",\"00|140[1-3]\",\"(?:180|[78]\\\\d{3})\\\\d{4}|(?:[2-589]\\\\d|64)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"18|[2-69]|85\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[78]\"]]],0,0,0,0,0,0,[0,[\"(?:7\\\\d|8[128])\\\\d{6}\",[8]]],\"00\"],\"PH\":[\"63\",\"00\",\"(?:[2-7]|9\\\\d)\\\\d{8}|2\\\\d{5}|(?:1800|8)\\\\d{7,9}\",[6,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"2\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2\",\"3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"346|4(?:27|9[35])|883\",\"3469|4(?:279|9(?:30|56))|8834\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|8[2-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{4})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"1\"]]],\"0\",0,0,0,0,0,[0,[\"(?:8(?:1[37]|9[5-8])|9(?:0[5-9]|1[0-24-9]|[235-7]\\\\d|4[2-9]|8[135-9]|9[1-9]))\\\\d{7}\",[10]]]],\"PK\":[\"92\",\"00\",\"122\\\\d{6}|[24-8]\\\\d{10,11}|9(?:[013-9]\\\\d{8,10}|2(?:[01]\\\\d\\\\d|2(?:[06-8]\\\\d|1[01]))\\\\d{7})|(?:[2-8]\\\\d{3}|92(?:[0-7]\\\\d|8[1-9]))\\\\d{6}|[24-9]\\\\d{8}|[89]\\\\d{7}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,7})\",\"$1 $2 $3\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{6,7})\",\"$1 $2\",[\"2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])\",\"9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{7,8})\",\"$1 $2\",[\"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"58\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[24-9]\"],\"(0$1)\"]],\"0\",0,0,0,0,0,[0,[\"3(?:[0-24]\\\\d|3[0-7]|55|64)\\\\d{7}\",[10]]]],\"PL\":[\"48\",\"00\",\"(?:6|8\\\\d\\\\d)\\\\d{7}|[1-9]\\\\d{6}(?:\\\\d{2})?|[26]\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{5})\",\"$1\",[\"19\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"11|20|64\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1\",\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"64\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[2-8]|[2-7]|8[1-79]|9[145]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"8\"]]],0,0,0,0,0,0,[0,[\"21(?:1(?:[145]\\\\d|3[1-5])|2[0-4]\\\\d)\\\\d{4}|(?:45|5[0137]|6[069]|7[2389]|88)\\\\d{7}\",[9]]]],\"PM\":[\"508\",\"00\",\"(?:[45]|80\\\\d\\\\d)\\\\d{5}\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[45]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:4[02-4]|5[056])\\\\d{4}\",[6]]]],\"PR\":[\"1\",\"011\",\"(?:[589]\\\\d\\\\d|787)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"787|939\",[0,[\"(?:787|939)[2-9]\\\\d{6}\"]]],\"PS\":[\"970\",\"00\",\"[2489]2\\\\d{6}|(?:1\\\\d|5)\\\\d{8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2489]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\",0,0,0,0,0,[0,[\"5[69]\\\\d{7}\",[9]]]],\"PT\":[\"351\",\"00\",\"1693\\\\d{5}|(?:[26-9]\\\\d|30)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2[12]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"16|[236-9]\"]]],0,0,0,0,0,0,[0,[\"6(?:[06]92(?:30|9\\\\d)|[35]92(?:3[03]|9\\\\d))\\\\d{3}|(?:(?:16|6[0356])93|9(?:[1-36]\\\\d\\\\d|480))\\\\d{5}\"]]],\"PW\":[\"680\",\"01[12]\",\"(?:[24-8]\\\\d\\\\d|345|900)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]],0,0,0,0,0,0,[0,[\"(?:(?:46|83)[0-5]|6[2-4689]0)\\\\d{4}|(?:45|77|88)\\\\d{5}\"]]],\"PY\":[\"595\",\"00\",\"59\\\\d{4,6}|9\\\\d{5,10}|(?:[2-46-8]\\\\d|5[0-8])\\\\d{4,7}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"[2-9]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{4,5})\",\"$1 $2\",[\"2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"87\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"9(?:[5-79]|8[1-6])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"]]],\"0\",0,0,0,0,0,[0,[\"9(?:51|6[129]|[78][1-6]|9[1-5])\\\\d{6}\",[9]]]],\"QA\":[\"974\",\"00\",\"800\\\\d{4}|(?:2|800)\\\\d{6}|(?:0080|[3-7])\\\\d{7}\",[7,8,9,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"2[16]|8\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[3-7]\"]]],0,0,0,0,0,0,[0,[\"[35-7]\\\\d{7}\",[8]]]],\"RE\":[\"262\",\"00\",\"976\\\\d{6}|(?:26|[68]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2689]\"],\"0$1\"]],\"0\",0,0,0,0,\"26[23]|69|[89]\",[0,[\"(?:69(?:2\\\\d\\\\d|3(?:0[0-46]|1[013]|2[0-2]|3[0-39]|4\\\\d|5[0-5]|6[0-6]|7[0-27]|8[0-8]|9[0-479]))|976(?:2[27]|3[0-37]|9\\\\d))\\\\d{4}\"]]],\"RO\":[\"40\",\"00\",\"(?:[2378]\\\\d|90)\\\\d{7}|[23]\\\\d{5}\",[6,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"2[3-6]\",\"2[3-6]\\\\d9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"219|31\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[23]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[237-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"7020\\\\d{5}|7(?:0[013-9]|1[0-3]|[2-7]\\\\d|8[03-8]|9[019])\\\\d{6}\",[9]]],0,\" int \"],\"RS\":[\"381\",\"00\",\"38[02-9]\\\\d{6,9}|6\\\\d{7,9}|90\\\\d{4,8}|38\\\\d{5,6}|(?:7\\\\d\\\\d|800)\\\\d{3,9}|(?:[12]\\\\d|3[0-79])\\\\d{5,10}\",[6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3,9})\",\"$1 $2\",[\"(?:2[389]|39)0|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5,10})\",\"$1 $2\",[\"[1-36]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"6(?:[0-689]|7\\\\d)\\\\d{6,7}\",[8,9,10]]]],\"RU\":[\"7\",\"810\",\"8\\\\d{13}|[347-9]\\\\d{9}\",[10,14],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-8]|2[1-9])\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2\"],\"8 ($1)\",1],[\"(\\\\d{5})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-68]|2[1-9])\",\"7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))\",\"7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[349]|8(?:[02-7]|1[1-8])\"],\"8 ($1)\",1],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"8\"],\"8 ($1)\"]],\"8\",0,0,0,0,\"3[04-689]|[489]\",[0,[\"9\\\\d{9}\",[10]]],\"8~10\"],\"RW\":[\"250\",\"00\",\"(?:06|[27]\\\\d\\\\d|[89]00)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"]]],\"0\",0,0,0,0,0,[0,[\"7[2389]\\\\d{7}\",[9]]]],\"SA\":[\"966\",\"00\",\"92\\\\d{7}|(?:[15]|8\\\\d)\\\\d{8}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\",0,0,0,0,0,[0,[\"579[01]\\\\d{5}|5(?:[013-689]\\\\d|7[0-35-8])\\\\d{6}\",[9]]]],\"SB\":[\"677\",\"0[01]\",\"(?:[1-6]|[7-9]\\\\d\\\\d)\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7|8[4-9]|9(?:[1-8]|9[0-8])\"]]],0,0,0,0,0,0,[0,[\"48\\\\d{3}|(?:(?:7[1-9]|8[4-9])\\\\d|9(?:1[2-9]|2[013-9]|3[0-2]|[46]\\\\d|5[0-46-9]|7[0-689]|8[0-79]|9[0-8]))\\\\d{4}\"]]],\"SC\":[\"248\",\"010|0[0-2]\",\"800\\\\d{4}|(?:[249]\\\\d|64)\\\\d{5}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[246]|9[57]\"]]],0,0,0,0,0,0,[0,[\"2[125-8]\\\\d{5}\"]],\"00\"],\"SD\":[\"249\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:1[0-2]|9[0-3569])\\\\d{7}\"]]],\"SE\":[\"46\",\"00\",\"(?:[26]\\\\d\\\\d|9)\\\\d{9}|[1-9]\\\\d{8}|[1-689]\\\\d{7}|[1-4689]\\\\d{6}|2\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"20\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"9(?:00|39|44|9)\"],\"0$1\",0,\"$1 $2\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3\",[\"[12][136]|3[356]|4[0246]|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d)(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{3})\",\"$1-$2 $3\",[\"9(?:00|39|44)\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"10|7\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1-$2 $3 $4\",[\"9\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4 $5\",[\"[26]\"],\"0$1\",0,\"$1 $2 $3 $4 $5\"]],\"0\",0,0,0,0,0,[0,[\"7[02369]\\\\d{7}\",[9]]]],\"SG\":[\"65\",\"0[0-3]\\\\d\",\"(?:(?:1\\\\d|8)\\\\d\\\\d|7000)\\\\d{7}|[3689]\\\\d{7}\",[8,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[369]|8(?:0[1-6]|[1-9])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]],0,0,0,0,0,0,[0,[\"8(?:06[0-6]|95[0-2])\\\\d{4}|(?:8(?:0[1-5]|[1-8]\\\\d|9[0-4])|9[0-8]\\\\d)\\\\d{5}\",[8]]]],\"SH\":[\"290\",\"00\",\"(?:[256]\\\\d|8)\\\\d{3}\",[4,5],0,0,0,0,0,0,\"[256]\",[0,[\"[56]\\\\d{4}\",[5]]]],\"SI\":[\"386\",\"00|10(?:22|66|88|99)\",\"[1-7]\\\\d{7}|8\\\\d{4,7}|90\\\\d{4,6}\",[5,6,7,8],[[\"(\\\\d{2})(\\\\d{3,6})\",\"$1 $2\",[\"8[09]|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"59|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37][01]|4[0139]|51|6\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-57]\"],\"(0$1)\"]],\"0\",0,0,0,0,0,[0,[\"65(?:1\\\\d|5[56]|6[01]|70)\\\\d{4}|(?:[37][01]|4[0139]|51|6[489])\\\\d{6}\",[8]]],\"00\"],\"SJ\":[\"47\",\"00\",\"0\\\\d{4}|(?:[489]\\\\d|[57]9)\\\\d{6}\",[5,8],0,0,0,0,0,0,\"79\",[0,[\"(?:4[015-8]|59|9\\\\d)\\\\d{6}\",[8]]]],\"SK\":[\"421\",\"00\",\"[2-689]\\\\d{8}|[2-59]\\\\d{6}|[2-5]\\\\d{5}\",[6,7,9],[[\"(\\\\d)(\\\\d{2})(\\\\d{3,4})\",\"$1 $2 $3\",[\"21\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-5][1-8]1\",\"[3-5][1-8]1[67]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[689]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"[3-5]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"909[1-9]\\\\d{5}|9(?:0[1-8]|1[0-24-9]|4[03-57-9]|5\\\\d)\\\\d{6}\",[9]]]],\"SL\":[\"232\",\"00\",\"(?:[237-9]\\\\d|66)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[236-9]\"],\"(0$1)\"]],\"0\",0,0,0,0,0,[0,[\"(?:25|3[0-5]|66|7[2-9]|8[08]|9[09])\\\\d{6}\"]]],\"SM\":[\"378\",\"00\",\"(?:0549|[5-7]\\\\d)\\\\d{6}\",[8,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"0\"]]],0,0,\"([89]\\\\d{5})$\",\"0549$1\",0,0,[0,[\"6[16]\\\\d{6}\",[8]]]],\"SN\":[\"221\",\"00\",\"(?:[378]\\\\d|93)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[379]\"]]],0,0,0,0,0,0,[0,[\"7(?:(?:[06-8]\\\\d|21|90)\\\\d|5(?:01|[19]0|25|[38]3|[4-7]\\\\d))\\\\d{5}\"]]],\"SO\":[\"252\",\"00\",\"[346-9]\\\\d{8}|[12679]\\\\d{7}|[1-5]\\\\d{6}|[1348]\\\\d{5}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"8[125]\"]],[\"(\\\\d{6})\",\"$1\",[\"[134]\"]],[\"(\\\\d)(\\\\d{6})\",\"$1 $2\",[\"[15]|2[0-79]|3[0-46-8]|4[0-7]\"]],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"(?:2|90)4|[67]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[3478]|64|90\"]],[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"1|28|6(?:0[5-7]|[1-35-9])|9[2-9]\"]]],\"0\",0,0,0,0,0,[0,[\"(?:(?:15|(?:3[59]|4[89]|79|8[08])\\\\d|6(?:0[5-7]|[1-9]\\\\d)|9(?:0\\\\d|[2-9]))\\\\d|2(?:4\\\\d|8))\\\\d{5}|(?:[67]\\\\d\\\\d|904)\\\\d{5}\",[7,8,9]]]],\"SR\":[\"597\",\"00\",\"(?:[2-5]|68|[78]\\\\d)\\\\d{5}\",[6,7],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"56\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1-$2\",[\"[2-5]\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[6-8]\"]]],0,0,0,0,0,0,[0,[\"(?:7[124-7]|8[124-9])\\\\d{5}\",[7]]]],\"SS\":[\"211\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:12|9[1257-9])\\\\d{7}\"]]],\"ST\":[\"239\",\"00\",\"(?:22|9\\\\d)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[29]\"]]],0,0,0,0,0,0,[0,[\"900[5-9]\\\\d{3}|9(?:0[1-9]|[89]\\\\d)\\\\d{4}\"]]],\"SV\":[\"503\",\"00\",\"[267]\\\\d{7}|[89]00\\\\d{4}(?:\\\\d{4})?\",[7,8,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[89]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[267]\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]],0,0,0,0,0,0,[0,[\"66(?:[02-9]\\\\d\\\\d|1(?:[02-9]\\\\d|16))\\\\d{3}|(?:6[0-57-9]|7\\\\d)\\\\d{6}\",[8]]]],\"SX\":[\"1\",\"011\",\"7215\\\\d{6}|(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|(5\\\\d{6})$\",\"721$1\",0,\"721\",[0,[\"7215(?:1[02]|2\\\\d|5[034679]|8[014-8])\\\\d{4}\"]]],\"SY\":[\"963\",\"00\",\"[1-39]\\\\d{8}|[1-5]\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-5]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\",1]],\"0\",0,0,0,0,0,[0,[\"9[1-689]\\\\d{7}\",[9]]]],\"SZ\":[\"268\",\"00\",\"0800\\\\d{4}|(?:[237]\\\\d|900)\\\\d{6}\",[8,9],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[0237]\"]],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"9\"]]],0,0,0,0,0,0,[0,[\"7[6-9]\\\\d{6}\",[8]]]],\"TA\":[\"290\",\"00\",\"8\\\\d{3}\",[4],0,0,0,0,0,0,\"8\"],\"TC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|649|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-479]\\\\d{6})$\",\"649$1\",0,\"649\",[0,[\"649(?:2(?:3[129]|4[1-79])|3\\\\d\\\\d|4[34][1-3])\\\\d{4}\"]]],\"TD\":[\"235\",\"00|16\",\"(?:22|[69]\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2679]\"]]],0,0,0,0,0,0,[0,[\"(?:6[0235689]|77|9\\\\d)\\\\d{6}\"]],\"00\"],\"TG\":[\"228\",\"00\",\"[279]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[279]\"]]],0,0,0,0,0,0,[0,[\"(?:7[09]|9[0-36-9])\\\\d{6}\"]]],\"TH\":[\"66\",\"00[1-9]\",\"(?:001800|[2-57]|[689]\\\\d)\\\\d{7}|1\\\\d{7,9}\",[8,9,10,13],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[13-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\",0,0,0,0,0,[0,[\"671[0-8]\\\\d{5}|(?:14|6[1-6]|[89]\\\\d)\\\\d{7}\",[9]]]],\"TJ\":[\"992\",\"810\",\"(?:00|[1-57-9]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{6})(\\\\d)(\\\\d{2})\",\"$1 $2 $3\",[\"331\",\"3317\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[34]7|91[78]\"]],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"3[1-5]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[0-57-9]\"]]],0,0,0,0,0,0,[0,[\"41[18]\\\\d{6}|(?:[034]0|1[017]|2[02]|5[05]|7[0178]|8[078]|9\\\\d)\\\\d{7}\"]],\"8~10\"],\"TK\":[\"690\",\"00\",\"[2-47]\\\\d{3,6}\",[4,5,6,7],0,0,0,0,0,0,0,[0,[\"7[2-4]\\\\d{2,5}\"]]],\"TL\":[\"670\",\"00\",\"7\\\\d{7}|(?:[2-47]\\\\d|[89]0)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-489]|70\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"7\"]]],0,0,0,0,0,0,[0,[\"7[2-8]\\\\d{6}\",[8]]]],\"TM\":[\"993\",\"810\",\"[1-6]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"12\"],\"(8 $1)\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-5]\"],\"(8 $1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"6\"],\"8 $1\"]],\"8\",0,0,0,0,0,[0,[\"6\\\\d{7}\"]],\"8~10\"],\"TN\":[\"216\",\"00\",\"[2-57-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-57-9]\"]]],0,0,0,0,0,0,[0,[\"3(?:001|[12]40)\\\\d{4}|(?:(?:[259]\\\\d|4[0-7])\\\\d|3(?:1[1-35]|6[0-4]|91))\\\\d{5}\"]]],\"TO\":[\"676\",\"00\",\"(?:0800|(?:[5-8]\\\\d\\\\d|999)\\\\d)\\\\d{3}|[2-8]\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1-$2\",[\"[2-4]|50|6[09]|7[0-24-69]|8[05]\"]],[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]]],0,0,0,0,0,0,[0,[\"(?:55[4-6]|6(?:[09]\\\\d|3[02]|8[15-9])|(?:7\\\\d|8[46-9])\\\\d|999)\\\\d{4}\",[7]]]],\"TR\":[\"90\",\"00\",\"4\\\\d{6}|8\\\\d{11,12}|(?:[2-58]\\\\d\\\\d|900)\\\\d{7}\",[7,10,12,13],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"512|8[01589]|90\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5(?:[0-59]|61)\",\"5(?:[0-59]|616)\",\"5(?:[0-59]|6161)\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24][1-8]|3[1-9]\"],\"(0$1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{6,7})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1]],\"0\",0,0,0,0,0,[0,[\"56161\\\\d{5}|5(?:0[15-7]|1[06]|24|[34]\\\\d|5[1-59]|9[46])\\\\d{7}\",[10]]]],\"TT\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-46-8]\\\\d{6})$\",\"868$1\",0,\"868\",[0,[\"868(?:(?:2[5-9]|3\\\\d)\\\\d|4(?:3[0-6]|[6-9]\\\\d)|6(?:20|78|8\\\\d)|7(?:0[1-9]|1[02-9]|[2-9]\\\\d))\\\\d{4}\"]]],\"TV\":[\"688\",\"00\",\"(?:2|7\\\\d\\\\d|90)\\\\d{4}\",[5,6,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]],0,0,0,0,0,0,[0,[\"(?:7[01]\\\\d|90)\\\\d{4}\",[6,7]]]],\"TW\":[\"886\",\"0(?:0[25-79]|19)\",\"[2-689]\\\\d{8}|7\\\\d{9,10}|[2-8]\\\\d{7}|2\\\\d{6}\",[7,8,9,10,11],[[\"(\\\\d{2})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"202\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[258]0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]\",\"[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:40001[0-2]|9[0-8]\\\\d{4})\\\\d{3}\",[9]]],0,\"#\"],\"TZ\":[\"255\",\"00[056]\",\"(?:[25-8]\\\\d|41|90)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[24]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[67]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"77[2-9]\\\\d{6}|(?:6[125-9]|7[13-689])\\\\d{7}\"]]],\"UA\":[\"380\",\"00\",\"[89]\\\\d{9}|[3-9]\\\\d{8}\",[9,10],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]\",\"6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])\",\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|89|9[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:39|50|6[36-8]|7[1-3]|9[1-9])\\\\d{7}\",[9]]],\"0~0\"],\"UG\":[\"256\",\"00[057]\",\"800\\\\d{6}|(?:[29]0|[347]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"202\",\"2024\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[27-9]|4(?:6[45]|[7-9])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[34]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"726[01]\\\\d{5}|7(?:[01578]\\\\d|20|36|[46][0-4]|9[89])\\\\d{6}\"]]],\"US\":[\"1\",\"011\",\"[2-9]\\\\d{9}|3\\\\d{6}\",[10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"310\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"($1) $2-$3\",[\"[2-9]\"],0,1,\"$1-$2-$3\"]],\"1\",0,0,0,0,0,[0,[\"505(?:[2-57-9]\\\\d\\\\d|6(?:[0-35-9]\\\\d|4[46]))\\\\d{4}|(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[0-2]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\\\d{6}\"]]],\"UY\":[\"598\",\"0(?:0|1[3-9]\\\\d)\",\"(?:0004|4)\\\\d{9}|[1249]\\\\d{7}|(?:[49]\\\\d|80)\\\\d{5}\",[7,8,10,13],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"405|8|90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[124]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"4\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"0\"]]],\"0\",0,0,0,0,0,[0,[\"9[1-9]\\\\d{6}\",[8]]],\"00\",\" int. \"],\"UZ\":[\"998\",\"810\",\"(?:33|[5-79]\\\\d|88)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[35-9]\"],\"8 $1\"]],\"8\",0,0,0,0,0,[0,[\"(?:(?:33|88|9[0-57-9])\\\\d{3}|5(?:0\\\\d{3}|5(?:50[013]|90\\\\d))|6(?:1(?:2(?:2[01]|98)|35[0-4]|50\\\\d|61[23]|7(?:[01][017]|4\\\\d|55|9[5-9]))|2(?:(?:11|7\\\\d)\\\\d|2(?:[12]1|9[01379])|5(?:[126]\\\\d|3[0-4]))|5(?:19[01]|2(?:27|9[26])|(?:30|59|7\\\\d)\\\\d)|6(?:2(?:1[5-9]|2[0367]|38|41|52|60)|(?:3[79]|9[0-3])\\\\d|4(?:56|83)|7(?:[07]\\\\d|1[017]|3[07]|4[047]|5[057]|67|8[0178]|9[79]))|7(?:2(?:24|3[237]|4[5-9]|7[15-8])|5(?:7[12]|8[0589])|7(?:0\\\\d|[39][07])|9(?:0\\\\d|7[079]))|9(?:2(?:1[1267]|3[01]|5\\\\d|7[0-4])|(?:5[67]|7\\\\d)\\\\d|6(?:2[0-26]|8\\\\d)))|7(?:[07]\\\\d{3}|1(?:13[01]|6(?:0[47]|1[67]|66)|71[3-69]|98\\\\d)|2(?:2(?:2[79]|95)|3(?:2[5-9]|6[0-6])|57\\\\d|7(?:0\\\\d|1[17]|2[27]|3[37]|44|5[057]|66|88))|3(?:2(?:1[0-6]|21|3[469]|7[159])|(?:33|9[4-6])\\\\d|5(?:0[0-4]|5[579]|9\\\\d)|7(?:[0-3579]\\\\d|4[0467]|6[67]|8[078]))|4(?:2(?:29|5[0257]|6[0-7]|7[1-57])|5(?:1[0-4]|8\\\\d|9[5-9])|7(?:0\\\\d|1[024589]|2[0-27]|3[0137]|[46][07]|5[01]|7[5-9]|9[079])|9(?:7[015-9]|[89]\\\\d))|5(?:112|2(?:0\\\\d|2[29]|[49]4)|3[1568]\\\\d|52[6-9]|7(?:0[01578]|1[017]|[23]7|4[047]|[5-7]\\\\d|8[78]|9[079]))|6(?:2(?:2[1245]|4[2-4])|39\\\\d|41[179]|5(?:[349]\\\\d|5[0-2])|7(?:0[017]|[13]\\\\d|22|44|55|67|88))|9(?:22[128]|3(?:2[0-4]|7\\\\d)|57[02569]|7(?:2[05-9]|3[37]|4\\\\d|60|7[2579]|87|9[07]))))\\\\d{4}\"]],\"8~10\"],\"VA\":[\"39\",\"00\",\"0\\\\d{5,10}|3[0-8]\\\\d{7,10}|55\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?|(?:1\\\\d|39)\\\\d{7,8}\",[6,7,8,9,10,11],0,0,0,0,0,0,\"06698\",[0,[\"3[1-9]\\\\d{8}|3[2-9]\\\\d{7}\",[9,10]]]],\"VC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|784|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-7]\\\\d{6})$\",\"784$1\",0,\"784\",[0,[\"784(?:4(?:3[0-5]|5[45]|89|9[0-8])|5(?:2[6-9]|3[0-4])|720)\\\\d{4}\"]]],\"VE\":[\"58\",\"00\",\"[68]00\\\\d{7}|(?:[24]\\\\d|[59]0)\\\\d{8}\",[10],[[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"[24-689]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"4(?:1[24-8]|2[46])\\\\d{7}\"]]],\"VG\":[\"1\",\"011\",\"(?:284|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-578]\\\\d{6})$\",\"284$1\",0,\"284\",[0,[\"284496[6-9]\\\\d{3}|284(?:245|3(?:0[0-3]|4[0-7]|68|9[34])|4(?:4[0-6]|68|99)|5(?:4[0-7]|68|9[69]))\\\\d{4}\"]]],\"VI\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:34|90)0\\\\d{7}\",[10],0,\"1\",0,\"1|([2-9]\\\\d{6})$\",\"340$1\",0,\"340\",[0,[\"340(?:2(?:0[0-368]|2[06-8]|4[49]|77)|3(?:32|44)|4(?:2[23]|44|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|2[57]|7\\\\d)|884|998)\\\\d{4}\"]]],\"VN\":[\"84\",\"00\",\"[12]\\\\d{9}|[135-9]\\\\d{8}|[16]\\\\d{7}|[16-8]\\\\d{6}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"1\"],0,1],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[69]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[3578]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[48]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\",1]],\"0\",0,0,0,0,0,[0,[\"(?:5(?:2[238]|59)|89[6-9]|99[013-9])\\\\d{6}|(?:3\\\\d|5[689]|7[06-9]|8[1-8]|9[0-8])\\\\d{7}\",[9]]]],\"VU\":[\"678\",\"00\",\"[57-9]\\\\d{6}|(?:[238]\\\\d|48)\\\\d{3}\",[5,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[57-9]\"]]],0,0,0,0,0,0,[0,[\"(?:[58]\\\\d|7[013-7])\\\\d{5}\",[7]]]],\"WF\":[\"681\",\"00\",\"(?:40|72)\\\\d{4}|8\\\\d{5}(?:\\\\d{3})?\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[478]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]],0,0,0,0,0,0,[0,[\"(?:72|8[23])\\\\d{4}\",[6]]]],\"WS\":[\"685\",\"0\",\"(?:[2-6]|8\\\\d{5})\\\\d{4}|[78]\\\\d{6}|[68]\\\\d{5}\",[5,6,7,10],[[\"(\\\\d{5})\",\"$1\",[\"[2-5]|6[1-9]\"]],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"[68]\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]],0,0,0,0,0,0,[0,[\"(?:7[1-35-7]|8(?:[3-7]|9\\\\d{3}))\\\\d{5}\",[7,10]]]],\"XK\":[\"383\",\"00\",\"[23]\\\\d{7,8}|(?:4\\\\d\\\\d|[89]00)\\\\d{5}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[23]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"4[3-9]\\\\d{6}\",[8]]]],\"YE\":[\"967\",\"00\",\"(?:1|7\\\\d)\\\\d{7}|[1-7]\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-6]|7(?:[24-6]|8[0-7])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"7[01378]\\\\d{7}\",[9]]]],\"YT\":[\"262\",\"00\",\"80\\\\d{7}|(?:26|63)9\\\\d{6}\",[9],0,\"0\",0,0,0,0,\"269|63\",[0,[\"639(?:0[0-79]|1[019]|[267]\\\\d|3[09]|40|5[05-9]|9[04-79])\\\\d{4}\"]]],\"ZA\":[\"27\",\"00\",\"[1-79]\\\\d{8}|8\\\\d{4,9}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"860\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:1(?:3492[0-25]|4495[0235]|549(?:20|5[01]))|4[34]492[01])\\\\d{3}|8[1-4]\\\\d{3,7}|(?:2[27]|47|54)4950\\\\d{3}|(?:1(?:049[2-4]|9[12]\\\\d\\\\d)|(?:6\\\\d|7[0-46-9])\\\\d{3}|8(?:5\\\\d{3}|7(?:08[67]|158|28[5-9]|310)))\\\\d{4}|(?:1[6-8]|28|3[2-69]|4[025689]|5[36-8])4920\\\\d{3}|(?:12|[2-5]1)492\\\\d{4}\",[5,6,7,8,9]]]],\"ZM\":[\"260\",\"00\",\"800\\\\d{6}|(?:21|63|[79]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[28]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[79]\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"(?:7[5-79]|9[5-8])\\\\d{7}\"]]],\"ZW\":[\"263\",\"00\",\"2(?:[0-57-9]\\\\d{6,8}|6[0-24-9]\\\\d{6,7})|[38]\\\\d{9}|[35-8]\\\\d{8}|[3-6]\\\\d{7}|[1-689]\\\\d{6}|[1-3569]\\\\d{5}|[1356]\\\\d{4}\",[5,6,7,8,9,10],[[\"(\\\\d{3})(\\\\d{3,5})\",\"$1 $2\",[\"2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"80\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2\",\"2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)\",\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"29[013-9]|39|54\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,5})\",\"$1 $2\",[\"(?:25|54)8\",\"258|5483\"],\"0$1\"]],\"0\",0,0,0,0,0,[0,[\"7(?:[178]\\\\d|3[1-9])\\\\d{6}\",[9]]]]},\"nonGeographic\":{\"800\":[\"800\",0,\"(?:00|[1-9]\\\\d)\\\\d{6}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"\\\\d\"]]],0,0,0,0,0,0,[0,0,[\"(?:00|[1-9]\\\\d)\\\\d{6}\"]]],\"808\":[\"808\",0,\"[1-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[1-9]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,0,[\"[1-9]\\\\d{7}\"]]],\"870\":[\"870\",0,\"7\\\\d{11}|[35-7]\\\\d{8}\",[9,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[35-7]\"]]],0,0,0,0,0,0,[0,[\"(?:[356]|774[45])\\\\d{8}|7[6-8]\\\\d{7}\"]]],\"878\":[\"878\",0,\"10\\\\d{10}\",[12],[[\"(\\\\d{2})(\\\\d{5})(\\\\d{5})\",\"$1 $2 $3\",[\"1\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"10\\\\d{10}\"]]],\"881\":[\"881\",0,\"[0-36-9]\\\\d{8}\",[9],[[\"(\\\\d)(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"[0-36-9]\"]]],0,0,0,0,0,0,[0,[\"[0-36-9]\\\\d{8}\"]]],\"882\":[\"882\",0,\"[13]\\\\d{6}(?:\\\\d{2,5})?|[19]\\\\d{7}|(?:[25]\\\\d\\\\d|4)\\\\d{7}(?:\\\\d{2})?\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"16|342\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"49\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"1[36]|9\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"3[23]\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"16\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|23|3(?:[15]|4[57])|4|51\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"34\"]],[\"(\\\\d{2})(\\\\d{4,5})(\\\\d{5})\",\"$1 $2 $3\",[\"[1-35]\"]]],0,0,0,0,0,0,[0,[\"342\\\\d{4}|(?:337|49)\\\\d{6}|(?:3(?:2|47|7\\\\d{3})|50\\\\d{3})\\\\d{7}\",[7,8,9,10,12]],0,0,0,0,0,0,[\"1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\\\d{4}|6\\\\d{5,10})|(?:345\\\\d|9[89])\\\\d{6}|(?:10|2(?:3|85\\\\d)|3(?:[15]|[69]\\\\d\\\\d)|4[15-8]|51)\\\\d{8}\"]]],\"883\":[\"883\",0,\"(?:[1-4]\\\\d|51)\\\\d{6,10}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,8})\",\"$1 $2 $3\",[\"[14]|2[24-689]|3[02-689]|51[24-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"510\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"21\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"51[13]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[235]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"(?:2(?:00\\\\d\\\\d|10)|(?:370[1-9]|51\\\\d0)\\\\d)\\\\d{7}|51(?:00\\\\d{5}|[24-9]0\\\\d{4,7})|(?:1[013-79]|2[24-689]|3[02-689]|4[0-4])0\\\\d{5,9}\"]]],\"888\":[\"888\",0,\"\\\\d{11}\",[11],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\"]],0,0,0,0,0,0,[0,0,0,0,0,0,[\"\\\\d{11}\"]]],\"979\":[\"979\",0,\"[1359]\\\\d{8}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1359]\"]]],0,0,0,0,0,0,[0,0,0,[\"[1359]\\\\d{8}\"]]]}}","// Importing from a \".js\" file is a workaround for Node.js \"ES Modules\"\r\n// importing system which is even uncapable of importing \"*.json\" files.\r\nimport metadata from '../../metadata.mobile.json.js'\r\n\r\nexport default function withMetadataArgument(func, _arguments) {\r\n\tvar args = Array.prototype.slice.call(_arguments)\r\n\targs.push(metadata)\r\n\treturn func.apply(this, args)\r\n}"],"names":["getPossibleCountriesForNumber","callingCode","nationalNumber","metadata","possibleCountries","getCountryCodesForCallingCode","filter","country","_metadata","selectNumberingPlan","numberingPlan","possibleLengths","indexOf","length","couldNationalNumberBelongToCountry","FIRST_GROUP_PATTERN","formatNationalNumberUsingFormat","number","format","_ref","useInternationalFormat","withNationalPrefix","formattedNumber","carrierCode","replace","RegExp","pattern","internationalFormat","nationalPrefixFormattingRule","concat","trim","applyInternationalSeparatorStyle","SINGLE_IDD_PREFIX_REG_EXP","_createForOfIteratorHelperLoose","o","allowArrayLike","it","Symbol","iterator","call","next","bind","Array","isArray","minLen","_arrayLikeToArray","n","Object","prototype","toString","slice","constructor","name","from","test","_unsupportedIterableToArray","i","done","value","TypeError","arr","len","arr2","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","arguments","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","configurable","writable","DEFAULT_OPTIONS","formatExtension","extension","ext","formatNumber","input","options","hasCountry","Error","countryCallingCode","phone","v2","addExtension","formatNationalNumber","fromCountry","fromCountryCallingCode","iddPrefix","countryMetadata","defaultIDDPrefix","IDDPrefix","getIddPrefix","undefined","formatIDD","formatAs","availableFormats","nationalNnumber","_step","_iterator","leadingDigitsPatterns","lastLeadingDigitsPattern","search","matchesEntirely","chooseFormatForNumber","formats","nationalPrefixIsOptionalWhenFormattingInNationalFormat","nationalPrefix","_defineProperties","props","descriptor","USE_NON_GEOGRAPHIC_COUNTRY_CODE","PhoneNumber","instance","Constructor","_classCallCheck","this","isCountryCode","isNonGeographicCallingCode","protoProps","staticProps","hasTypes","getNumberType","national_number","nationalNumberPattern","isValidNumber","phoneNumber","_format","MIN_LENGTH_FOR_NSN","MAX_LENGTH_FOR_NSN","MAX_LENGTH_COUNTRY_CODE","VALID_DIGITS","VALID_PUNCTUATION","PLUS_CHARS","_slicedToArray","_arrayWithHoles","_i","_s","_e","_arr","_n","_d","err","_iterableToArrayLimit","_nonIterableRest","parseRFC3966","text","split","_part$split2","result","formatRFC3966","checkNumberLength","checkNumberLengthForType","type","type_info","possible_lengths","mobile_type","a","b","merged","element","sort","mergeArrays","actual_length","minimum_length","RFC3966_EXTN_PREFIX","getExtensionDigitsPattern","maxLength","createExtensionPattern","purpose","possibleSeparatorsBetweenNumberAndExtLabel","possibleCharsAfterExtLabel","optionalExtnSuffix","possibleSeparatorsNumberExtLabelNoComma","NON_FIXED_LINE_PHONE_TYPES","isNumberTypeEqualTo","MIN_LENGTH_PHONE_NUMBER_PATTERN","VALID_PHONE_NUMBER","VALID_PHONE_NUMBER_START_REG_EXP","VALID_PHONE_NUMBER_WITH_EXTENSION","VALID_PHONE_NUMBER_PATTERN","isViablePhoneNumber","isViablePhoneNumberStart","regular_expression","isPossiblePhoneNumber","isPossibleNumber","pa","pb","na","Number","nb","isNaN","_typeof","_createClass","V3","V4","DEFAULT_EXT_PREFIX","CALLING_CODE_REG_EXP","Metadata","is_object","countries","join","type_of","validateMetadata","setVersion","_","countryCode","v1","v3","nonGeographic","nonGeographical","getCountryMetadata","countryCodes","countryCallingCodes","NumberingPlan","hasCallingCode","getNumberingPlanMetadata","getCountryCodeForCallingCode","nationalPrefixForParsing","nationalPrefixTransformRule","leadingDigits","_type","country_phone_code_to_countries","country_calling_codes","globalMetadataObject","_this","_getFormats","getDefaultCountryMetadataForRegion","map","Format","_getNationalPrefixFormattingRule","_nationalPrefixForParsing","_getNationalPrefixIsOptionalWhenFormatting","types","_type2","getType","Type","usesNationalPrefix","FIRST_GROUP_ONLY_PREFIX_PATTERN","getCountryCallingCode","version","v4","getExampleNumber","examples","withMetadataArgument","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","Reflect","construct","self","_assertThisInitialized","_possibleConstructorReturn","ReferenceError","_wrapNativeSuper","Class","_cache","Map","fn","Function","has","get","set","Wrapper","_construct","create","_setPrototypeOf","Parent","args","sham","Proxy","Boolean","valueOf","e","p","setPrototypeOf","__proto__","getPrototypeOf","ParseError","_Error","subClass","superClass","_inherits","_super","code","EXTN_PATTERN","DIGITS","parseDigit","character","parseIncompletePhoneNumber","string","parsePhoneNumberCharacter","prevParsedCharacters","CAPTURING_DIGIT_PATTERN","extractNationalNumber","_extractNationalNumbe","prefixPattern","prefixMatch","exec","capturedGroupsCount","hasCapturedGroups","prefixBeforeNationalNumber","possiblePositionOfTheFirstCapturedGroup","extractNationalNumberFromPossiblyIncompleteNumber","nationalNumberBefore","nationalNumberAfter","shouldHaveExtractedNationalPrefix","isPossibleIncompleteNationalNumber","extractCountryCallingCode","numberWithoutIDD","IDDPrefixPattern","matchedGroups","match","stripIddPrefix","_extractCountryCallin","possibleShorterNumber","possibleShorterNationalNumber","extractCountryCallingCodeFromInternationalNumberWithoutPlusSign","shorterNumber","_countryCallingCode","getCountryByCallingCode","nationalPhoneNumber","getCountryByNationalNumber","MAX_INPUT_STRING_LENGTH","PHONE_NUMBER_START_PATTERN","AFTER_PHONE_NUMBER_END_PATTERN","parse","defaultCountry","_parseInput","extract","throwOnError","startsAt","extractFormattedPhoneNumber","error","withExtensionStripped","start","numberWithoutExtension","matches","extractExtension","parseInput","formattedPhoneNumber","_parsePhoneNumber","defaultCallingCode","exactCountry","parsePhoneNumber","hasSelectedNumberingPlan","valid","extended","possible","_normalizeArguments","_Array$prototype$slic2","arg_1","arg_2","arg_3","arg_4","isObject","normalizeArguments","parsePhoneNumberWithError","func","_arguments"],"sourceRoot":""}
\ No newline at end of file
diff --git a/umd/898.prod.js b/umd/898.prod.js
index 1d43d0e8..c081f9af 100644
--- a/umd/898.prod.js
+++ b/umd/898.prod.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunktinode_webapp=globalThis.webpackChunktinode_webapp||[]).push([[898],{898:e=>{e.exports=JSON.parse('{"action_block_contact":"연락차단","action_cancel":"취소","action_clear_messages":"메시지지우기","action_delete_messages":"모든메시지지우기","action_leave_chat":"대화나누기","action_report_chat":"대화기록","archived_contacts":"보관된연락처({수})","badge_danger":"의심 많은","badge_owner":"소유자","badge_staff":"직원 관리하에","badge_verified":"확인 됨","badge_you":"당신","block_contact_warning":"이연락처를차단하시겠습니까?","blocked_contacts_link":"차단된연락처({수})","button_add_members":"회원추가","button_cancel":"취소","button_confirm":"확인","button_create":"작성","button_delete_account":"계정삭제","button_edit":"편집","button_logout":"로그아웃","button_ok":"OK","button_reset":"재설정","button_send_request":"요청보내기","button_sign_in":"로그인","button_sign_up":"가입","button_subscribe":"구독","button_update":"업데이트","cannot_initiate_file_upload":"파일업로드를시작할수없습니다.","channel":"채널","channel_prompt":"이 채널입니다","chat_invitation":"새로운대화를시작하도록초대되었습니다.무엇을하시겠습니까?","chat_invitation_accept":"수락","chat_invitation_block":"차단","chat_invitation_ignore":"무시","clear_messages_warning":"모든메시지를지우시겠습니까?실행취소할수없습니다.","code_doesnot_match":"코드가일치하지않습니다","contacts_not_found":"채팅이없습니다 ¯∖_(ツ)_/¯","contacts_not_found_short":"\'{문의}\'와일치하는연락처가없습니다.","credential_email_prompt":"등록이메일","delete_account":"계정삭제","delete_account_warning":"계정을삭제하시겠습니까?실행취소할수없습니다.","delete_messages_warning":"모든사람의모든메시지를삭제하시겠습니까?실행취소할수없습니다.","download_action":"다운로드","drafty_attachment":"부착","drafty_form":"형태:","drafty_image":"이미지","email_dative":"이메일","email_prompt":"이메일(예:hong@example.com)","enable_peers_messaging":"활성화","enter_confirmation_code_prompt":"{방법}으로보낸확인코드를입력하십시오:","error_invalid_id":"잘못된ID","file_attachment_too_large":"파일크기{크기}이(가){제한}제한을초과합니다.","forgot_password_link":"비밀번호를잊으셨습니까?","full_name_prompt":"전체이름(예:홍길동)","granted_permissions":"승낙하다","group_has_no_members":"회원없음","group_user_id_prompt":"그룹또는사용자ID","image_caption_prompt":"이미지설명","invalid_content":"잘못된내용","invalid_security_token":"유효하지않은보안토큰","label_client":"클라이언트: ","label_content_type":"컨텐츠유형: ","label_default_access_mode":"기본액세스모드: ","label_file_name":"파일이름: ","label_group_members":"그룹회원: ","label_incognito_mode":"시크릿모드: ","label_message_sound":"메시지소리: ","label_muting_topic":"음소거: ","label_other_user":"기타","label_password":"비밀번호","label_permissions":"권한: ","label_private":"개인코멘트","label_push_notifications":"통지경보: ","label_push_notifications_disabled":"통지경보(HTTPS필요): ","label_reset_password":"비밀번호재설정이메일보내기: ","label_sdk":"SDK:","label_server":"서버: ","label_server_address":"서버주소: ","label_server_to_use":"사용할서버:","label_size":"크기: ","label_topic_name":"이름","label_user_contacts":"연락처","label_user_id":"ID:","label_wire_transport":"와이어수송:","label_you":"당신: ","label_your_name":"이름","label_your_permissions":"권한: ","last_seen_timestamp":"마지막으로본","leave_chat_warning":"이대화를나가시겠습니까?","link_contact_us":"문의처","link_privacy_policy":"개인정보보호정책","link_terms_of_service":"서비스약관","login_prompt":"로그인","menu_item_archive_topic":"보관","menu_item_block":"차단","menu_item_clear_messages":"메시지지우기","menu_item_clear_messages_for_all":"모두지우기","menu_item_delete":"삭제","menu_item_delete_for_all":"모두삭제","menu_item_delete_topic":"삭제","menu_item_edit_permissions":"편집권한","menu_item_info":"정보","menu_item_member_delete":"제거","menu_item_mute":"음소거","menu_item_restore_topic":"복원","menu_item_send_retry":"다시시도","menu_item_unblock":"차단해제","menu_item_unmute":"음소거해제","message_sending":"보내기...","message_sending_failed":"실패","messages_not_readable":"메시지에 액세스 할 수 없습니다","messaging_disabled_prompt":"메시지비활성화","more_online_members":"+{넘침}더보기","new_message_prompt":"새메시지","new_password_placeholder":"새비밀번호입력","no_connection":"연결없음","no_contacts":"연락처가없습니다 (._.)","numeric_confirmation_code_prompt":"숫자만","online_now":"현재접속중","password_prompt":"비밀번호","password_unchanged_prompt":"변경되지않음","peers_messaging_disabled":"동료의메시지가비활성화되었습니다.","permission_admin":"승인({val})","permission_delete":"삭제({val})","permission_join":"참여({val})","permission_owner":"소유자({val})","permission_pres":"알림받기({val})","permission_read":"읽기({val})","permission_share":"공유({val})","permission_write":"쓰기({val})","phone_dative":"전화","private_editing_placeholder":"나만볼수있습니다","push_init_failed":"푸시알림을초기화하지못했습니다","reconnect_countdown":"연결이끊어졌습니다.다시연결하는중{초}…","reconnect_now":"지금시도","reload_update":"재로드","report_chat_warning":"이대화를차단하고기록하시겠습니까?","requested_permissions":"요청","save_attachment":"저장","search_for_contacts":"검색을사용하여연락처찾기","search_no_results":"검색결과가없습니다","search_placeholder":"email:alice@example.com,tel:17025550003...와같은목록","sidepanel_title_acc_notifications":"알림","sidepanel_title_acc_support":"지원","sidepanel_title_account_settings":"계정설정","sidepanel_title_archive":"보관된채팅","sidepanel_title_blocked":"차단된채팅","sidepanel_title_cred":"자격증명확인","sidepanel_title_login":"로그인","sidepanel_title_newtpk":"새채팅시작","sidepanel_title_register":"계정만들기","sidepanel_title_reset":"비밀번호재설정","sidepanel_title_settings":"설정","stay_logged_in":"로그인상태유지","tabtitle_find_user":"찾기","tabtitle_group_by_id":"id로","tabtitle_new_group":"새그룹","tags_editor_no_tags":"일부태그추가","tags_not_found":"태그가정의되지않았습니다.일부를추가하십시오.","title_all_contacts":"모든연락처","title_group_members":"그룹구성원","title_manage_tags":"관리","title_not_found":"찾을수없음","title_permissions":"권한","title_tag_manager":"태그(사용자검색)","topic_block_warning":"이대화를차단하시겠습니까?","topic_delete_warning":"이대화를삭제하시겠습니까?","topic_name_editing_placeholder":"그룹의자유형이름","unnamed_topic":"이름없는","update_available":"업데이트가능.","upload_finishing":"마무리...","user_not_found":"찾을수없음","description_editing_placeholder":"설명(선택 사항)","label_description":"설명","button_security":"보안","panel_title_crop":"드래그하여 조정","panel_title_general":"일반","panel_title_members":"구성원","panel_title_security":"보안","panel_title_info":"정보","permissions_anonymous":"익명","permissions_authenticated":"인증됨","topic_delete":"채팅 삭제","permissions_user":"사용자 권한","password_reset_email_sent":"보안 코드가 포함된 이메일이 전송되었습니다.","label_unarchive_topic":"보관됨:","menu_item_reply":"회신하다","menu_item_forward":"리디렉션","forward_to":"메시지를 리디렉션","forward_to_search_placeholder":"연락처 검색","label_new_password":"새 비밀번호","drafty_unknown":"지원되지 않음","calls_incoming":"수신 전화","calls_outgoing":"발신 전화","calls_you_label":"너","menu_item_video_call":"영상 통화","already_in_call":"당신은 이미 말하고 있습니다!","call_cancelled":"취소 된","call_missed":"부재중","call_declined":"통화 거부","call_disconnected":"연결 끊김","label_use_secure_connection":"보안 연결 사용","cred_confirmed_successfully":"성공적으로 확인됨","menu_item_edit":"편집","editing_message":"교정하다","message_edited_marker":" 수정됨","icon_title_add_image":"이미지 추가","icon_title_attach_file":"파일을 첨부","icon_title_delete":"녹음 삭제","icon_title_pause":"재생 일시 중지","icon_title_play":"녹음 재생","icon_title_record_voice":"음성 메시지 녹음","icon_title_resume":"재생 재개","icon_title_send":"문자 보내","drag_file":"여기로 파일 드래그","drafty_video":"녹화","call_in_progress":"통화 중","menu_item_audio_call":"부르다","unrecognized_video_format":"이 동영상의 형식을 인식할 수 없습니다.","loading_note":"로드 중...","password_i_have_code":"코드가 있습니다","label_reset_password_tel":"비밀번호 재설정을 위해 SMS 보내기","mobile_phone_number":"휴대전화 번호","password_reset_sms_sent":"보안 코드가 포함된 문자 메시지가 전송되었습니다.","mobile_number_required":"휴대전화 번호 필요"}')}}]);
\ No newline at end of file
+"use strict";(globalThis.webpackChunktinode_webapp=globalThis.webpackChunktinode_webapp||[]).push([[898],{898:e=>{e.exports=JSON.parse('{"action_block_contact":"연락차단","action_cancel":"취소","action_clear_messages":"메시지지우기","action_delete_messages":"모든메시지지우기","action_leave_chat":"대화나누기","action_report_chat":"대화기록","archived_contacts":"보관된연락처({수})","badge_danger":"의심 많은","badge_owner":"소유자","badge_staff":"직원 관리하에","badge_verified":"확인 됨","badge_you":"당신","block_contact_warning":"이연락처를차단하시겠습니까?","blocked_contacts_link":"차단된연락처({수})","button_add_members":"회원추가","button_cancel":"취소","button_confirm":"확인","button_create":"작성","button_delete_account":"계정삭제","button_edit":"편집","button_logout":"로그아웃","button_ok":"OK","button_reset":"재설정","button_send_request":"요청보내기","button_sign_in":"로그인","button_sign_up":"가입","button_subscribe":"구독","button_update":"업데이트","cannot_initiate_file_upload":"파일업로드를시작할수없습니다.","channel":"채널","channel_prompt":"이 채널입니다","chat_invitation":"새로운대화를시작하도록초대되었습니다.무엇을하시겠습니까?","chat_invitation_accept":"수락","chat_invitation_block":"차단","chat_invitation_ignore":"무시","clear_messages_warning":"모든메시지를지우시겠습니까?실행취소할수없습니다.","code_doesnot_match":"코드가일치하지않습니다","contacts_not_found":"채팅이없습니다 ¯∖_(ツ)_/¯","contacts_not_found_short":"\'{문의}\'와일치하는연락처가없습니다.","credential_email_prompt":"등록이메일","delete_account":"계정삭제","delete_account_warning":"계정을삭제하시겠습니까?실행취소할수없습니다.","delete_messages_warning":"모든사람의모든메시지를삭제하시겠습니까?실행취소할수없습니다.","download_action":"다운로드","drafty_attachment":"부착","drafty_form":"형태:","drafty_image":"이미지","email_dative":"이메일","email_prompt":"이메일(예:hong@example.com)","enable_peers_messaging":"활성화","enter_confirmation_code_prompt":"{방법}으로보낸확인코드를입력하십시오:","error_invalid_id":"잘못된ID","file_attachment_too_large":"파일크기{크기}이(가){제한}제한을초과합니다.","forgot_password_link":"비밀번호를잊으셨습니까?","full_name_prompt":"전체이름(예:홍길동)","granted_permissions":"승낙하다","group_has_no_members":"회원없음","group_user_id_prompt":"그룹또는사용자ID","image_caption_prompt":"이미지설명","invalid_content":"잘못된내용","invalid_security_token":"유효하지않은보안토큰","label_client":"클라이언트: ","label_content_type":"컨텐츠유형: ","label_default_access_mode":"기본액세스모드: ","label_file_name":"파일이름: ","label_group_members":"그룹회원: ","label_incognito_mode":"시크릿모드: ","label_message_sound":"메시지소리: ","label_muting_topic":"음소거: ","label_other_user":"기타","label_password":"비밀번호","label_permissions":"권한: ","label_private":"개인코멘트","label_push_notifications":"통지경보: ","label_push_notifications_disabled":"통지경보(HTTPS필요): ","label_reset_password":"비밀번호재설정이메일보내기: ","label_sdk":"SDK:","label_server":"서버: ","label_server_address":"서버주소: ","label_server_to_use":"사용할서버:","label_size":"크기: ","label_topic_name":"이름","label_user_contacts":"연락처","label_user_id":"ID:","label_wire_transport":"와이어수송:","label_you":"당신: ","label_your_name":"이름","label_your_permissions":"권한: ","last_seen_timestamp":"마지막으로본","leave_chat_warning":"이대화를나가시겠습니까?","link_contact_us":"문의처","link_privacy_policy":"개인정보보호정책","link_terms_of_service":"서비스약관","login_prompt":"로그인","menu_item_archive_topic":"보관","menu_item_block":"차단","menu_item_clear_messages":"메시지지우기","menu_item_clear_messages_for_all":"모두지우기","menu_item_delete":"삭제","menu_item_delete_for_all":"모두삭제","menu_item_delete_topic":"삭제","menu_item_edit_permissions":"편집권한","menu_item_info":"정보","menu_item_member_delete":"제거","menu_item_mute":"음소거","menu_item_restore_topic":"복원","menu_item_send_retry":"다시시도","menu_item_unblock":"차단해제","menu_item_unmute":"음소거해제","message_sending":"보내기...","message_sending_failed":"실패","messages_not_readable":"메시지에 액세스 할 수 없습니다","messaging_disabled_prompt":"메시지비활성화","more_online_members":"+{넘침}더보기","new_message_prompt":"새메시지","new_password_placeholder":"새비밀번호입력","no_connection":"연결없음","no_contacts":"연락처가없습니다 (._.)","numeric_confirmation_code_prompt":"숫자만","online_now":"현재접속중","password_prompt":"비밀번호","password_unchanged_prompt":"변경되지않음","peers_messaging_disabled":"동료의메시지가비활성화되었습니다.","permission_admin":"승인({val})","permission_delete":"삭제({val})","permission_join":"참여({val})","permission_owner":"소유자({val})","permission_pres":"알림받기({val})","permission_read":"읽기({val})","permission_share":"공유({val})","permission_write":"쓰기({val})","phone_dative":"전화","private_editing_placeholder":"나만볼수있습니다","push_init_failed":"푸시알림을초기화하지못했습니다","reconnect_countdown":"연결이끊어졌습니다.다시연결하는중{초}…","reconnect_now":"지금시도","reload_update":"재로드","report_chat_warning":"이대화를차단하고기록하시겠습니까?","requested_permissions":"요청","save_attachment":"저장","search_for_contacts":"검색을사용하여연락처찾기","search_no_results":"검색결과가없습니다","search_placeholder":"email:alice@example.com,tel:17025550003...와같은목록","sidepanel_title_acc_notifications":"알림","sidepanel_title_acc_support":"지원","sidepanel_title_account_settings":"계정설정","sidepanel_title_archive":"보관된채팅","sidepanel_title_blocked":"차단된채팅","sidepanel_title_cred":"자격증명확인","sidepanel_title_login":"로그인","sidepanel_title_newtpk":"새채팅시작","sidepanel_title_register":"계정만들기","sidepanel_title_reset":"비밀번호재설정","sidepanel_title_settings":"설정","stay_logged_in":"로그인상태유지","tabtitle_find_user":"찾기","tabtitle_group_by_id":"id로","tabtitle_new_group":"새그룹","tags_editor_no_tags":"일부태그추가","tags_not_found":"태그가정의되지않았습니다.일부를추가하십시오.","title_all_contacts":"모든연락처","title_group_members":"그룹구성원","title_manage_tags":"관리","title_not_found":"찾을수없음","title_permissions":"권한","title_tag_manager":"태그(사용자검색)","topic_block_warning":"이대화를차단하시겠습니까?","topic_delete_warning":"이대화를삭제하시겠습니까?","topic_name_editing_placeholder":"그룹의자유형이름","unnamed_topic":"이름없는","update_available":"업데이트가능.","upload_finishing":"마무리...","user_not_found":"찾을수없음","description_editing_placeholder":"설명(선택 사항)","label_description":"설명","button_security":"보안","panel_title_crop":"드래그하여 조정","panel_title_general":"일반","panel_title_members":"구성원","panel_title_security":"보안","panel_title_info":"정보","permissions_anonymous":"익명","permissions_authenticated":"인증됨","topic_delete":"채팅 삭제","permissions_user":"사용자 권한","password_reset_email_sent":"보안 코드가 포함된 이메일이 전송되었습니다.","label_unarchive_topic":"보관됨:","menu_item_reply":"회신하다","menu_item_forward":"리디렉션","forward_to":"메시지를 리디렉션","forward_to_search_placeholder":"연락처 검색","label_new_password":"새 비밀번호","drafty_unknown":"지원되지 않음","calls_incoming":"수신 전화","calls_outgoing":"발신 전화","calls_you_label":"너","menu_item_video_call":"영상 통화","already_in_call":"당신은 이미 말하고 있습니다!","call_cancelled":"취소 된","call_missed":"부재중","call_declined":"통화 거부","call_disconnected":"연결 끊김","label_use_secure_connection":"보안 연결 사용","cred_confirmed_successfully":"성공적으로 확인됨","menu_item_edit":"편집","editing_message":"교정하다","message_edited_marker":" 수정됨","icon_title_add_image":"이미지 추가","icon_title_attach_file":"파일을 첨부","icon_title_delete":"녹음 삭제","icon_title_pause":"재생 일시 중지","icon_title_play":"녹음 재생","icon_title_record_voice":"음성 메시지 녹음","icon_title_resume":"재생 재개","icon_title_send":"문자 보내","drag_file":"여기로 파일 드래그","drafty_video":"녹화","call_in_progress":"통화 중","menu_item_audio_call":"전화","unrecognized_video_format":"이 동영상의 형식을 인식할 수 없습니다.","loading_note":"로드 중...","password_i_have_code":"코드가 있습니다","label_reset_password_tel":"비밀번호 재설정을 위해 SMS 보내기","mobile_phone_number":"휴대전화 번호","password_reset_sms_sent":"보안 코드가 포함된 문자 메시지가 전송되었습니다.","mobile_number_required":"휴대전화 번호 필요"}')}}]);
\ No newline at end of file
diff --git a/umd/index.dev.js b/umd/index.dev.js
index 555c747a..8f50aa55 100644
--- a/umd/index.dev.js
+++ b/umd/index.dev.js
@@ -3580,7 +3580,7 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "PACKAGE_VERSION": () => (/* binding */ PACKAGE_VERSION)
/* harmony export */ });
-const PACKAGE_VERSION = "0.21.0-rc2";
+const PACKAGE_VERSION = "0.21.0";
/***/ }),
@@ -16435,7 +16435,7 @@ function isVersionServiceProvider(provider) {
}
const name$o = "@firebase/app";
-const version$1 = "0.9.1";
+const version$1 = "0.9.3";
/**
* @license
@@ -16502,7 +16502,7 @@ const name$2 = "@firebase/firestore";
const name$1 = "@firebase/firestore-compat";
const name = "firebase";
-const version = "9.16.0";
+const version = "9.17.1";
/**
* @license
@@ -17762,7 +17762,7 @@ __webpack_require__.r(__webpack_exports__);
const name = "@firebase/installations";
-const version = "0.6.1";
+const version = "0.6.3";
/**
* @license
@@ -20167,7 +20167,7 @@ async function messageEventListener(messaging, event) {
}
const name = "@firebase/messaging";
-const version = "0.12.1";
+const version = "0.12.3";
/**
* @license
@@ -20439,7 +20439,7 @@ __webpack_require__.r(__webpack_exports__);
var name = "firebase";
-var version = "9.16.0";
+var version = "9.17.1";
/**
* @license
diff --git a/umd/index.dev.js.map b/umd/index.dev.js.map
index dcdcdcd3..d041a48b 100644
--- a/umd/index.dev.js.map
+++ b/umd/index.dev.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.dev.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8BAA8B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAM;AACrB,eAAe,qBAAM;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,EAAE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,YAAY;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA,wCAAwC,MAAM;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,QAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA,2CAA2C,QAAQ,wEAAwE,KAAK;;AAEhI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,qBAAM;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,MAAM;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,iBAAiB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,aAAa,GAAG,KAAK;AACjD;AACA;AACA;AACA,+BAA+B,iBAAiB,IAAI,SAAS,GAAG,SAAS;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,IAAI;AACvD,KAAK;AACL;AACA,mBAAmB,MAAM,IAAI;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,GAAG;AACf;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,aAAa,WAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,yBAAyB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B,6BAA6B,QAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ,UAAU,SAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,EAAE;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEm8B;AACn8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtjE+C;AAGxC,MAAMC,QAAQ,GAAG,YAAY,IAAID,wDAAe,IAAI,MAAM,CAAC;AAG3D,MAAME,OAAO,GAAG,kCAAkC;AAGlD,MAAMC,WAAW,GAAG;EAACC,MAAM,EAAE,eAAe;EAAEC,KAAK,EAAE;AAAgB,CAAC;AAGtE,MAAMC,YAAY,GAAGH,WAAW,CAACC,MAAM;AAGvC,MAAMG,eAAe,GAAG,IAAI;AAG5B,MAAMC,cAAc,GAAG,KAAK;AAE5B,MAAMC,UAAU,GAAG,KAAK;AAGxB,MAAMC,cAAc,GAAG,CAAC;AAExB,MAAMC,cAAc,GAAG,EAAE;AAEzB,MAAMC,aAAa,GAAG,EAAE;AAGxB,MAAMC,uBAAuB,GAAG,OAAO;AAEvC,MAAMC,mBAAmB,GAAG,SAAS;AAErC,MAAMC,mBAAmB,GAAG,IAAI;AAGhC,MAAMC,cAAc,GAAG,GAAG;AAI1B,MAAMC,gBAAgB,GAAG,GAAG;AAE5B,MAAMC,QAAQ,GAAG,EAAE;AAInB,MAAMC,WAAW,GAAG,GAAG;AAGvB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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,gBAAgB,sCAAsC,SAAS;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,cAAc;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,SAAS;AAClE;AACA,uEAAuE,SAAS;AAChF,0EAA0E,SAAS;AACnF,sEAAsE,SAAS;AAC/E;AACA,6EAA6E,SAAS;AACtF;AACA;AACA,iGAAiG,sBAAsB;AACvH,oGAAoG,sBAAsB;AAC1H,oGAAoG,sBAAsB;AAC1H,2GAA2G,sBAAsB;AACjI;AACA,0BAA0B,wDAAY;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,uCAAuC;AACvC;AACA;AACA;AACA;AACA,wCAAwC,0DAAS;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,qBAAqB;AACxG;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,sBAAsB;AACtB;AACA,mCAAmC,iEAAiE;AACpG;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,0BAA0B,mEAAmB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yDAAS;AACrB,YAAY,yDAAS;AACrB;AACA;AACA;AACA,uFAAuF,eAAe;AACtG;AACA;AACA,0BAA0B,mEAAkB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iCAAiC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,eAAe;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA,2CAA2C,QAAQ,kBAAkB,QAAQ;AAC7E;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA,2BAA2B,0DAAS,IAAI,QAAQ,oBAAoB,kBAAkB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,mEAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,6DAAa;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2CAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,yDAAa;AACtC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,yDAAa;AACtC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS,GAAG,kBAAkB;AAC5C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,aAAa;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kCAAkC;AAClD,6BAA6B,6EAA6B,kBAAkB,0CAA0C;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oEAAoB;AACjC;AACA;AACA;AACA,mBAAmB,yEAAyB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,6EAA6B;AACxC;AACA,qBAAqB,yCAAyC;AAC9D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0DAAS;AACpC,2BAA2B,0DAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE2R;AAC3R;;;;;;;;;;;;;;;;;;ACp6B0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,oDAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,WAAW;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB,eAAe,UAAU;AAC1F;AACA;AACA,yCAAyC,WAAW;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,wCAAwC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,gBAAgB,eAAe;AAC/B;AACA;AACA,2BAA2B,UAAU,GAAG,qBAAqB;AAC7D;AACA;AACA,qCAAqC,WAAW;AAChD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kCAAkC;AAC/D;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4GAA4G;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,gBAAgB,mCAAmC,UAAU;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEmD;AACnD;;;;;;;;;;;;;;;;;;;;;;;ACxZ0F;AAC1C;AACa;AAChC;;AAE7B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,QAAQ;AACrC;AACA;AACA,gDAAgD;AAChD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iHAAiH,WAAW;AAC5H;AACA;AACA,yDAAyD,cAAc,4BAA4B,cAAc,cAAc,GAAG,eAAe;AACjJ;AACA;AACA;AACA,0BAA0B,wDAAY;AACtC;AACA;AACA,6BAA6B,yDAAa;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,WAAW;AAC/C,cAAc,sBAAsB,YAAY,UAAU;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,sBAAsB,QAAQ;AAC9B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,yCAAyC,cAAc;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,uBAAuB,EAAE,aAAa;AACpD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,qCAAqC,IAAI,KAAK;AACzF;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,GAAG;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,kBAAkB,GAAG,gBAAgB;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,UAAU;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2CAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yCAAyC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,qCAAqC;AAC/E;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,KAAK;AACxD,cAAc,oCAAoC,GAAG,IAAI;AACzD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,eAAe,aAAa,oDAAoD;AACjI;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,uEAAuE,wBAAwB,WAAW;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,wBAAwB,aAAa,oDAAoD;AACpK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,eAAe,gCAAgC;AACxF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yCAAyC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,KAAK;AAC7C,cAAc,oCAAoC,GAAG,IAAI;AACzD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD,IAAI,iCAAiC;AACrC,qBAAqB,iCAAiC;AACtD;AACA;AACA;AACA,gCAAgC,qDAAM;AACtC,8BAA8B,2DAAY;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,2DAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,2DAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iEAAkB,KAAK,0DAAS;AACpC,IAAI,iEAAkB,KAAK,0DAAS;AACpC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,8DAAe;AACf;AACA,8DAAe;;AAE+D;AAC9E;;;;;;;;;;;;;;;;;;ACjoCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4BAA4B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,KAAK,cAAc;AACnD;AACA;AACA,sFAAsF,QAAQ;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,IAAI;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAE4D;AAC5D;;;;;;;;;;;;;;;;;;;;;;;;AC1NiC;AACe;AACT;AAC+F;AAC5C;;AAE1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sCAAsC;;AAEvC;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kCAAkC;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,2CAAM;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,UAAU,6CAAQ;AAClB,UAAU,6CAAQ;AAClB,UAAU,6CAAQ;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2CAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iHAAiH,WAAW;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA,gJAAgJ,qBAAqB;AACrK,+HAA+H,WAAW;AAC1I;AACA;AACA,yBAAyB,WAAW;AACpC,wHAAwH,WAAW;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,wDAAY;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,4CAA4C,GAAG,mBAAmB;AAC1G;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,4CAA4C,GAAG,MAAM;AAC7F;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,uBAAuB,WAAW;AAClC,cAAc,SAAS,YAAY,UAAU;AAC7C;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA,qDAAqD,UAAU;AAC/D,KAAK;AACL;AACA,mBAAmB,kCAAkC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,mBAAmB,6CAA6C;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iEAAkB,KAAK,0DAAS;AACpC,IAAI,iEAAkB,KAAK,0DAAS;AACpC,IAAI,8DAAe;AACnB;AACA,IAAI,8DAAe;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,yEAAyB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,oEAAoB;AAC5B,QAAQ,iEAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,qDAAM;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,WAAW,2DAAY,CAAC,kEAAkB;AAC1C;AACA;AACA,mBAAmB,iBAAiB;AACpC,gFAAgF;AAChF;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kEAAkB;AAClC;AACA;AACA;AACA,wDAAwD,iBAAiB;AACzE,QAAQ,iBAAiB;AACzB;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kEAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kEAAkB;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEoH;AACpH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjtCgD;AAClB;;AAE9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAAe;AACf;;;;;;;;;;;;;;;;;;;;ACvBoC;AACpC;;;;;;;;;;;;;;;;;;;ACDmE;AACN;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,yCAAyC,IAAI;AAC9E;AACA,wBAAwB,qDAAI;AAC5B;AACA;AACA,oBAAoB,qDAAI,sDAAsD,qDAAI;AAClF,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,UAAU,IAAI;AACxC;AACA;AACA;AACA,WAAW,qDAAI;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAY;AACZ;AACA;AACA;AACA,CAAC;;AAE2B;;;;;;;;;;;;;;;;;;;ACvF5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEqG;;;;;;;UCxLrG;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;;;;WCzBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,sDAAsD;WACtD,sCAAsC,iEAAiE;WACvG;WACA;WACA;WACA;WACA;WACA;;;;;WCzBA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;;;;;WCRA;WACA;WACA;WACA;WACA;;;;;WCJA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA,CAAC;;;;;WCPD;;;;;WCAA;WACA;WACA;WACA;WACA,uBAAuB,4BAA4B;WACnD;WACA;WACA;WACA,iBAAiB,oBAAoB;WACrC;WACA,mGAAmG,YAAY;WAC/G;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;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","sources":["webpack://tinode-webapp/./node_modules/@firebase/util/dist/index.esm2017.js","webpack://tinode-webapp/./src/config.js","webpack://tinode-webapp/./src/constants.js","webpack://tinode-webapp/./src/lib/blob-helpers.js","webpack://tinode-webapp/./src/lib/formatters.js","webpack://tinode-webapp/./src/lib/host-name.js","webpack://tinode-webapp/./src/lib/local-storage.js","webpack://tinode-webapp/./src/lib/navigation.js","webpack://tinode-webapp/./src/lib/strformat.js","webpack://tinode-webapp/./src/lib/utils.js","webpack://tinode-webapp/./src/version.js","webpack://tinode-webapp/./src/views/acc-notifications-view.jsx","webpack://tinode-webapp/./src/views/acc-security-view.jsx","webpack://tinode-webapp/./src/views/acc-support-view.jsx","webpack://tinode-webapp/./src/views/contacts-view.jsx","webpack://tinode-webapp/./src/views/info-view.jsx","webpack://tinode-webapp/./src/views/login-view.jsx","webpack://tinode-webapp/./src/views/logo-view.jsx","webpack://tinode-webapp/./src/views/messages-view.jsx","webpack://tinode-webapp/./src/views/new-topic-view.jsx","webpack://tinode-webapp/./src/views/settings-view.jsx","webpack://tinode-webapp/./src/views/sidepanel-view.jsx","webpack://tinode-webapp/./src/views/tinode-web.jsx","webpack://tinode-webapp/./src/views/topic-common-view.jsx","webpack://tinode-webapp/./src/views/validation-view.jsx","webpack://tinode-webapp/./src/widgets/alert.jsx","webpack://tinode-webapp/./src/widgets/attachment.jsx","webpack://tinode-webapp/./src/widgets/audio-player.jsx","webpack://tinode-webapp/./src/widgets/avatar-crop.jsx","webpack://tinode-webapp/./src/widgets/avatar-upload.jsx","webpack://tinode-webapp/./src/widgets/badge-list.jsx","webpack://tinode-webapp/./src/widgets/button-back.jsx","webpack://tinode-webapp/./src/widgets/call-incoming.jsx","webpack://tinode-webapp/./src/widgets/call-message.jsx","webpack://tinode-webapp/./src/widgets/call-panel.jsx","webpack://tinode-webapp/./src/widgets/call-status.jsx","webpack://tinode-webapp/./src/widgets/chat-message.jsx","webpack://tinode-webapp/./src/widgets/checkbox.jsx","webpack://tinode-webapp/./src/widgets/chip-input.jsx","webpack://tinode-webapp/./src/widgets/chip.jsx","webpack://tinode-webapp/./src/widgets/contact-action.jsx","webpack://tinode-webapp/./src/widgets/contact-badges.jsx","webpack://tinode-webapp/./src/widgets/contact-list.jsx","webpack://tinode-webapp/./src/widgets/contact.jsx","webpack://tinode-webapp/./src/widgets/context-menu.jsx","webpack://tinode-webapp/./src/widgets/cropper.jsx","webpack://tinode-webapp/./src/widgets/doc-preview.jsx","webpack://tinode-webapp/./src/widgets/error-panel.jsx","webpack://tinode-webapp/./src/widgets/file-progress.jsx","webpack://tinode-webapp/./src/widgets/forward-dialog.jsx","webpack://tinode-webapp/./src/widgets/group-manager.jsx","webpack://tinode-webapp/./src/widgets/group-subs.jsx","webpack://tinode-webapp/./src/widgets/host-selector.jsx","webpack://tinode-webapp/./src/widgets/image-preview.jsx","webpack://tinode-webapp/./src/widgets/in-place-edit.jsx","webpack://tinode-webapp/./src/widgets/inline-video.jsx","webpack://tinode-webapp/./src/widgets/invitation.jsx","webpack://tinode-webapp/./src/widgets/lazy-image.jsx","webpack://tinode-webapp/./src/widgets/letter-tile.jsx","webpack://tinode-webapp/./src/widgets/load-spinner.jsx","webpack://tinode-webapp/./src/widgets/menu-cancel.jsx","webpack://tinode-webapp/./src/widgets/menu-contacts.jsx","webpack://tinode-webapp/./src/widgets/menu-start.jsx","webpack://tinode-webapp/./src/widgets/meta-message.jsx","webpack://tinode-webapp/./src/widgets/new-topic-by-id.jsx","webpack://tinode-webapp/./src/widgets/new-topic-group.jsx","webpack://tinode-webapp/./src/widgets/permissions-editor.jsx","webpack://tinode-webapp/./src/widgets/received-marker.jsx","webpack://tinode-webapp/./src/widgets/search-contacts.jsx","webpack://tinode-webapp/./src/widgets/send-message.jsx","webpack://tinode-webapp/./src/widgets/side-navbar.jsx","webpack://tinode-webapp/./src/widgets/tag-manager.jsx","webpack://tinode-webapp/./src/widgets/topic-desc-edit.jsx","webpack://tinode-webapp/./src/widgets/topic-security.jsx","webpack://tinode-webapp/./src/widgets/unread-badge.jsx","webpack://tinode-webapp/./src/widgets/uploading-image.jsx","webpack://tinode-webapp/./src/widgets/video-preview.jsx","webpack://tinode-webapp/./src/widgets/visible-password.jsx","webpack://tinode-webapp/./node_modules/react-dom/client.js","webpack://tinode-webapp/external var \"React\"","webpack://tinode-webapp/external var \"ReactDOM\"","webpack://tinode-webapp/external var \"ReactIntl\"","webpack://tinode-webapp/external var \"Tinode\"","webpack://tinode-webapp/./node_modules/@firebase/app/dist/esm/index.esm2017.js","webpack://tinode-webapp/./node_modules/@firebase/component/dist/esm/index.esm2017.js","webpack://tinode-webapp/./node_modules/@firebase/installations/dist/esm/index.esm2017.js","webpack://tinode-webapp/./node_modules/@firebase/logger/dist/esm/index.esm2017.js","webpack://tinode-webapp/./node_modules/@firebase/messaging/dist/esm/index.esm2017.js","webpack://tinode-webapp/./node_modules/firebase/app/dist/esm/index.esm.js","webpack://tinode-webapp/./node_modules/firebase/messaging/dist/esm/index.esm.js","webpack://tinode-webapp/./node_modules/idb/build/index.js","webpack://tinode-webapp/./node_modules/idb/build/wrap-idb-value.js","webpack://tinode-webapp/webpack/bootstrap","webpack://tinode-webapp/webpack/runtime/compat get default export","webpack://tinode-webapp/webpack/runtime/create fake namespace object","webpack://tinode-webapp/webpack/runtime/define property getters","webpack://tinode-webapp/webpack/runtime/ensure chunk","webpack://tinode-webapp/webpack/runtime/get javascript chunk filename","webpack://tinode-webapp/webpack/runtime/global","webpack://tinode-webapp/webpack/runtime/hasOwnProperty shorthand","webpack://tinode-webapp/webpack/runtime/load script","webpack://tinode-webapp/webpack/runtime/make namespace object","webpack://tinode-webapp/webpack/runtime/publicPath","webpack://tinode-webapp/webpack/runtime/jsonp chunk loading","webpack://tinode-webapp/./src/index.js"],"sourcesContent":["/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview Firebase constants. Some of these (@defines) can be overridden at compile-time.\r\n */\r\nconst CONSTANTS = {\r\n /**\r\n * @define {boolean} Whether this is the client Node.js SDK.\r\n */\r\n NODE_CLIENT: false,\r\n /**\r\n * @define {boolean} Whether this is the Admin Node.js SDK.\r\n */\r\n NODE_ADMIN: false,\r\n /**\r\n * Firebase SDK Version\r\n */\r\n SDK_VERSION: '${JSCORE_VERSION}'\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Throws an error if the provided assertion is falsy\r\n */\r\nconst assert = function (assertion, message) {\r\n if (!assertion) {\r\n throw assertionError(message);\r\n }\r\n};\r\n/**\r\n * Returns an Error object suitable for throwing.\r\n */\r\nconst assertionError = function (message) {\r\n return new Error('Firebase Database (' +\r\n CONSTANTS.SDK_VERSION +\r\n ') INTERNAL ASSERT FAILED: ' +\r\n message);\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst stringToByteArray$1 = function (str) {\r\n // TODO(user): Use native implementations if/when available\r\n const out = [];\r\n let p = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n let c = str.charCodeAt(i);\r\n if (c < 128) {\r\n out[p++] = c;\r\n }\r\n else if (c < 2048) {\r\n out[p++] = (c >> 6) | 192;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else if ((c & 0xfc00) === 0xd800 &&\r\n i + 1 < str.length &&\r\n (str.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\r\n // Surrogate Pair\r\n c = 0x10000 + ((c & 0x03ff) << 10) + (str.charCodeAt(++i) & 0x03ff);\r\n out[p++] = (c >> 18) | 240;\r\n out[p++] = ((c >> 12) & 63) | 128;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else {\r\n out[p++] = (c >> 12) | 224;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n }\r\n return out;\r\n};\r\n/**\r\n * Turns an array of numbers into the string given by the concatenation of the\r\n * characters to which the numbers correspond.\r\n * @param bytes Array of numbers representing characters.\r\n * @return Stringification of the array.\r\n */\r\nconst byteArrayToString = function (bytes) {\r\n // TODO(user): Use native implementations if/when available\r\n const out = [];\r\n let pos = 0, c = 0;\r\n while (pos < bytes.length) {\r\n const c1 = bytes[pos++];\r\n if (c1 < 128) {\r\n out[c++] = String.fromCharCode(c1);\r\n }\r\n else if (c1 > 191 && c1 < 224) {\r\n const c2 = bytes[pos++];\r\n out[c++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));\r\n }\r\n else if (c1 > 239 && c1 < 365) {\r\n // Surrogate Pair\r\n const c2 = bytes[pos++];\r\n const c3 = bytes[pos++];\r\n const c4 = bytes[pos++];\r\n const u = (((c1 & 7) << 18) | ((c2 & 63) << 12) | ((c3 & 63) << 6) | (c4 & 63)) -\r\n 0x10000;\r\n out[c++] = String.fromCharCode(0xd800 + (u >> 10));\r\n out[c++] = String.fromCharCode(0xdc00 + (u & 1023));\r\n }\r\n else {\r\n const c2 = bytes[pos++];\r\n const c3 = bytes[pos++];\r\n out[c++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\r\n }\r\n }\r\n return out.join('');\r\n};\r\n// We define it as an object literal instead of a class because a class compiled down to es5 can't\r\n// be treeshaked. https://github.com/rollup/rollup/issues/1691\r\n// Static lookup maps, lazily populated by init_()\r\nconst base64 = {\r\n /**\r\n * Maps bytes to characters.\r\n */\r\n byteToCharMap_: null,\r\n /**\r\n * Maps characters to bytes.\r\n */\r\n charToByteMap_: null,\r\n /**\r\n * Maps bytes to websafe characters.\r\n * @private\r\n */\r\n byteToCharMapWebSafe_: null,\r\n /**\r\n * Maps websafe characters to bytes.\r\n * @private\r\n */\r\n charToByteMapWebSafe_: null,\r\n /**\r\n * Our default alphabet, shared between\r\n * ENCODED_VALS and ENCODED_VALS_WEBSAFE\r\n */\r\n ENCODED_VALS_BASE: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789',\r\n /**\r\n * Our default alphabet. Value 64 (=) is special; it means \"nothing.\"\r\n */\r\n get ENCODED_VALS() {\r\n return this.ENCODED_VALS_BASE + '+/=';\r\n },\r\n /**\r\n * Our websafe alphabet.\r\n */\r\n get ENCODED_VALS_WEBSAFE() {\r\n return this.ENCODED_VALS_BASE + '-_.';\r\n },\r\n /**\r\n * Whether this browser supports the atob and btoa functions. This extension\r\n * started at Mozilla but is now implemented by many browsers. We use the\r\n * ASSUME_* variables to avoid pulling in the full useragent detection library\r\n * but still allowing the standard per-browser compilations.\r\n *\r\n */\r\n HAS_NATIVE_SUPPORT: typeof atob === 'function',\r\n /**\r\n * Base64-encode an array of bytes.\r\n *\r\n * @param input An array of bytes (numbers with\r\n * value in [0, 255]) to encode.\r\n * @param webSafe Boolean indicating we should use the\r\n * alternative alphabet.\r\n * @return The base64 encoded string.\r\n */\r\n encodeByteArray(input, webSafe) {\r\n if (!Array.isArray(input)) {\r\n throw Error('encodeByteArray takes an array as a parameter');\r\n }\r\n this.init_();\r\n const byteToCharMap = webSafe\r\n ? this.byteToCharMapWebSafe_\r\n : this.byteToCharMap_;\r\n const output = [];\r\n for (let i = 0; i < input.length; i += 3) {\r\n const byte1 = input[i];\r\n const haveByte2 = i + 1 < input.length;\r\n const byte2 = haveByte2 ? input[i + 1] : 0;\r\n const haveByte3 = i + 2 < input.length;\r\n const byte3 = haveByte3 ? input[i + 2] : 0;\r\n const outByte1 = byte1 >> 2;\r\n const outByte2 = ((byte1 & 0x03) << 4) | (byte2 >> 4);\r\n let outByte3 = ((byte2 & 0x0f) << 2) | (byte3 >> 6);\r\n let outByte4 = byte3 & 0x3f;\r\n if (!haveByte3) {\r\n outByte4 = 64;\r\n if (!haveByte2) {\r\n outByte3 = 64;\r\n }\r\n }\r\n output.push(byteToCharMap[outByte1], byteToCharMap[outByte2], byteToCharMap[outByte3], byteToCharMap[outByte4]);\r\n }\r\n return output.join('');\r\n },\r\n /**\r\n * Base64-encode a string.\r\n *\r\n * @param input A string to encode.\r\n * @param webSafe If true, we should use the\r\n * alternative alphabet.\r\n * @return The base64 encoded string.\r\n */\r\n encodeString(input, webSafe) {\r\n // Shortcut for Mozilla browsers that implement\r\n // a native base64 encoder in the form of \"btoa/atob\"\r\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\r\n return btoa(input);\r\n }\r\n return this.encodeByteArray(stringToByteArray$1(input), webSafe);\r\n },\r\n /**\r\n * Base64-decode a string.\r\n *\r\n * @param input to decode.\r\n * @param webSafe True if we should use the\r\n * alternative alphabet.\r\n * @return string representing the decoded value.\r\n */\r\n decodeString(input, webSafe) {\r\n // Shortcut for Mozilla browsers that implement\r\n // a native base64 encoder in the form of \"btoa/atob\"\r\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\r\n return atob(input);\r\n }\r\n return byteArrayToString(this.decodeStringToByteArray(input, webSafe));\r\n },\r\n /**\r\n * Base64-decode a string.\r\n *\r\n * In base-64 decoding, groups of four characters are converted into three\r\n * bytes. If the encoder did not apply padding, the input length may not\r\n * be a multiple of 4.\r\n *\r\n * In this case, the last group will have fewer than 4 characters, and\r\n * padding will be inferred. If the group has one or two characters, it decodes\r\n * to one byte. If the group has three characters, it decodes to two bytes.\r\n *\r\n * @param input Input to decode.\r\n * @param webSafe True if we should use the web-safe alphabet.\r\n * @return bytes representing the decoded value.\r\n */\r\n decodeStringToByteArray(input, webSafe) {\r\n this.init_();\r\n const charToByteMap = webSafe\r\n ? this.charToByteMapWebSafe_\r\n : this.charToByteMap_;\r\n const output = [];\r\n for (let i = 0; i < input.length;) {\r\n const byte1 = charToByteMap[input.charAt(i++)];\r\n const haveByte2 = i < input.length;\r\n const byte2 = haveByte2 ? charToByteMap[input.charAt(i)] : 0;\r\n ++i;\r\n const haveByte3 = i < input.length;\r\n const byte3 = haveByte3 ? charToByteMap[input.charAt(i)] : 64;\r\n ++i;\r\n const haveByte4 = i < input.length;\r\n const byte4 = haveByte4 ? charToByteMap[input.charAt(i)] : 64;\r\n ++i;\r\n if (byte1 == null || byte2 == null || byte3 == null || byte4 == null) {\r\n throw Error();\r\n }\r\n const outByte1 = (byte1 << 2) | (byte2 >> 4);\r\n output.push(outByte1);\r\n if (byte3 !== 64) {\r\n const outByte2 = ((byte2 << 4) & 0xf0) | (byte3 >> 2);\r\n output.push(outByte2);\r\n if (byte4 !== 64) {\r\n const outByte3 = ((byte3 << 6) & 0xc0) | byte4;\r\n output.push(outByte3);\r\n }\r\n }\r\n }\r\n return output;\r\n },\r\n /**\r\n * Lazy static initialization function. Called before\r\n * accessing any of the static map variables.\r\n * @private\r\n */\r\n init_() {\r\n if (!this.byteToCharMap_) {\r\n this.byteToCharMap_ = {};\r\n this.charToByteMap_ = {};\r\n this.byteToCharMapWebSafe_ = {};\r\n this.charToByteMapWebSafe_ = {};\r\n // We want quick mappings back and forth, so we precompute two maps.\r\n for (let i = 0; i < this.ENCODED_VALS.length; i++) {\r\n this.byteToCharMap_[i] = this.ENCODED_VALS.charAt(i);\r\n this.charToByteMap_[this.byteToCharMap_[i]] = i;\r\n this.byteToCharMapWebSafe_[i] = this.ENCODED_VALS_WEBSAFE.charAt(i);\r\n this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[i]] = i;\r\n // Be forgiving when decoding and correctly decode both encodings.\r\n if (i >= this.ENCODED_VALS_BASE.length) {\r\n this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(i)] = i;\r\n this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(i)] = i;\r\n }\r\n }\r\n }\r\n }\r\n};\r\n/**\r\n * URL-safe base64 encoding\r\n */\r\nconst base64Encode = function (str) {\r\n const utf8Bytes = stringToByteArray$1(str);\r\n return base64.encodeByteArray(utf8Bytes, true);\r\n};\r\n/**\r\n * URL-safe base64 encoding (without \".\" padding in the end).\r\n * e.g. Used in JSON Web Token (JWT) parts.\r\n */\r\nconst base64urlEncodeWithoutPadding = function (str) {\r\n // Use base64url encoding and remove padding in the end (dot characters).\r\n return base64Encode(str).replace(/\\./g, '');\r\n};\r\n/**\r\n * URL-safe base64 decoding\r\n *\r\n * NOTE: DO NOT use the global atob() function - it does NOT support the\r\n * base64Url variant encoding.\r\n *\r\n * @param str To be decoded\r\n * @return Decoded result, if possible\r\n */\r\nconst base64Decode = function (str) {\r\n try {\r\n return base64.decodeString(str, true);\r\n }\r\n catch (e) {\r\n console.error('base64Decode failed: ', e);\r\n }\r\n return null;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Do a deep-copy of basic JavaScript Objects or Arrays.\r\n */\r\nfunction deepCopy(value) {\r\n return deepExtend(undefined, value);\r\n}\r\n/**\r\n * Copy properties from source to target (recursively allows extension\r\n * of Objects and Arrays). Scalar values in the target are over-written.\r\n * If target is undefined, an object of the appropriate type will be created\r\n * (and returned).\r\n *\r\n * We recursively copy all child properties of plain Objects in the source- so\r\n * that namespace- like dictionaries are merged.\r\n *\r\n * Note that the target can be a function, in which case the properties in\r\n * the source Object are copied onto it as static properties of the Function.\r\n *\r\n * Note: we don't merge __proto__ to prevent prototype pollution\r\n */\r\nfunction deepExtend(target, source) {\r\n if (!(source instanceof Object)) {\r\n return source;\r\n }\r\n switch (source.constructor) {\r\n case Date:\r\n // Treat Dates like scalars; if the target date object had any child\r\n // properties - they will be lost!\r\n const dateValue = source;\r\n return new Date(dateValue.getTime());\r\n case Object:\r\n if (target === undefined) {\r\n target = {};\r\n }\r\n break;\r\n case Array:\r\n // Always copy the array source and overwrite the target.\r\n target = [];\r\n break;\r\n default:\r\n // Not a plain Object - treat it as a scalar.\r\n return source;\r\n }\r\n for (const prop in source) {\r\n // use isValidKey to guard against prototype pollution. See https://snyk.io/vuln/SNYK-JS-LODASH-450202\r\n if (!source.hasOwnProperty(prop) || !isValidKey(prop)) {\r\n continue;\r\n }\r\n target[prop] = deepExtend(target[prop], source[prop]);\r\n }\r\n return target;\r\n}\r\nfunction isValidKey(key) {\r\n return key !== '__proto__';\r\n}\n\n/**\r\n * @license\r\n * Copyright 2022 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Polyfill for `globalThis` object.\r\n * @returns the `globalThis` object for the given environment.\r\n * @public\r\n */\r\nfunction getGlobal() {\r\n if (typeof self !== 'undefined') {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined') {\r\n return window;\r\n }\r\n if (typeof global !== 'undefined') {\r\n return global;\r\n }\r\n throw new Error('Unable to locate global object.');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2022 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst getDefaultsFromGlobal = () => getGlobal().__FIREBASE_DEFAULTS__;\r\n/**\r\n * Attempt to read defaults from a JSON string provided to\r\n * process(.)env(.)__FIREBASE_DEFAULTS__ or a JSON file whose path is in\r\n * process(.)env(.)__FIREBASE_DEFAULTS_PATH__\r\n * The dots are in parens because certain compilers (Vite?) cannot\r\n * handle seeing that variable in comments.\r\n * See https://github.com/firebase/firebase-js-sdk/issues/6838\r\n */\r\nconst getDefaultsFromEnvVariable = () => {\r\n if (typeof process === 'undefined' || typeof process.env === 'undefined') {\r\n return;\r\n }\r\n const defaultsJsonString = process.env.__FIREBASE_DEFAULTS__;\r\n if (defaultsJsonString) {\r\n return JSON.parse(defaultsJsonString);\r\n }\r\n};\r\nconst getDefaultsFromCookie = () => {\r\n if (typeof document === 'undefined') {\r\n return;\r\n }\r\n let match;\r\n try {\r\n match = document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/);\r\n }\r\n catch (e) {\r\n // Some environments such as Angular Universal SSR have a\r\n // `document` object but error on accessing `document.cookie`.\r\n return;\r\n }\r\n const decoded = match && base64Decode(match[1]);\r\n return decoded && JSON.parse(decoded);\r\n};\r\n/**\r\n * Get the __FIREBASE_DEFAULTS__ object. It checks in order:\r\n * (1) if such an object exists as a property of `globalThis`\r\n * (2) if such an object was provided on a shell environment variable\r\n * (3) if such an object exists in a cookie\r\n * @public\r\n */\r\nconst getDefaults = () => {\r\n try {\r\n return (getDefaultsFromGlobal() ||\r\n getDefaultsFromEnvVariable() ||\r\n getDefaultsFromCookie());\r\n }\r\n catch (e) {\r\n /**\r\n * Catch-all for being unable to get __FIREBASE_DEFAULTS__ due\r\n * to any environment case we have not accounted for. Log to\r\n * info instead of swallowing so we can find these unknown cases\r\n * and add paths for them if needed.\r\n */\r\n console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`);\r\n return;\r\n }\r\n};\r\n/**\r\n * Returns emulator host stored in the __FIREBASE_DEFAULTS__ object\r\n * for the given product.\r\n * @returns a URL host formatted like `127.0.0.1:9999` or `[::1]:4000` if available\r\n * @public\r\n */\r\nconst getDefaultEmulatorHost = (productName) => { var _a, _b; return (_b = (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a.emulatorHosts) === null || _b === void 0 ? void 0 : _b[productName]; };\r\n/**\r\n * Returns emulator hostname and port stored in the __FIREBASE_DEFAULTS__ object\r\n * for the given product.\r\n * @returns a pair of hostname and port like `[\"::1\", 4000]` if available\r\n * @public\r\n */\r\nconst getDefaultEmulatorHostnameAndPort = (productName) => {\r\n const host = getDefaultEmulatorHost(productName);\r\n if (!host) {\r\n return undefined;\r\n }\r\n const separatorIndex = host.lastIndexOf(':'); // Finding the last since IPv6 addr also has colons.\r\n if (separatorIndex <= 0 || separatorIndex + 1 === host.length) {\r\n throw new Error(`Invalid host ${host} with no separate hostname and port!`);\r\n }\r\n // eslint-disable-next-line no-restricted-globals\r\n const port = parseInt(host.substring(separatorIndex + 1), 10);\r\n if (host[0] === '[') {\r\n // Bracket-quoted `[ipv6addr]:port` => return \"ipv6addr\" (without brackets).\r\n return [host.substring(1, separatorIndex - 1), port];\r\n }\r\n else {\r\n return [host.substring(0, separatorIndex), port];\r\n }\r\n};\r\n/**\r\n * Returns Firebase app config stored in the __FIREBASE_DEFAULTS__ object.\r\n * @public\r\n */\r\nconst getDefaultAppConfig = () => { var _a; return (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a.config; };\r\n/**\r\n * Returns an experimental setting on the __FIREBASE_DEFAULTS__ object (properties\r\n * prefixed by \"_\")\r\n * @public\r\n */\r\nconst getExperimentalSetting = (name) => { var _a; return (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a[`_${name}`]; };\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nclass Deferred {\r\n constructor() {\r\n this.reject = () => { };\r\n this.resolve = () => { };\r\n this.promise = new Promise((resolve, reject) => {\r\n this.resolve = resolve;\r\n this.reject = reject;\r\n });\r\n }\r\n /**\r\n * Our API internals are not promiseified and cannot because our callback APIs have subtle expectations around\r\n * invoking promises inline, which Promises are forbidden to do. This method accepts an optional node-style callback\r\n * and returns a node-style callback which will resolve or reject the Deferred's promise.\r\n */\r\n wrapCallback(callback) {\r\n return (error, value) => {\r\n if (error) {\r\n this.reject(error);\r\n }\r\n else {\r\n this.resolve(value);\r\n }\r\n if (typeof callback === 'function') {\r\n // Attaching noop handler just in case developer wasn't expecting\r\n // promises\r\n this.promise.catch(() => { });\r\n // Some of our callbacks don't expect a value and our own tests\r\n // assert that the parameter length is 1\r\n if (callback.length === 1) {\r\n callback(error);\r\n }\r\n else {\r\n callback(error, value);\r\n }\r\n }\r\n };\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction createMockUserToken(token, projectId) {\r\n if (token.uid) {\r\n throw new Error('The \"uid\" field is no longer supported by mockUserToken. Please use \"sub\" instead for Firebase Auth User ID.');\r\n }\r\n // Unsecured JWTs use \"none\" as the algorithm.\r\n const header = {\r\n alg: 'none',\r\n type: 'JWT'\r\n };\r\n const project = projectId || 'demo-project';\r\n const iat = token.iat || 0;\r\n const sub = token.sub || token.user_id;\r\n if (!sub) {\r\n throw new Error(\"mockUserToken must contain 'sub' or 'user_id' field!\");\r\n }\r\n const payload = Object.assign({ \r\n // Set all required fields to decent defaults\r\n iss: `https://securetoken.google.com/${project}`, aud: project, iat, exp: iat + 3600, auth_time: iat, sub, user_id: sub, firebase: {\r\n sign_in_provider: 'custom',\r\n identities: {}\r\n } }, token);\r\n // Unsecured JWTs use the empty string as a signature.\r\n const signature = '';\r\n return [\r\n base64urlEncodeWithoutPadding(JSON.stringify(header)),\r\n base64urlEncodeWithoutPadding(JSON.stringify(payload)),\r\n signature\r\n ].join('.');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns navigator.userAgent string or '' if it's not defined.\r\n * @return user agent string\r\n */\r\nfunction getUA() {\r\n if (typeof navigator !== 'undefined' &&\r\n typeof navigator['userAgent'] === 'string') {\r\n return navigator['userAgent'];\r\n }\r\n else {\r\n return '';\r\n }\r\n}\r\n/**\r\n * Detect Cordova / PhoneGap / Ionic frameworks on a mobile device.\r\n *\r\n * Deliberately does not rely on checking `file://` URLs (as this fails PhoneGap\r\n * in the Ripple emulator) nor Cordova `onDeviceReady`, which would normally\r\n * wait for a callback.\r\n */\r\nfunction isMobileCordova() {\r\n return (typeof window !== 'undefined' &&\r\n // @ts-ignore Setting up an broadly applicable index signature for Window\r\n // just to deal with this case would probably be a bad idea.\r\n !!(window['cordova'] || window['phonegap'] || window['PhoneGap']) &&\r\n /ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(getUA()));\r\n}\r\n/**\r\n * Detect Node.js.\r\n *\r\n * @return true if Node.js environment is detected or specified.\r\n */\r\n// Node detection logic from: https://github.com/iliakan/detect-node/\r\nfunction isNode() {\r\n var _a;\r\n const forceEnvironment = (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a.forceEnvironment;\r\n if (forceEnvironment === 'node') {\r\n return true;\r\n }\r\n else if (forceEnvironment === 'browser') {\r\n return false;\r\n }\r\n try {\r\n return (Object.prototype.toString.call(global.process) === '[object process]');\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n}\r\n/**\r\n * Detect Browser Environment\r\n */\r\nfunction isBrowser() {\r\n return typeof self === 'object' && self.self === self;\r\n}\r\nfunction isBrowserExtension() {\r\n const runtime = typeof chrome === 'object'\r\n ? chrome.runtime\r\n : typeof browser === 'object'\r\n ? browser.runtime\r\n : undefined;\r\n return typeof runtime === 'object' && runtime.id !== undefined;\r\n}\r\n/**\r\n * Detect React Native.\r\n *\r\n * @return true if ReactNative environment is detected.\r\n */\r\nfunction isReactNative() {\r\n return (typeof navigator === 'object' && navigator['product'] === 'ReactNative');\r\n}\r\n/** Detects Electron apps. */\r\nfunction isElectron() {\r\n return getUA().indexOf('Electron/') >= 0;\r\n}\r\n/** Detects Internet Explorer. */\r\nfunction isIE() {\r\n const ua = getUA();\r\n return ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\r\n}\r\n/** Detects Universal Windows Platform apps. */\r\nfunction isUWP() {\r\n return getUA().indexOf('MSAppHost/') >= 0;\r\n}\r\n/**\r\n * Detect whether the current SDK build is the Node version.\r\n *\r\n * @return true if it's the Node SDK build.\r\n */\r\nfunction isNodeSdk() {\r\n return CONSTANTS.NODE_CLIENT === true || CONSTANTS.NODE_ADMIN === true;\r\n}\r\n/** Returns true if we are running in Safari. */\r\nfunction isSafari() {\r\n return (!isNode() &&\r\n navigator.userAgent.includes('Safari') &&\r\n !navigator.userAgent.includes('Chrome'));\r\n}\r\n/**\r\n * This method checks if indexedDB is supported by current browser/service worker context\r\n * @return true if indexedDB is supported by current browser/service worker context\r\n */\r\nfunction isIndexedDBAvailable() {\r\n try {\r\n return typeof indexedDB === 'object';\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n}\r\n/**\r\n * This method validates browser/sw context for indexedDB by opening a dummy indexedDB database and reject\r\n * if errors occur during the database open operation.\r\n *\r\n * @throws exception if current browser/sw context can't run idb.open (ex: Safari iframe, Firefox\r\n * private browsing)\r\n */\r\nfunction validateIndexedDBOpenable() {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n let preExist = true;\r\n const DB_CHECK_NAME = 'validate-browser-context-for-indexeddb-analytics-module';\r\n const request = self.indexedDB.open(DB_CHECK_NAME);\r\n request.onsuccess = () => {\r\n request.result.close();\r\n // delete database only when it doesn't pre-exist\r\n if (!preExist) {\r\n self.indexedDB.deleteDatabase(DB_CHECK_NAME);\r\n }\r\n resolve(true);\r\n };\r\n request.onupgradeneeded = () => {\r\n preExist = false;\r\n };\r\n request.onerror = () => {\r\n var _a;\r\n reject(((_a = request.error) === null || _a === void 0 ? void 0 : _a.message) || '');\r\n };\r\n }\r\n catch (error) {\r\n reject(error);\r\n }\r\n });\r\n}\r\n/**\r\n *\r\n * This method checks whether cookie is enabled within current browser\r\n * @return true if cookie is enabled within current browser\r\n */\r\nfunction areCookiesEnabled() {\r\n if (typeof navigator === 'undefined' || !navigator.cookieEnabled) {\r\n return false;\r\n }\r\n return true;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview Standardized Firebase Error.\r\n *\r\n * Usage:\r\n *\r\n * // Typescript string literals for type-safe codes\r\n * type Err =\r\n * 'unknown' |\r\n * 'object-not-found'\r\n * ;\r\n *\r\n * // Closure enum for type-safe error codes\r\n * // at-enum {string}\r\n * var Err = {\r\n * UNKNOWN: 'unknown',\r\n * OBJECT_NOT_FOUND: 'object-not-found',\r\n * }\r\n *\r\n * let errors: Map = {\r\n * 'generic-error': \"Unknown error\",\r\n * 'file-not-found': \"Could not find file: {$file}\",\r\n * };\r\n *\r\n * // Type-safe function - must pass a valid error code as param.\r\n * let error = new ErrorFactory('service', 'Service', errors);\r\n *\r\n * ...\r\n * throw error.create(Err.GENERIC);\r\n * ...\r\n * throw error.create(Err.FILE_NOT_FOUND, {'file': fileName});\r\n * ...\r\n * // Service: Could not file file: foo.txt (service/file-not-found).\r\n *\r\n * catch (e) {\r\n * assert(e.message === \"Could not find file: foo.txt.\");\r\n * if ((e as FirebaseError)?.code === 'service/file-not-found') {\r\n * console.log(\"Could not read file: \" + e['file']);\r\n * }\r\n * }\r\n */\r\nconst ERROR_NAME = 'FirebaseError';\r\n// Based on code from:\r\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Custom_Error_Types\r\nclass FirebaseError extends Error {\r\n constructor(\r\n /** The error code for this error. */\r\n code, message, \r\n /** Custom data for this error. */\r\n customData) {\r\n super(message);\r\n this.code = code;\r\n this.customData = customData;\r\n /** The custom name for all FirebaseErrors. */\r\n this.name = ERROR_NAME;\r\n // Fix For ES5\r\n // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\r\n Object.setPrototypeOf(this, FirebaseError.prototype);\r\n // Maintains proper stack trace for where our error was thrown.\r\n // Only available on V8.\r\n if (Error.captureStackTrace) {\r\n Error.captureStackTrace(this, ErrorFactory.prototype.create);\r\n }\r\n }\r\n}\r\nclass ErrorFactory {\r\n constructor(service, serviceName, errors) {\r\n this.service = service;\r\n this.serviceName = serviceName;\r\n this.errors = errors;\r\n }\r\n create(code, ...data) {\r\n const customData = data[0] || {};\r\n const fullCode = `${this.service}/${code}`;\r\n const template = this.errors[code];\r\n const message = template ? replaceTemplate(template, customData) : 'Error';\r\n // Service Name: Error message (service/code).\r\n const fullMessage = `${this.serviceName}: ${message} (${fullCode}).`;\r\n const error = new FirebaseError(fullCode, fullMessage, customData);\r\n return error;\r\n }\r\n}\r\nfunction replaceTemplate(template, data) {\r\n return template.replace(PATTERN, (_, key) => {\r\n const value = data[key];\r\n return value != null ? String(value) : `<${key}?>`;\r\n });\r\n}\r\nconst PATTERN = /\\{\\$([^}]+)}/g;\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Evaluates a JSON string into a javascript object.\r\n *\r\n * @param {string} str A string containing JSON.\r\n * @return {*} The javascript object representing the specified JSON.\r\n */\r\nfunction jsonEval(str) {\r\n return JSON.parse(str);\r\n}\r\n/**\r\n * Returns JSON representing a javascript object.\r\n * @param {*} data Javascript object to be stringified.\r\n * @return {string} The JSON contents of the object.\r\n */\r\nfunction stringify(data) {\r\n return JSON.stringify(data);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Decodes a Firebase auth. token into constituent parts.\r\n *\r\n * Notes:\r\n * - May return with invalid / incomplete claims if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst decode = function (token) {\r\n let header = {}, claims = {}, data = {}, signature = '';\r\n try {\r\n const parts = token.split('.');\r\n header = jsonEval(base64Decode(parts[0]) || '');\r\n claims = jsonEval(base64Decode(parts[1]) || '');\r\n signature = parts[2];\r\n data = claims['d'] || {};\r\n delete claims['d'];\r\n }\r\n catch (e) { }\r\n return {\r\n header,\r\n claims,\r\n data,\r\n signature\r\n };\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its time-based claims. Will return true if the\r\n * token is within the time window authorized by the 'nbf' (not-before) and 'iat' (issued-at) claims.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst isValidTimestamp = function (token) {\r\n const claims = decode(token).claims;\r\n const now = Math.floor(new Date().getTime() / 1000);\r\n let validSince = 0, validUntil = 0;\r\n if (typeof claims === 'object') {\r\n if (claims.hasOwnProperty('nbf')) {\r\n validSince = claims['nbf'];\r\n }\r\n else if (claims.hasOwnProperty('iat')) {\r\n validSince = claims['iat'];\r\n }\r\n if (claims.hasOwnProperty('exp')) {\r\n validUntil = claims['exp'];\r\n }\r\n else {\r\n // token will expire after 24h by default\r\n validUntil = validSince + 86400;\r\n }\r\n }\r\n return (!!now &&\r\n !!validSince &&\r\n !!validUntil &&\r\n now >= validSince &&\r\n now <= validUntil);\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and returns its issued at time if valid, null otherwise.\r\n *\r\n * Notes:\r\n * - May return null if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst issuedAtTime = function (token) {\r\n const claims = decode(token).claims;\r\n if (typeof claims === 'object' && claims.hasOwnProperty('iat')) {\r\n return claims['iat'];\r\n }\r\n return null;\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its format. Expects a valid issued-at time.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst isValidFormat = function (token) {\r\n const decoded = decode(token), claims = decoded.claims;\r\n return !!claims && typeof claims === 'object' && claims.hasOwnProperty('iat');\r\n};\r\n/**\r\n * Attempts to peer into an auth token and determine if it's an admin auth token by looking at the claims portion.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst isAdmin = function (token) {\r\n const claims = decode(token).claims;\r\n return typeof claims === 'object' && claims['admin'] === true;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction contains(obj, key) {\r\n return Object.prototype.hasOwnProperty.call(obj, key);\r\n}\r\nfunction safeGet(obj, key) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n return obj[key];\r\n }\r\n else {\r\n return undefined;\r\n }\r\n}\r\nfunction isEmpty(obj) {\r\n for (const key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction map(obj, fn, contextObj) {\r\n const res = {};\r\n for (const key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n res[key] = fn.call(contextObj, obj[key], key, obj);\r\n }\r\n }\r\n return res;\r\n}\r\n/**\r\n * Deep equal two objects. Support Arrays and Objects.\r\n */\r\nfunction deepEqual(a, b) {\r\n if (a === b) {\r\n return true;\r\n }\r\n const aKeys = Object.keys(a);\r\n const bKeys = Object.keys(b);\r\n for (const k of aKeys) {\r\n if (!bKeys.includes(k)) {\r\n return false;\r\n }\r\n const aProp = a[k];\r\n const bProp = b[k];\r\n if (isObject(aProp) && isObject(bProp)) {\r\n if (!deepEqual(aProp, bProp)) {\r\n return false;\r\n }\r\n }\r\n else if (aProp !== bProp) {\r\n return false;\r\n }\r\n }\r\n for (const k of bKeys) {\r\n if (!aKeys.includes(k)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction isObject(thing) {\r\n return thing !== null && typeof thing === 'object';\r\n}\n\n/**\r\n * @license\r\n * Copyright 2022 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Rejects if the given promise doesn't resolve in timeInMS milliseconds.\r\n * @internal\r\n */\r\nfunction promiseWithTimeout(promise, timeInMS = 2000) {\r\n const deferredPromise = new Deferred();\r\n setTimeout(() => deferredPromise.reject('timeout!'), timeInMS);\r\n promise.then(deferredPromise.resolve, deferredPromise.reject);\r\n return deferredPromise.promise;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns a querystring-formatted string (e.g. &arg=val&arg2=val2) from a\r\n * params object (e.g. {arg: 'val', arg2: 'val2'})\r\n * Note: You must prepend it with ? when adding it to a URL.\r\n */\r\nfunction querystring(querystringParams) {\r\n const params = [];\r\n for (const [key, value] of Object.entries(querystringParams)) {\r\n if (Array.isArray(value)) {\r\n value.forEach(arrayVal => {\r\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(arrayVal));\r\n });\r\n }\r\n else {\r\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));\r\n }\r\n }\r\n return params.length ? '&' + params.join('&') : '';\r\n}\r\n/**\r\n * Decodes a querystring (e.g. ?arg=val&arg2=val2) into a params object\r\n * (e.g. {arg: 'val', arg2: 'val2'})\r\n */\r\nfunction querystringDecode(querystring) {\r\n const obj = {};\r\n const tokens = querystring.replace(/^\\?/, '').split('&');\r\n tokens.forEach(token => {\r\n if (token) {\r\n const [key, value] = token.split('=');\r\n obj[decodeURIComponent(key)] = decodeURIComponent(value);\r\n }\r\n });\r\n return obj;\r\n}\r\n/**\r\n * Extract the query string part of a URL, including the leading question mark (if present).\r\n */\r\nfunction extractQuerystring(url) {\r\n const queryStart = url.indexOf('?');\r\n if (!queryStart) {\r\n return '';\r\n }\r\n const fragmentStart = url.indexOf('#', queryStart);\r\n return url.substring(queryStart, fragmentStart > 0 ? fragmentStart : undefined);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview SHA-1 cryptographic hash.\r\n * Variable names follow the notation in FIPS PUB 180-3:\r\n * http://csrc.nist.gov/publications/fips/fips180-3/fips180-3_final.pdf.\r\n *\r\n * Usage:\r\n * var sha1 = new sha1();\r\n * sha1.update(bytes);\r\n * var hash = sha1.digest();\r\n *\r\n * Performance:\r\n * Chrome 23: ~400 Mbit/s\r\n * Firefox 16: ~250 Mbit/s\r\n *\r\n */\r\n/**\r\n * SHA-1 cryptographic hash constructor.\r\n *\r\n * The properties declared here are discussed in the above algorithm document.\r\n * @constructor\r\n * @final\r\n * @struct\r\n */\r\nclass Sha1 {\r\n constructor() {\r\n /**\r\n * Holds the previous values of accumulated variables a-e in the compress_\r\n * function.\r\n * @private\r\n */\r\n this.chain_ = [];\r\n /**\r\n * A buffer holding the partially computed hash result.\r\n * @private\r\n */\r\n this.buf_ = [];\r\n /**\r\n * An array of 80 bytes, each a part of the message to be hashed. Referred to\r\n * as the message schedule in the docs.\r\n * @private\r\n */\r\n this.W_ = [];\r\n /**\r\n * Contains data needed to pad messages less than 64 bytes.\r\n * @private\r\n */\r\n this.pad_ = [];\r\n /**\r\n * @private {number}\r\n */\r\n this.inbuf_ = 0;\r\n /**\r\n * @private {number}\r\n */\r\n this.total_ = 0;\r\n this.blockSize = 512 / 8;\r\n this.pad_[0] = 128;\r\n for (let i = 1; i < this.blockSize; ++i) {\r\n this.pad_[i] = 0;\r\n }\r\n this.reset();\r\n }\r\n reset() {\r\n this.chain_[0] = 0x67452301;\r\n this.chain_[1] = 0xefcdab89;\r\n this.chain_[2] = 0x98badcfe;\r\n this.chain_[3] = 0x10325476;\r\n this.chain_[4] = 0xc3d2e1f0;\r\n this.inbuf_ = 0;\r\n this.total_ = 0;\r\n }\r\n /**\r\n * Internal compress helper function.\r\n * @param buf Block to compress.\r\n * @param offset Offset of the block in the buffer.\r\n * @private\r\n */\r\n compress_(buf, offset) {\r\n if (!offset) {\r\n offset = 0;\r\n }\r\n const W = this.W_;\r\n // get 16 big endian words\r\n if (typeof buf === 'string') {\r\n for (let i = 0; i < 16; i++) {\r\n // TODO(user): [bug 8140122] Recent versions of Safari for Mac OS and iOS\r\n // have a bug that turns the post-increment ++ operator into pre-increment\r\n // during JIT compilation. We have code that depends heavily on SHA-1 for\r\n // correctness and which is affected by this bug, so I've removed all uses\r\n // of post-increment ++ in which the result value is used. We can revert\r\n // this change once the Safari bug\r\n // (https://bugs.webkit.org/show_bug.cgi?id=109036) has been fixed and\r\n // most clients have been updated.\r\n W[i] =\r\n (buf.charCodeAt(offset) << 24) |\r\n (buf.charCodeAt(offset + 1) << 16) |\r\n (buf.charCodeAt(offset + 2) << 8) |\r\n buf.charCodeAt(offset + 3);\r\n offset += 4;\r\n }\r\n }\r\n else {\r\n for (let i = 0; i < 16; i++) {\r\n W[i] =\r\n (buf[offset] << 24) |\r\n (buf[offset + 1] << 16) |\r\n (buf[offset + 2] << 8) |\r\n buf[offset + 3];\r\n offset += 4;\r\n }\r\n }\r\n // expand to 80 words\r\n for (let i = 16; i < 80; i++) {\r\n const t = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\r\n W[i] = ((t << 1) | (t >>> 31)) & 0xffffffff;\r\n }\r\n let a = this.chain_[0];\r\n let b = this.chain_[1];\r\n let c = this.chain_[2];\r\n let d = this.chain_[3];\r\n let e = this.chain_[4];\r\n let f, k;\r\n // TODO(user): Try to unroll this loop to speed up the computation.\r\n for (let i = 0; i < 80; i++) {\r\n if (i < 40) {\r\n if (i < 20) {\r\n f = d ^ (b & (c ^ d));\r\n k = 0x5a827999;\r\n }\r\n else {\r\n f = b ^ c ^ d;\r\n k = 0x6ed9eba1;\r\n }\r\n }\r\n else {\r\n if (i < 60) {\r\n f = (b & c) | (d & (b | c));\r\n k = 0x8f1bbcdc;\r\n }\r\n else {\r\n f = b ^ c ^ d;\r\n k = 0xca62c1d6;\r\n }\r\n }\r\n const t = (((a << 5) | (a >>> 27)) + f + e + k + W[i]) & 0xffffffff;\r\n e = d;\r\n d = c;\r\n c = ((b << 30) | (b >>> 2)) & 0xffffffff;\r\n b = a;\r\n a = t;\r\n }\r\n this.chain_[0] = (this.chain_[0] + a) & 0xffffffff;\r\n this.chain_[1] = (this.chain_[1] + b) & 0xffffffff;\r\n this.chain_[2] = (this.chain_[2] + c) & 0xffffffff;\r\n this.chain_[3] = (this.chain_[3] + d) & 0xffffffff;\r\n this.chain_[4] = (this.chain_[4] + e) & 0xffffffff;\r\n }\r\n update(bytes, length) {\r\n // TODO(johnlenz): tighten the function signature and remove this check\r\n if (bytes == null) {\r\n return;\r\n }\r\n if (length === undefined) {\r\n length = bytes.length;\r\n }\r\n const lengthMinusBlock = length - this.blockSize;\r\n let n = 0;\r\n // Using local instead of member variables gives ~5% speedup on Firefox 16.\r\n const buf = this.buf_;\r\n let inbuf = this.inbuf_;\r\n // The outer while loop should execute at most twice.\r\n while (n < length) {\r\n // When we have no data in the block to top up, we can directly process the\r\n // input buffer (assuming it contains sufficient data). This gives ~25%\r\n // speedup on Chrome 23 and ~15% speedup on Firefox 16, but requires that\r\n // the data is provided in large chunks (or in multiples of 64 bytes).\r\n if (inbuf === 0) {\r\n while (n <= lengthMinusBlock) {\r\n this.compress_(bytes, n);\r\n n += this.blockSize;\r\n }\r\n }\r\n if (typeof bytes === 'string') {\r\n while (n < length) {\r\n buf[inbuf] = bytes.charCodeAt(n);\r\n ++inbuf;\r\n ++n;\r\n if (inbuf === this.blockSize) {\r\n this.compress_(buf);\r\n inbuf = 0;\r\n // Jump to the outer loop so we use the full-block optimization.\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n while (n < length) {\r\n buf[inbuf] = bytes[n];\r\n ++inbuf;\r\n ++n;\r\n if (inbuf === this.blockSize) {\r\n this.compress_(buf);\r\n inbuf = 0;\r\n // Jump to the outer loop so we use the full-block optimization.\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n this.inbuf_ = inbuf;\r\n this.total_ += length;\r\n }\r\n /** @override */\r\n digest() {\r\n const digest = [];\r\n let totalBits = this.total_ * 8;\r\n // Add pad 0x80 0x00*.\r\n if (this.inbuf_ < 56) {\r\n this.update(this.pad_, 56 - this.inbuf_);\r\n }\r\n else {\r\n this.update(this.pad_, this.blockSize - (this.inbuf_ - 56));\r\n }\r\n // Add # bits.\r\n for (let i = this.blockSize - 1; i >= 56; i--) {\r\n this.buf_[i] = totalBits & 255;\r\n totalBits /= 256; // Don't use bit-shifting here!\r\n }\r\n this.compress_(this.buf_);\r\n let n = 0;\r\n for (let i = 0; i < 5; i++) {\r\n for (let j = 24; j >= 0; j -= 8) {\r\n digest[n] = (this.chain_[i] >> j) & 255;\r\n ++n;\r\n }\r\n }\r\n return digest;\r\n }\r\n}\n\n/**\r\n * Helper to make a Subscribe function (just like Promise helps make a\r\n * Thenable).\r\n *\r\n * @param executor Function which can make calls to a single Observer\r\n * as a proxy.\r\n * @param onNoObservers Callback when count of Observers goes to zero.\r\n */\r\nfunction createSubscribe(executor, onNoObservers) {\r\n const proxy = new ObserverProxy(executor, onNoObservers);\r\n return proxy.subscribe.bind(proxy);\r\n}\r\n/**\r\n * Implement fan-out for any number of Observers attached via a subscribe\r\n * function.\r\n */\r\nclass ObserverProxy {\r\n /**\r\n * @param executor Function which can make calls to a single Observer\r\n * as a proxy.\r\n * @param onNoObservers Callback when count of Observers goes to zero.\r\n */\r\n constructor(executor, onNoObservers) {\r\n this.observers = [];\r\n this.unsubscribes = [];\r\n this.observerCount = 0;\r\n // Micro-task scheduling by calling task.then().\r\n this.task = Promise.resolve();\r\n this.finalized = false;\r\n this.onNoObservers = onNoObservers;\r\n // Call the executor asynchronously so subscribers that are called\r\n // synchronously after the creation of the subscribe function\r\n // can still receive the very first value generated in the executor.\r\n this.task\r\n .then(() => {\r\n executor(this);\r\n })\r\n .catch(e => {\r\n this.error(e);\r\n });\r\n }\r\n next(value) {\r\n this.forEachObserver((observer) => {\r\n observer.next(value);\r\n });\r\n }\r\n error(error) {\r\n this.forEachObserver((observer) => {\r\n observer.error(error);\r\n });\r\n this.close(error);\r\n }\r\n complete() {\r\n this.forEachObserver((observer) => {\r\n observer.complete();\r\n });\r\n this.close();\r\n }\r\n /**\r\n * Subscribe function that can be used to add an Observer to the fan-out list.\r\n *\r\n * - We require that no event is sent to a subscriber sychronously to their\r\n * call to subscribe().\r\n */\r\n subscribe(nextOrObserver, error, complete) {\r\n let observer;\r\n if (nextOrObserver === undefined &&\r\n error === undefined &&\r\n complete === undefined) {\r\n throw new Error('Missing Observer.');\r\n }\r\n // Assemble an Observer object when passed as callback functions.\r\n if (implementsAnyMethods(nextOrObserver, [\r\n 'next',\r\n 'error',\r\n 'complete'\r\n ])) {\r\n observer = nextOrObserver;\r\n }\r\n else {\r\n observer = {\r\n next: nextOrObserver,\r\n error,\r\n complete\r\n };\r\n }\r\n if (observer.next === undefined) {\r\n observer.next = noop;\r\n }\r\n if (observer.error === undefined) {\r\n observer.error = noop;\r\n }\r\n if (observer.complete === undefined) {\r\n observer.complete = noop;\r\n }\r\n const unsub = this.unsubscribeOne.bind(this, this.observers.length);\r\n // Attempt to subscribe to a terminated Observable - we\r\n // just respond to the Observer with the final error or complete\r\n // event.\r\n if (this.finalized) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(() => {\r\n try {\r\n if (this.finalError) {\r\n observer.error(this.finalError);\r\n }\r\n else {\r\n observer.complete();\r\n }\r\n }\r\n catch (e) {\r\n // nothing\r\n }\r\n return;\r\n });\r\n }\r\n this.observers.push(observer);\r\n return unsub;\r\n }\r\n // Unsubscribe is synchronous - we guarantee that no events are sent to\r\n // any unsubscribed Observer.\r\n unsubscribeOne(i) {\r\n if (this.observers === undefined || this.observers[i] === undefined) {\r\n return;\r\n }\r\n delete this.observers[i];\r\n this.observerCount -= 1;\r\n if (this.observerCount === 0 && this.onNoObservers !== undefined) {\r\n this.onNoObservers(this);\r\n }\r\n }\r\n forEachObserver(fn) {\r\n if (this.finalized) {\r\n // Already closed by previous event....just eat the additional values.\r\n return;\r\n }\r\n // Since sendOne calls asynchronously - there is no chance that\r\n // this.observers will become undefined.\r\n for (let i = 0; i < this.observers.length; i++) {\r\n this.sendOne(i, fn);\r\n }\r\n }\r\n // Call the Observer via one of it's callback function. We are careful to\r\n // confirm that the observe has not been unsubscribed since this asynchronous\r\n // function had been queued.\r\n sendOne(i, fn) {\r\n // Execute the callback asynchronously\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(() => {\r\n if (this.observers !== undefined && this.observers[i] !== undefined) {\r\n try {\r\n fn(this.observers[i]);\r\n }\r\n catch (e) {\r\n // Ignore exceptions raised in Observers or missing methods of an\r\n // Observer.\r\n // Log error to console. b/31404806\r\n if (typeof console !== 'undefined' && console.error) {\r\n console.error(e);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n close(err) {\r\n if (this.finalized) {\r\n return;\r\n }\r\n this.finalized = true;\r\n if (err !== undefined) {\r\n this.finalError = err;\r\n }\r\n // Proxy is no longer needed - garbage collect references\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(() => {\r\n this.observers = undefined;\r\n this.onNoObservers = undefined;\r\n });\r\n }\r\n}\r\n/** Turn synchronous function into one called asynchronously. */\r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\nfunction async(fn, onError) {\r\n return (...args) => {\r\n Promise.resolve(true)\r\n .then(() => {\r\n fn(...args);\r\n })\r\n .catch((error) => {\r\n if (onError) {\r\n onError(error);\r\n }\r\n });\r\n };\r\n}\r\n/**\r\n * Return true if the object passed in implements any of the named methods.\r\n */\r\nfunction implementsAnyMethods(obj, methods) {\r\n if (typeof obj !== 'object' || obj === null) {\r\n return false;\r\n }\r\n for (const method of methods) {\r\n if (method in obj && typeof obj[method] === 'function') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction noop() {\r\n // do nothing\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Check to make sure the appropriate number of arguments are provided for a public function.\r\n * Throws an error if it fails.\r\n *\r\n * @param fnName The function name\r\n * @param minCount The minimum number of arguments to allow for the function call\r\n * @param maxCount The maximum number of argument to allow for the function call\r\n * @param argCount The actual number of arguments provided.\r\n */\r\nconst validateArgCount = function (fnName, minCount, maxCount, argCount) {\r\n let argError;\r\n if (argCount < minCount) {\r\n argError = 'at least ' + minCount;\r\n }\r\n else if (argCount > maxCount) {\r\n argError = maxCount === 0 ? 'none' : 'no more than ' + maxCount;\r\n }\r\n if (argError) {\r\n const error = fnName +\r\n ' failed: Was called with ' +\r\n argCount +\r\n (argCount === 1 ? ' argument.' : ' arguments.') +\r\n ' Expects ' +\r\n argError +\r\n '.';\r\n throw new Error(error);\r\n }\r\n};\r\n/**\r\n * Generates a string to prefix an error message about failed argument validation\r\n *\r\n * @param fnName The function name\r\n * @param argName The name of the argument\r\n * @return The prefix to add to the error thrown for validation.\r\n */\r\nfunction errorPrefix(fnName, argName) {\r\n return `${fnName} failed: ${argName} argument `;\r\n}\r\n/**\r\n * @param fnName\r\n * @param argumentNumber\r\n * @param namespace\r\n * @param optional\r\n */\r\nfunction validateNamespace(fnName, namespace, optional) {\r\n if (optional && !namespace) {\r\n return;\r\n }\r\n if (typeof namespace !== 'string') {\r\n //TODO: I should do more validation here. We only allow certain chars in namespaces.\r\n throw new Error(errorPrefix(fnName, 'namespace') + 'must be a valid firebase namespace.');\r\n }\r\n}\r\nfunction validateCallback(fnName, argumentName, \r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\ncallback, optional) {\r\n if (optional && !callback) {\r\n return;\r\n }\r\n if (typeof callback !== 'function') {\r\n throw new Error(errorPrefix(fnName, argumentName) + 'must be a valid function.');\r\n }\r\n}\r\nfunction validateContextObject(fnName, argumentName, context, optional) {\r\n if (optional && !context) {\r\n return;\r\n }\r\n if (typeof context !== 'object' || context === null) {\r\n throw new Error(errorPrefix(fnName, argumentName) + 'must be a valid context object.');\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// Code originally came from goog.crypt.stringToUtf8ByteArray, but for some reason they\r\n// automatically replaced '\\r\\n' with '\\n', and they didn't handle surrogate pairs,\r\n// so it's been modified.\r\n// Note that not all Unicode characters appear as single characters in JavaScript strings.\r\n// fromCharCode returns the UTF-16 encoding of a character - so some Unicode characters\r\n// use 2 characters in Javascript. All 4-byte UTF-8 characters begin with a first\r\n// character in the range 0xD800 - 0xDBFF (the first character of a so-called surrogate\r\n// pair).\r\n// See http://www.ecma-international.org/ecma-262/5.1/#sec-15.1.3\r\n/**\r\n * @param {string} str\r\n * @return {Array}\r\n */\r\nconst stringToByteArray = function (str) {\r\n const out = [];\r\n let p = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n let c = str.charCodeAt(i);\r\n // Is this the lead surrogate in a surrogate pair?\r\n if (c >= 0xd800 && c <= 0xdbff) {\r\n const high = c - 0xd800; // the high 10 bits.\r\n i++;\r\n assert(i < str.length, 'Surrogate pair missing trail surrogate.');\r\n const low = str.charCodeAt(i) - 0xdc00; // the low 10 bits.\r\n c = 0x10000 + (high << 10) + low;\r\n }\r\n if (c < 128) {\r\n out[p++] = c;\r\n }\r\n else if (c < 2048) {\r\n out[p++] = (c >> 6) | 192;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else if (c < 65536) {\r\n out[p++] = (c >> 12) | 224;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else {\r\n out[p++] = (c >> 18) | 240;\r\n out[p++] = ((c >> 12) & 63) | 128;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n }\r\n return out;\r\n};\r\n/**\r\n * Calculate length without actually converting; useful for doing cheaper validation.\r\n * @param {string} str\r\n * @return {number}\r\n */\r\nconst stringLength = function (str) {\r\n let p = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n const c = str.charCodeAt(i);\r\n if (c < 128) {\r\n p++;\r\n }\r\n else if (c < 2048) {\r\n p += 2;\r\n }\r\n else if (c >= 0xd800 && c <= 0xdbff) {\r\n // Lead surrogate of a surrogate pair. The pair together will take 4 bytes to represent.\r\n p += 4;\r\n i++; // skip trail surrogate.\r\n }\r\n else {\r\n p += 3;\r\n }\r\n }\r\n return p;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2022 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Copied from https://stackoverflow.com/a/2117523\r\n * Generates a new uuid.\r\n * @public\r\n */\r\nconst uuidv4 = function () {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\r\n const r = (Math.random() * 16) | 0, v = c === 'x' ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n};\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * The amount of milliseconds to exponentially increase.\r\n */\r\nconst DEFAULT_INTERVAL_MILLIS = 1000;\r\n/**\r\n * The factor to backoff by.\r\n * Should be a number greater than 1.\r\n */\r\nconst DEFAULT_BACKOFF_FACTOR = 2;\r\n/**\r\n * The maximum milliseconds to increase to.\r\n *\r\n *
Visible for testing\r\n */\r\nconst MAX_VALUE_MILLIS = 4 * 60 * 60 * 1000; // Four hours, like iOS and Android.\r\n/**\r\n * The percentage of backoff time to randomize by.\r\n * See\r\n * http://go/safe-client-behavior#step-1-determine-the-appropriate-retry-interval-to-handle-spike-traffic\r\n * for context.\r\n *\r\n *
Visible for testing\r\n */\r\nconst RANDOM_FACTOR = 0.5;\r\n/**\r\n * Based on the backoff method from\r\n * https://github.com/google/closure-library/blob/master/closure/goog/math/exponentialbackoff.js.\r\n * Extracted here so we don't need to pass metadata and a stateful ExponentialBackoff object around.\r\n */\r\nfunction calculateBackoffMillis(backoffCount, intervalMillis = DEFAULT_INTERVAL_MILLIS, backoffFactor = DEFAULT_BACKOFF_FACTOR) {\r\n // Calculates an exponentially increasing value.\r\n // Deviation: calculates value from count and a constant interval, so we only need to save value\r\n // and count to restore state.\r\n const currBaseValue = intervalMillis * Math.pow(backoffFactor, backoffCount);\r\n // A random \"fuzz\" to avoid waves of retries.\r\n // Deviation: randomFactor is required.\r\n const randomWait = Math.round(\r\n // A fraction of the backoff value to add/subtract.\r\n // Deviation: changes multiplication order to improve readability.\r\n RANDOM_FACTOR *\r\n currBaseValue *\r\n // A random float (rounded to int by Math.round above) in the range [-1, 1]. Determines\r\n // if we add or subtract.\r\n (Math.random() - 0.5) *\r\n 2);\r\n // Limits backoff to max to avoid effectively permanent backoff.\r\n return Math.min(MAX_VALUE_MILLIS, currBaseValue + randomWait);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Provide English ordinal letters after a number\r\n */\r\nfunction ordinal(i) {\r\n if (!Number.isFinite(i)) {\r\n return `${i}`;\r\n }\r\n return i + indicator(i);\r\n}\r\nfunction indicator(i) {\r\n i = Math.abs(i);\r\n const cent = i % 100;\r\n if (cent >= 10 && cent <= 20) {\r\n return 'th';\r\n }\r\n const dec = i % 10;\r\n if (dec === 1) {\r\n return 'st';\r\n }\r\n if (dec === 2) {\r\n return 'nd';\r\n }\r\n if (dec === 3) {\r\n return 'rd';\r\n }\r\n return 'th';\r\n}\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction getModularInstance(service) {\r\n if (service && service._delegate) {\r\n return service._delegate;\r\n }\r\n else {\r\n return service;\r\n }\r\n}\n\nexport { CONSTANTS, Deferred, ErrorFactory, FirebaseError, MAX_VALUE_MILLIS, RANDOM_FACTOR, Sha1, areCookiesEnabled, assert, assertionError, async, base64, base64Decode, base64Encode, base64urlEncodeWithoutPadding, calculateBackoffMillis, contains, createMockUserToken, createSubscribe, decode, deepCopy, deepEqual, deepExtend, errorPrefix, extractQuerystring, getDefaultAppConfig, getDefaultEmulatorHost, getDefaultEmulatorHostnameAndPort, getDefaults, getExperimentalSetting, getGlobal, getModularInstance, getUA, isAdmin, isBrowser, isBrowserExtension, isElectron, isEmpty, isIE, isIndexedDBAvailable, isMobileCordova, isNode, isNodeSdk, isReactNative, isSafari, isUWP, isValidFormat, isValidTimestamp, issuedAtTime, jsonEval, map, ordinal, promiseWithTimeout, querystring, querystringDecode, safeGet, stringLength, stringToByteArray, stringify, uuidv4, validateArgCount, validateCallback, validateContextObject, validateIndexedDBOpenable, validateNamespace };\n//# sourceMappingURL=index.esm2017.js.map\n","import { PACKAGE_VERSION } from './version.js';\n\n// Name of this application, used in the User-Agent.\nexport const APP_NAME = 'TinodeWeb/' + (PACKAGE_VERSION || '0.21');\n\n// API key. Use https://github.com/tinode/chat/tree/master/keygen to generate your own\nexport const API_KEY = 'AQEAAAABAAD_rAp4DJh05a1HAwFT3A6K';\n\n// The array of possible hosts to connect to.\nexport const KNOWN_HOSTS = {hosted: 'web.tinode.co', local: 'localhost:6060'};\n\n// Default host name and port to connect to.\nexport const DEFAULT_HOST = KNOWN_HOSTS.hosted;\n\n// Enable console logging.\nexport const LOGGING_ENABLED = true;\n\n// Minimum time between two keypress notifications, milliseconds.\nexport const KEYPRESS_DELAY = 3_000;\n// Delay before sending a read notification, milliseconds.\nexport const READ_DELAY = 1_500;\n\n// The default shortest allowed tag length. Matches the value on the server.\nexport const MIN_TAG_LENGTH = 2;\n// The default greatest allowed tag length. Matches the value on the server.\nexport const MAX_TAG_LENGTH = 96;\n// The default maximum number of tags allowed. Matches the value on the server.\nexport const MAX_TAG_COUNT = 16;\n\n// Access mode for P2P subscriptions initiated by the current user.\nexport const DEFAULT_P2P_ACCESS_MODE = 'JRWPS';\n// Access mode for new group topics created by the current user.\nexport const NEW_GRP_ACCESS_MODE = 'JRWPSAO';\n// Access mode for a channel.\nexport const CHANNEL_ACCESS_MODE = 'JR';\n\n// Access mode for no access.\nexport const NO_ACCESS_MODE = 'N';\n\n// Mediaquery breakpoint between desktop and mobile, in px. Should match the value\n// in @media (max-size: 640px) in base.css\nexport const MEDIA_BREAKPOINT = 640;\n// Size of css 'rem' unit in pixels. Default 1rem = 10pt = 13px.\nexport const REM_SIZE = 13;\n\n// Size of the avatar image: when image dimensions are greater or the image is not square, it's resized to\n// a square of this size or less.\nexport const AVATAR_SIZE = 384;\n\n// Maximum size of an avatar in bytes for sending in-band. Bigger avatars will be sent out of band (as uploads).\nexport const MAX_AVATAR_BYTES = 4096;\n\n// Size of the broken_image shown in MessagesView\nexport const BROKEN_IMAGE_SIZE = 32;\n\n// Size of video preview when dimensions are missing.\nexport const NO_DIMENSIONS_VIDEO = 128;\n\n// Number of chat messages to fetch in one call.\nexport const MESSAGES_PAGE = 24;\n\n// Default maximum in-band (included directly into the message) attachment size which fits into\n// a message of 256K in size. Used when the server-provided value is unavailable. The actual\n// binary size of the attachment should be smaller due to base64 encoding expansion and some overhead,\n// for instance 1024 bytes.\n// Increase this limit to a greater value in production, if desired. Also increase\n// max_message_size in the server config.\nexport const MAX_INBAND_ATTACHMENT_SIZE = 262_144;\n\n// Default absolute maximum attachment size to be used with the server = 8MB.\n// Used when the server-provided value is unavailable. Increase to something like 100MB in production.\nexport const MAX_EXTERN_ATTACHMENT_SIZE = 1 << 23;\n\n// Maximum allowed linear dimension (pixels) of an image sent inline. Larger images will be shrunk\n// to make the larger dimension fit under this size. You may want to adjust it to 1600 or\n// 2400 for production.\nexport const MAX_IMAGE_DIM = 1024;\n\n// Linear dimensions of image preview: shrink image under this size for previews.\nexport const IMAGE_PREVIEW_DIM = 64;\n\n// Linear dimensions of video screencapture: shrink image under this size for previews.\nexport const VIDEO_PREVIEW_DIM = 96;\n\n// Linear dimensions of image thumbnail: shrink image under this size for thumbnails in reply quote previews.\nexport const IMAGE_THUMBNAIL_DIM = 36;\n// Width of video thumbnail: allow it to be wider, but not taller. Use IMAGE_THUMBNAIL_DIM for height.\nexport const VIDEO_THUMBNAIL_WIDTH = 48;\n\n// Maximum number of online users to be shown in a topic title bar. Others will be\n// hidden under \"+X more\"\nexport const MAX_ONLINE_IN_TOPIC = 4;\n\n// Maximum length of user name, topic title, and private comment.\nexport const MAX_TITLE_LENGTH = 60;\n// Maximum length of topic description.\nexport const MAX_TOPIC_DESCRIPTION_LENGTH = 360;\n// Maximum length of user name when displaying a video call.\nexport const MAX_PEER_TITLE_LENGTH = 20;\n\n// Length of message previews in chat list, in characters.\nexport const MESSAGE_PREVIEW_LENGTH = 80;\n\n// Length of a quote in quoted reply (for outgoing messages).\nexport const QUOTED_REPLY_LENGTH = 30;\n// Length of a preview of a forwarded message.\nexport const FORWARDED_PREVIEW_LENGTH = 84;\n// Length of preview for a message being edited.\nexport const EDIT_PREVIEW_LENGTH = 48;\n\n// Minimum duration of an audio recording in milliseconds (2 sec).\nexport const MIN_DURATION = 2_000;\n// Maximum duration of an audio recording in milliseconds (10 min).\nexport const MAX_DURATION = 600_000;\n\n// Link for \"Contact Us\".\nexport const LINK_CONTACT_US = 'mailto:support@tinode.co';\n\n// Link to Privacy Policy.\nexport const LINK_PRIVACY_POLICY = 'https://tinode.co/privacy.html';\n\n// Link to Terms of Service.\nexport const LINK_TERMS_OF_SERVICE = 'https://tinode.co/terms.html';\n\n","// Video call states.\nexport const CALL_STATE_NONE = 0;\nexport const CALL_STATE_OUTGOING_INITATED = 1;\nexport const CALL_STATE_INCOMING_RECEIVED = 2;\nexport const CALL_STATE_IN_PROGRESS = 3;\n\n// Video call message headers representing call state.\nexport const CALL_HEAD_STARTED = 'started';\n","// File and image helper functions.\n\n// Supported image MIME types and corresponding file extensions.\nexport const SUPPORTED_IMAGE_FORMATS = ['image/jpeg', 'image/gif', 'image/png', 'image/svg', 'image/svg+xml'];\nexport const MIME_EXTENSIONS = ['jpg', 'gif', 'png', 'svg', 'svg'];\n\n// Get an URL from a theCard photo: either create a data: URL or return reference URL.\nexport function makeImageUrl(photo) {\n if (photo && typeof photo == 'object') {\n if (photo.ref) {\n return photo.ref\n }\n if (photo.data && photo.type) {\n const mime = photo.type.startsWith('image/') ? photo.type : ('image/' + photo.type);\n return 'data:' + mime + ';base64,' + photo.data;\n }\n }\n return null;\n}\n\n// Calculate linear dimensions for scaling image down to fit under a certain size.\n// Returns an object which contains destination sizes, source sizes, and offsets\n// into source (when making square images).\nexport function fitImageSize(width, height, maxWidth, maxHeight, forceSquare) {\n // Sanitize input\n width = width | 0;\n height = height | 0;\n maxWidth = maxWidth | 0;\n maxHeight = maxHeight | 0;\n\n if (width <= 0 || height <= 0 || maxWidth <= 0 || maxHeight <= 0) {\n return null;\n }\n\n if (forceSquare) {\n maxWidth = maxHeight = Math.min(maxWidth, maxHeight);\n }\n\n const scale = Math.min(\n Math.min(width, maxWidth) / width,\n Math.min(height, maxHeight) / height\n );\n\n const size = {\n dstWidth: (width * scale) | 0,\n dstHeight: (height * scale) | 0,\n };\n\n if (forceSquare) {\n // Also calculate parameters for making the image square.\n size.dstWidth = size.dstHeight = Math.min(size.dstWidth, size.dstHeight);\n size.srcWidth = size.srcHeight = Math.min(width, height);\n size.xoffset = ((width - size.srcWidth) / 2) | 0;\n size.yoffset = ((height - size.srcWidth) / 2) | 0;\n } else {\n size.xoffset = size.yoffset = 0;\n size.srcWidth = width;\n size.srcHeight = height;\n }\n return size;\n}\n\n// Ensure file's extension matches mime content type\nexport function fileNameForMime(fname, mime) {\n const idx = SUPPORTED_IMAGE_FORMATS.indexOf(mime);\n if (idx < 0 || !fname) {\n // Unknown mime or empty name.\n return fname;\n }\n const ext = MIME_EXTENSIONS[idx];\n\n const at = fname.lastIndexOf('.');\n if (at >= 0) {\n fname = fname.substring(0, at);\n }\n return fname + '.' + ext;\n}\n\n// Scale uploaded image to fit under certain dimensions and byte size, optionally constraining to a square.\n// Returns a promise which is resolven on success or rejected on failure.\nexport function imageScaled(fileOrBlob, maxWidth, maxHeight, maxSize, forceSquare) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = 'Anonymous';\n img.onerror = function(err) {\n reject(new Error(\"Image format unrecognized\"));\n }\n img.onload = async function() {\n // Once the image is loaded, the URL is no longer needed.\n URL.revokeObjectURL(img.src);\n\n // Calculate the desired image dimensions.\n const dim = fitImageSize(img.width, img.height, maxWidth, maxHeight, forceSquare);\n if (!dim) {\n reject(new Error(\"Invalid image\"));\n return;\n }\n let canvas = document.createElement('canvas');\n canvas.width = dim.dstWidth;\n canvas.height = dim.dstHeight;\n let ctx = canvas.getContext('2d');\n ctx.imageSmoothingEnabled = true;\n ctx.drawImage(img, dim.xoffset, dim.yoffset, dim.srcWidth, dim.srcHeight,\n 0, 0, dim.dstWidth, dim.dstHeight);\n\n const mime = SUPPORTED_IMAGE_FORMATS.includes(fileOrBlob.type) ? fileOrBlob.type : 'image/jpeg';\n // Generate blob to check size of the image.\n let blob = await new Promise(resolve => canvas.toBlob(resolve, mime));\n if (!blob) {\n reject(new Error(\"Unsupported image format\"));\n return;\n }\n // Ensure the image is not too large. Shrink the image keeping the aspect ratio.\n // Do nothing if maxsize is <= 0.\n while (maxSize > 0 && blob.length > maxSize) {\n dim.dstWidth = (dim.dstWidth * 0.70710678118) | 0;\n dim.dstHeight = (dim.dstHeight * 0.70710678118) | 0;\n canvas.width = dim.dstWidth;\n canvas.height = dim.dstHeight;\n ctx = canvas.getContext('2d');\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.drawImage(img, dim.xoffset, dim.yoffset, dim.srcWidth, dim.srcHeight,\n 0, 0, dim.dstWidth, dim.dstHeight);\n blob = await new Promise(resolve => canvas.toBlob(resolve, mime));\n }\n\n canvas = null;\n resolve({mime: mime, blob: blob, width: dim.dstWidth, height: dim.dstHeight, name: fileNameForMime(fileOrBlob.name, mime)});\n };\n img.src = URL.createObjectURL(fileOrBlob);\n });\n}\n\n// Scale and crop image according to specified dimensions.\n// The coordinates are in unscaled image pixels, i.e. cut the rectangle first then scale it.\n// returns a promise.\nexport function imageCrop(mime, objURL, left, top, width, height, scale) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = 'Anonymous';\n img.onerror = _ => {\n reject(new Error(\"Image format unrecognized\"));\n };\n img.onload = _ => {\n // Once the image is loaded, the URL is no longer needed.\n URL.revokeObjectURL(img.src);\n\n let canvas = document.createElement('canvas');\n canvas.width = width * scale;\n canvas.height = height * scale;\n let ctx = canvas.getContext('2d');\n ctx.imageSmoothingEnabled = true;\n ctx.drawImage(img, left, top, width, height, 0, 0, canvas.width, canvas.height);\n\n mime = SUPPORTED_IMAGE_FORMATS.includes(mime) ? mime : 'image/jpeg';\n // Generate blob to check size of the image.\n canvas.toBlob((blob) => {\n // Allow GC.\n canvas = null;\n if (blob) {\n resolve({mime: mime, blob: blob, width: width, height: height});\n } else {\n reject(new Error(\"Unsupported image format\"));\n }\n }, mime);\n };\n img.src = objURL;\n });\n}\n\n// Convert file to base64 string.\nexport function fileToBase64(file) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onerror = _ => {\n reject(reader.error);\n };\n reader.onload = _ => {\n resolve({mime: file.type, bits: reader.result.split(',')[1], name: file.name});\n };\n reader.readAsDataURL(file);\n });\n}\n\n// Convert Blob to base64 string. Returns a promise resolved with the base64 string and mime.\nexport function blobToBase64(blob) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onerror = _ => {\n reject(reader.error);\n };\n reader.onload = _ => {\n resolve({mime: blob.type, bits: reader.result.split(',')[1]});\n };\n reader.readAsDataURL(blob);\n });\n}\n\n// File pasted from the clipboard. It's either an inline image or a file attachment.\nexport function filePasted(event, onImageSuccess, onAttachmentSuccess, onError) {\n const items = (event.clipboardData || event.originalEvent.clipboardData || {}).items;\n if (!items || !items.length) {\n return false;\n }\n\n for (let i in items) {\n const item = items[i];\n if (item.kind === 'file') {\n const file = item.getAsFile();\n if (!file) {\n console.error(\"Failed to get file object from pasted file item\", item.kind, item.type);\n onError(\"Failed to get file object from pasted file item\");\n continue;\n }\n if (file.type && file.type.split('/')[0] == 'image') {\n onImageSuccess(file);\n } else {\n onAttachmentSuccess(file);\n }\n // Indicate that the pasted data contains a file.\n return true;\n }\n }\n // No file found.\n return false;\n}\n\n// Get mime type from data URL header.\nexport function getMimeType(header) {\n var mime = /^data:(image\\/[-+a-z0-9.]+);base64/.exec(header);\n return (mime && mime.length > 1) ? mime[1] : null;\n}\n\n// Given length of a binary object in bytes, calculate the length after\n// base64 encoding.\nexport function base64EncodedLen(n) {\n return Math.floor((n + 2) / 3) * 4;\n}\n\n// Given length of a base64-encoded object, calculate decoded size of the\n// pbject in bytes.\nexport function base64DecodedLen(n) {\n return Math.floor(n / 4) * 3;\n}\n\n// Re-encode string to standard base64 encoding with padding.\n// The string may be base64-URL encoded without the padding.\nexport function base64ReEncode(str) {\n if (str) {\n str = str.replace(/-/g, '+').replace(/_/g, '/');\n try {\n str = btoa(atob(str));\n } catch(err) {\n console.error(\"Failed to base64 re-encode string.\", err);\n str = null;\n }\n }\n return str;\n}\n\n// Convert a base64 encoded string with the provided mime type into a Blob.\nexport function base64ToBlob(str, mime) {\n if (!str) {\n return null;\n }\n\n try {\n // Make blob.\n const bin = atob(str);\n const length = bin.length;\n const buf = new ArrayBuffer(length);\n const arr = new Uint8Array(buf);\n for (let i = 0; i < length; i++) {\n arr[i] = bin.charCodeAt(i);\n }\n\n return new Blob([buf], { type: mime });\n } catch(err) {\n console.error(\"Failed to convert base64 to blob: \", err);\n }\n\n return null;\n}\n\nexport function intArrayToBase64(arr) {\n if (!Array.isArray(arr)) {\n return null;\n }\n try {\n let bin = '';\n new Uint8Array(arr).forEach(b => bin += String.fromCharCode(b));\n return window.btoa(bin);\n } catch (err) {}\n return null;\n}\n\nexport function base64ToIntArray(b64) {\n const arr = [];\n try {\n const bin = window.atob(b64);\n [...bin].forEach(c => {\n arr.push(c.charCodeAt(0));\n });\n return arr;\n } catch (err) {}\n return null;\n}\n","import React from 'react';\nimport { defineMessages } from 'react-intl';\n\nimport { Drafty } from 'tinode-sdk';\n\nimport AudioPlayer from '../widgets/audio-player.jsx'\nimport CallMessage from '../widgets/call-message.jsx'\nimport CallStatus from '../widgets/call-status.jsx';\nimport InlineVideo from '../widgets/inline-video.jsx';\nimport LazyImage from '../widgets/lazy-image.jsx'\nimport UploadingImage from '../widgets/uploading-image.jsx'\n\nimport { BROKEN_IMAGE_SIZE, IMAGE_THUMBNAIL_DIM, NO_DIMENSIONS_VIDEO, REM_SIZE, VIDEO_THUMBNAIL_WIDTH } from '../config.js';\nimport { base64ToBlob, blobToBase64, fitImageSize, imageScaled } from './blob-helpers.js';\nimport { idToColorClass, secondsToTime, shortenFileName } from './strformat.js';\nimport { cancelablePromise, sanitizeUrlForMime } from './utils.js';\n\nconst messages = defineMessages({\n drafty_form: {\n id: 'drafty_form',\n defaultMessage: 'Form: ',\n description: 'Comment for form in Drafty'\n },\n drafty_attachment: {\n id: 'drafty_attachment',\n defaultMessage: 'Attachment',\n description: 'Comment for attachment in Drafty'\n },\n drafty_image: {\n id: 'drafty_image',\n defaultMessage: 'Picture',\n description: 'Comment for embedded images in Drafty'\n },\n drafty_video: {\n id: 'drafty_video',\n defaultMessage: 'Video recording',\n description: 'Comment for videos embedded in Drafty'\n },\n drafty_unknown: {\n id: 'drafty_unknown',\n defaultMessage: 'Unsupported',\n description: 'Unsupported entity in drafty'\n }\n});\n\n// The main Drafty formatter: converts Drafty elements into React classes. 'this' is set by the caller.\n// 'this' must contain:\n// viewportWidth:\n// authorizeURL:\n// onImagePreview:\n// onVideoPreview:\n// onFormButtonClick:\n// onQuoteClick:\nexport function fullFormatter(style, data, values, key, stack) {\n if (stack.includes('QQ')) {\n return quoteFormatter.call(this, style, data, values, key);\n }\n\n if (!style) {\n // Unformatted.\n return values;\n }\n\n let el = Drafty.tagName(style);\n let attr = Drafty.attrValue(style, data) || {};\n attr.key = key;\n switch (style) {\n case 'AU':\n // Show audio player.\n if (attr.src) {\n attr.src = this.authorizeURL(sanitizeUrlForMime(attr.src, 'audio'));\n attr.duration = data.duration > 0 ? (data.duration | 0) : undefined;\n attr.preview = data.preview;\n attr.loading = 'lazy';\n }\n el = AudioPlayer;\n // Audio element cannot have content.\n values = null;\n break;\n case 'BR':\n values = null;\n break;\n case 'EX':\n // Ignore.\n break;\n case 'HL':\n // Highlighted text. Assign class name.\n attr.className = 'highlight';\n break;\n case 'HD':\n el = null;\n values = null;\n break;\n case 'IM':\n // Additional processing for images\n el = handleImageData.call(this, el, data, attr);\n // Image element cannot have content.\n values = null;\n break;\n case 'BN':\n // Button\n attr.onClick = this.onFormButtonClick;\n let inner = React.Children.map(values, (child) => {\n return typeof child == 'string' ? child : undefined;\n });\n if (!inner || inner.length == 0) {\n inner = [attr.name]\n }\n // Get text which will be sent back when the button is clicked.\n attr['data-title'] = inner.join('');\n break;\n case 'MN':\n // Mention\n attr.className = 'mention'\n if (data) {\n attr.className += ' ' + idToColorClass(data.val, false, true);\n }\n break;\n case 'FM':\n // Form\n attr.className = 'bot-form';\n break;\n case 'RW':\n // Form element formatting is dependent on element content.\n break;\n case 'QQ':\n // Quote/citation.\n attr.className = 'reply-quote'\n attr.onClick = this.onQuoteClick;\n break;\n case 'VC':\n el = CallMessage;\n // Video call messages do not have content.\n values = null;\n if (data) {\n attr.callState = data.state;\n attr.incoming = data.incoming;\n attr.duration = data.duration;\n }\n break;\n case 'VD':\n // Additional processing for videos.\n el = handleVideoData.call(this, el, data, attr);\n // Video element cannot have content.\n values = null;\n break;\n default:\n if (!el) {\n // Unknown element.\n el = React.Fragment;\n attr = {key: key};\n // Generate comment for unknown element.\n let body = values;\n if (!Array.isArray(values) || !values.join('').trim()) {\n body = [{this.formatMessage(messages.drafty_unknown)}];\n }\n values = [extension, ' '].concat(body);\n }\n break;\n }\n if (!el) {\n return values;\n }\n return React.createElement(el, attr, values);\n}\n\n// Additional processing of image data.\nfunction handleImageData(el, data, attr) {\n if (!data) {\n attr.src = 'img/broken_image.png';\n attr.style = {\n width: IMAGE_THUMBNAIL_DIM + 'px',\n height: IMAGE_THUMBNAIL_DIM + 'px',\n };\n return el;\n }\n\n attr.className = 'inline-image';\n const dim = fitImageSize(data.width, data.height,\n this.viewportWidth > 0 ? Math.min(this.viewportWidth - REM_SIZE * 6.5, REM_SIZE * 34.5) :\n REM_SIZE * 34.5, REM_SIZE * 24, false) ||\n {dstWidth: BROKEN_IMAGE_SIZE, dstHeight: BROKEN_IMAGE_SIZE};\n attr.style = {\n width: dim.dstWidth + 'px',\n height: dim.dstHeight + 'px',\n // Looks like a Chrome bug: broken image does not respect 'width' and 'height'.\n minWidth: dim.dstWidth + 'px',\n minHeight: dim.dstHeight + 'px'\n };\n if (!Drafty.isProcessing(data)) {\n attr.src = this.authorizeURL(sanitizeUrlForMime(attr.src, 'image'));\n attr.alt = data.name;\n if (attr.src) {\n if (Math.max(data.width || 0, data.height || 0) > IMAGE_THUMBNAIL_DIM) {\n // Allow previews for large enough images.\n attr.onClick = this.onImagePreview;\n attr.className += ' image-clickable';\n }\n attr.loading = 'lazy';\n } else {\n attr.src = null;\n }\n } else {\n // Use custom element instead of .\n el = UploadingImage;\n }\n\n return el;\n}\n\n// Additional processing of image data.\nfunction handleVideoData(el, data, attr) {\n if (!data) {\n attr.src = 'img/broken_video.png';\n attr.style = {\n width: IMAGE_THUMBNAIL_DIM + 'px',\n height: IMAGE_THUMBNAIL_DIM + 'px',\n };\n return el;\n }\n attr.className = 'inline-image';\n const dim = fitImageSize(data.width, data.height,\n this.viewportWidth > 0 ? Math.min(this.viewportWidth - REM_SIZE * 6.5, REM_SIZE * 34.5) :\n REM_SIZE * 34.5, REM_SIZE * 24, false) ||\n {dstWidth: NO_DIMENSIONS_VIDEO, dstHeight: NO_DIMENSIONS_VIDEO};\n attr.style = {\n width: dim.dstWidth + 'px',\n height: dim.dstHeight + 'px',\n // Looks like a Chrome bug: broken image does not respect 'width' and 'height'.\n minWidth: dim.dstWidth + 'px',\n minHeight: dim.dstHeight + 'px'\n };\n if (!Drafty.isProcessing(data)) {\n attr.src = this.authorizeURL(sanitizeUrlForMime(attr.src, 'image'));\n attr.alt = data.name;\n if (data.ref || data.val) {\n attr.onClick = this.onVideoPreview;\n attr.loading = 'lazy';\n } else {\n attr.src = null;\n }\n el = InlineVideo;\n } else {\n // Use custom element instead of .\n el = UploadingImage;\n }\n\n return el;\n}\n\n// Converts Drafty object into a one-line preview. 'this' is set by the caller.\n// 'this' must contain:\n// formatMessage: this.props.intl.formatMessage\n// messages: formatjs messages defined with defineMessages.\nexport function previewFormatter(style, data, values, key) {\n if (!style) {\n // Unformatted.\n return values;\n }\n\n let el = Drafty.tagName(style);\n const attr = { key: key };\n switch (style) {\n case 'AU':\n // Voicemail as '[mic] 0:00'.\n el = React.Fragment;\n values = [mic, ' ', secondsToTime(data.duration/1000)];\n break;\n case 'BR':\n // Replace new line with a space.\n el = React.Fragment;\n values = [' '];\n break;\n case 'HL':\n // Make highlight less prominent in preview.\n attr.className = 'highlight preview';\n break;\n case 'LN':\n case 'MN':\n // Disable links in previews.\n el = 'span';\n break;\n case 'IM':\n // Replace image with '[icon] Image'.\n el = React.Fragment;\n values = [photo, ' ', this.formatMessage(messages.drafty_image)];\n break;\n case 'BN':\n el = 'span';\n attr.className = 'flat-button faux';\n break;\n case 'FM':\n el = React.Fragment;\n values = [dashboard,\n this.formatMessage(messages.drafty_form)].concat(' ', values || []);\n break;\n case 'RW':\n el = React.Fragment;\n break;\n case 'EX':\n if (data) {\n if (data.mime == 'application/json') {\n // Ignore JSON attachments: they are form response payloads.\n return null;\n }\n // Clear payload.\n delete data.val;\n delete data.ref;\n }\n el = React.Fragment;\n values = [attachment, ' ', this.formatMessage(messages.drafty_attachment)];\n break;\n case 'VC':\n el = CallStatus;\n if (data) {\n attr.callState = data.state;\n attr.incoming = data.incoming;\n attr.duration = data.duration;\n }\n values = null;\n break;\n case 'QQ':\n case 'HD':\n el = null;\n values = null;\n break;\n case 'VD':\n // Replace image with '[icon] Video'.\n el = React.Fragment;\n values = [play_circle_outline, ' ', this.formatMessage(messages.drafty_video)];\n break;\n default:\n if (!el) {\n // Unknown element.\n el = React.Fragment;\n values = [extension, ' ', this.formatMessage(messages.drafty_unknown)];\n }\n break;\n }\n if (!el) {\n return values;\n }\n return React.createElement(el, attr, values);\n};\n\n// Converts Drafty object into a quoted reply; 'this' is set by the caller.\nfunction inlineImageAttr(attr, data) {\n attr.style = {\n width: IMAGE_THUMBNAIL_DIM + 'px',\n height: IMAGE_THUMBNAIL_DIM + 'px',\n maxWidth: IMAGE_THUMBNAIL_DIM + 'px',\n maxHeight: IMAGE_THUMBNAIL_DIM + 'px',\n }\n attr.className = 'inline-image';\n attr.alt = this.formatMessage(messages.drafty_image);\n if (!data) {\n attr.src = 'img/broken_image.png';\n } else {\n attr.src = attr.src || 'img/broken_image.png';\n }\n attr.title = attr.alt;\n return attr;\n}\n\n// Converts Drafty object into a quoted reply; 'this' is set by the caller.\nfunction inlineVideoAttr(attr, data) {\n const dim = fitImageSize(data.width, data.height, VIDEO_THUMBNAIL_WIDTH, IMAGE_THUMBNAIL_DIM);\n attr.style = {\n width: dim.width + 'px',\n height: dim.height + 'px',\n maxWidth: VIDEO_THUMBNAIL_WIDTH + 'px',\n maxHeight: IMAGE_THUMBNAIL_DIM + 'px',\n }\n attr.className = 'inline-image';\n attr.alt = this.formatMessage(messages.drafty_video);\n attr.title = attr.alt;\n if (!data) {\n attr.src = 'img/broken_video.png';\n } else {\n attr.src = attr.src || 'img/broken_video.png';\n }\n return attr;\n}\n\n// Displays a portion of Drafty within 'QQ' quotes. 'this' is set by the caller.\n// 'this' must contain:\n// formatMessage: this.props.intl.formatMessage\n// messages: formatjs messages defined with defineMessages.\n// authorizeURL: this.props.tinode.authorizeURL\n// onQuoteClick: this.handleQuoteClick (optional)\nfunction quoteFormatter(style, data, values, key) {\n if (['BR', 'EX', 'IM', 'MN', 'VD'].includes(style)) {\n let el = Drafty.tagName(style);\n let attr = Drafty.attrValue(style, data) || {};\n attr.key = key;\n switch(style) {\n case 'BR':\n values = null;\n break;\n case 'IM':\n attr = inlineImageAttr.call(this, attr, data);\n values = [React.createElement('img', attr, null), ' ', attr.alt];\n el = React.Fragment;\n // Fragment attributes.\n attr = {key: key};\n break;\n case 'VD':\n attr = inlineVideoAttr.call(this, attr, data);\n values = [React.createElement('img', attr, null), ' ', attr.alt];\n el = React.Fragment;\n // Fragment attributes.\n attr = {key: key};\n break;\n case 'MN':\n el = 'span';\n attr.className = 'mention'\n if (data) {\n attr.className += ' ' + idToColorClass(data.val, false, true);\n }\n break;\n case 'EX':\n let fname;\n if (data) {\n if (data.mime == 'application/json') {\n // Ignore JSON attachments: they are form response payloads.\n return null;\n }\n fname = data.name;\n // Clear payload.\n delete data.val;\n delete data.ref;\n }\n el = React.Fragment;\n values = [attachment,\n shortenFileName(fname, 16) || this.formatMessage(messages.drafty_attachment)];\n break;\n }\n return React.createElement(el, attr, values);\n }\n return previewFormatter.call(this, style, data, values, key);\n}\n\n// Create image thumbnail suitable for inclusion in a quote.\nfunction quoteImageOrVideo(data, isVideo) {\n let promise;\n let bits, ref, mime;\n if (isVideo) {\n bits = data.preview;\n mime = data.premime || 'image/jpeg';\n ref = data.preref;\n } else {\n bits = data.val;\n mime = data.mime;\n ref = data.ref;\n }\n // Get the blob from the image data.\n if (bits) {\n const blob = base64ToBlob(bits, mime);\n if (!blob) {\n throw new Error(\"Invalid image\");\n }\n promise = Promise.resolve(blob);\n } else if (ref) {\n promise = fetch(this.authorizeURL(sanitizeUrlForMime(ref, 'image')))\n .then(evt => {\n if (evt.ok) {\n return evt.blob();\n } else {\n throw new Error(`Image fetch unsuccessful: ${evt.status} ${evt.statusText}`);\n }\n });\n } else {\n throw new Error(\"Missing image data\");\n }\n\n // Scale the blob.\n return promise\n .then(blob => {\n // If it's an image, cut the square from the center of the image and shrink it.\n // If it's a video, allow it to be rectantular.\n return imageScaled(blob, isVideo ? VIDEO_THUMBNAIL_WIDTH : IMAGE_THUMBNAIL_DIM, IMAGE_THUMBNAIL_DIM, -1, !isVideo)\n }).then(scaled => {\n if (isVideo) {\n data.premime = scaled.mime;\n } else {\n data.mime = scaled.mime;\n }\n data.size = scaled.blob.size;\n data.width = scaled.width;\n data.height = scaled.height;\n delete data.ref;\n delete data.preref;\n // Keeping the original file name, if provided: ex.data.name;\n\n data.src = URL.createObjectURL(scaled.blob);\n return blobToBase64(scaled.blob);\n }).then(b64 => {\n if (isVideo) {\n data.preview = b64.bits;\n } else {\n data.val = b64.bits;\n }\n return data;\n }).catch(err => {\n delete data.val;\n delete data.preview;\n delete data.src;\n data.width = IMAGE_THUMBNAIL_DIM;\n data.height = IMAGE_THUMBNAIL_DIM;\n // Rethrow.\n throw err;\n });\n}\n\n// Create a preview of a reply.\nexport function replyFormatter(style, data, values, key, stack) {\n if (style == 'IM' || style == 'VD') {\n const isImage = style == 'IM';\n const attr = isImage ? inlineImageAttr.call(this, {key: key}, data) :\n inlineVideoAttr.call(this, {key: key}, data);\n\n let loadedPromise;\n try {\n loadedPromise = cancelablePromise(quoteImageOrVideo.call(this, data, style == 'VD'));\n } catch (error) {\n console.warn(\"Failed to quote image:\", error.message);\n loadedPromise = cancelablePromise(error);\n }\n attr.whenDone = loadedPromise;\n values = [React.createElement(LazyImage, attr, null), ' ', attr.alt];\n return React.createElement(React.Fragment, {key: key}, values);\n } else if (style == 'QQ') {\n if (stack.includes('QQ')) {\n // Quote inside quote when forwarding a message.\n return React.createElement('span', {key: key},\n [format_quote, ' ']);\n }\n\n const attr = Drafty.attrValue('QQ', data) || {};\n attr.key = key;\n attr.className = 'reply-quote'\n return React.createElement(Drafty.tagName('QQ'), attr, values);\n }\n return quoteFormatter.call(this, style, data, values, key);\n}\n","import { KNOWN_HOSTS, DEFAULT_HOST } from '../config.js';\n\n// Detect server address from the URL\nexport function detectServerAddress() {\n let host = DEFAULT_HOST;\n if (typeof window.location == 'object') {\n if (window.location.protocol == 'file:' || window.location.hostname == 'localhost') {\n host = KNOWN_HOSTS.local;\n } else if (window.location.hostname) {\n host = window.location.hostname + (window.location.port ? ':' + window.location.port : '');\n }\n }\n return host;\n}\n\n// Detect if the page is served over HTTPS.\nexport function isSecureConnection() {\n if (typeof window.location == 'object') {\n return window.location.protocol == 'https:';\n }\n return false;\n}\n\nexport function isLocalHost() {\n if (typeof window.location == 'object') {\n return window.location.hostname == 'localhost';\n }\n return false;\n}\n","// Helper functions for storing values in localStorage.\n// By default localStorage can store only strings, not objects or other types.\n\nexport default class LocalStorageUtil {\n // Replace old object with the new one.\n static setObject(key, value) {\n localStorage.setItem(key, JSON.stringify(value));\n }\n\n // Get stored object.\n static getObject(key) {\n const value = localStorage.getItem(key);\n return value && JSON.parse(value);\n }\n\n // Partially or wholly update stored object.\n static updateObject(key, value) {\n const oldVal = this.getObject(key);\n this.setObject(key, Object.assign(oldVal || {}, value));\n }\n\n // Just a wrapper.\n static removeItem(key) {\n localStorage.removeItem(key);\n }\n}\n","// Utility class for hash navigation.\n\nexport default class HashNavigation {\n // Parse hash as in http://www.example.com/path#hash as if it were\n // path and arguments.\n static parseUrlHash(hash) {\n // Split path from args, path -> parts[0], args->path[1]\n const parts = hash.split('?', 2);\n const params = {};\n let path = [];\n if (parts[0]) {\n path = parts[0].replace('#', '').split('/');\n }\n if (parts[1]) {\n parts[1].split('&').forEach((arg) => {\n // Can't use split() because the value may contain '='.\n const eq = arg.indexOf('=');\n if (eq > 0) {\n params[arg.slice(0, eq)] = decodeURIComponent(arg.slice(eq + 1));\n }\n });\n }\n return {path: path, params: params};\n }\n\n static navigateTo(url) {\n window.location.hash = url;\n }\n\n static composeUrlHash(path, params) {\n let url = path.join('/');\n const args = [];\n for (const key in params) {\n if (params.hasOwnProperty(key)) {\n args.push(key + '=' + encodeURIComponent(params[key]));\n }\n }\n if (args.length > 0) {\n url += '?' + args.join('&');\n }\n return url;\n }\n\n static addUrlParam(hash, key, value) {\n const parsed = HashNavigation.parseUrlHash(hash);\n parsed.params[key] = value;\n return HashNavigation.composeUrlHash(parsed.path, parsed.params);\n }\n\n static removeUrlParam(hash, key) {\n const parsed = HashNavigation.parseUrlHash(hash);\n delete parsed.params[key];\n return HashNavigation.composeUrlHash(parsed.path, parsed.params);\n }\n\n static setUrlSidePanel(hash, sidepanel) {\n const parsed = HashNavigation.parseUrlHash(hash);\n parsed.path[0] = sidepanel;\n return HashNavigation.composeUrlHash(parsed.path, parsed.params);\n }\n\n static setUrlInfoPanel(hash, infopanel) {\n const parsed = HashNavigation.parseUrlHash(hash);\n if (infopanel) {\n parsed.params.info = infopanel;\n } else {\n delete parsed.params.info;\n }\n return HashNavigation.composeUrlHash(parsed.path, parsed.params);\n }\n\n static setUrlTopic(hash, topic) {\n const parsed = HashNavigation.parseUrlHash(hash);\n parsed.path[1] = topic;\n // Close InfoView on topic change.\n delete parsed.params.info;\n return HashNavigation.composeUrlHash(parsed.path, parsed.params);\n }\n}\n","// Short representation of time in the past.\nexport function shortDateFormat(then, locale) {\n locale = locale || window.navigator.userLanguage || window.navigator.language;\n const now = new Date();\n if (then.getFullYear() == now.getFullYear()) {\n // Same year.\n if (then.getMonth() == now.getMonth() && then.getDate() == now.getDate()) {\n // Same month and day, show time only.\n return then.toLocaleTimeString(locale, {hour12: false, hour: '2-digit', minute: '2-digit'});\n }\n // Different month and/or day, show month day, time.\n return then.toLocaleDateString(locale,\n {hour12: false, month: 'short', day: 'numeric', hour: '2-digit', minute: '2-digit'});\n }\n // Different year: just show the date.\n return then.toLocaleDateString(locale, {year: 'numeric', month: 'short', day: 'numeric'});\n}\n\n// Representation a date relative to now.\nexport function relativeDateFormat(then, locale) {\n locale = locale || window.navigator.userLanguage || window.navigator.language;\n const now = new Date();\n const thenDays = Math.floor((then.getTime() - then.getTimezoneOffset() * 60_000) / 86_400_000);\n const nowDays = Math.floor((now.getTime() - now.getTimezoneOffset() * 60_000) / 86_400_000);\n const diff = thenDays - nowDays;\n if (Math.abs(diff) < 2) {\n // Today or yesterday.\n return new Intl.RelativeTimeFormat(locale, { numeric: 'auto' }).format(diff, 'day')\n }\n // More than two days: just show the date.\n return new Intl.DateTimeFormat(locale).format(then);\n}\n\n// Convert seconds to [hours:]minutes:seconds, i.e. 156 sec -> 2:36, 3756 sec -> 1:02:36.\n// If fixedMins is true, then minutes are represented by at least two digits.\nexport function secondsToTime(seconds, fixedMin) {\n if (typeof seconds != 'number') {\n return '';\n }\n\n let min = (Math.floor(seconds / 60) | 0) % 60;\n let hours = Math.floor(seconds / 36000) | 0;\n\n if (fixedMin || hours > 0) {\n min = min < 10 ? `0${min}` : min;\n }\n let sec = (seconds | 0) % 60;\n sec = sec < 10 ? `0${sec}` : sec;\n if (hours == 0) {\n return `${min}:${sec}`;\n }\n return `${hours}:${min}:${sec}`;\n}\n\n// Convert a number of bytes to human-readable format.\nexport function bytesToHumanSize(bytes) {\n if (!bytes || bytes == 0) {\n return '0 Bytes';\n }\n\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB'];\n const bucket = Math.min(Math.floor(Math.log2(bytes) / 10) | 0, sizes.length-1);\n const count = bytes / Math.pow(1024, bucket);\n const round = bucket > 0 ? (count < 3 ? 2 : (count < 30 ? 1 : 0)) : 0;\n return count.toFixed(round) + ' ' + sizes[bucket];\n}\n\n// Shorten a file name to be under maxLength by clipping out the middle.\nexport function shortenFileName(filename, maxLength) {\n if (typeof filename != 'string') {\n return filename;\n }\n return filename.length > maxLength ?\n filename.slice(0, maxLength/2 - 1) + '…' + filename.slice(1 - maxLength/2) : filename;\n}\n\n// Get 32 bit integer hash value for a string. Ideally it should produce the same value\n// as Java's String#hash().\nfunction stringToColorHash(value) {\n let hash = 0;\n value = '' + value;\n for (let i = 0; i < value.length; i++) {\n hash = ((hash << 5) - hash) + value.charCodeAt(i);\n hash = hash & hash; // Convert to 32bit integer\n }\n return hash;\n}\n\n// User avatar letter color id.\nexport function letterTileColorId(userId) {\n return Math.abs(stringToColorHash(userId)) % 16;\n}\n\n// Converts user or topic ID to a CSS color class. Ideally it should produce the same color value as Java version.\n// params:\n// - {string} id: user or topic ID\n// - {boolean} light: light or dark version of the color.\n// - {boolean} fg: foreground (text) or background color.\nexport function idToColorClass(id, light, fg) {\n return (light ? 'lt-' : 'dk-') + (fg ? 'fg-' : 'bg-') + letterTileColorId(id);\n}\n\n// Takes ISO Alpha-2 country code, like 'US' and converts it to a flag emoji.\nexport function flagEmoji(countryCode) {\n const codePoints = countryCode\n .toUpperCase()\n .split('')\n .map(char => 0x1F1A5 + char.charCodeAt());\n return String.fromCodePoint(...codePoints);\n}\n","// Odds and ends\n\nimport { Tinode } from 'tinode-sdk';\n\n// Make shortcut icon appear with a green dot + show unread count in title.\nexport function updateFavicon(count) {\n const oldIcon = document.getElementById('shortcut-icon');\n const head = document.head || document.getElementsByTagName('head')[0];\n const newIcon = document.createElement('link');\n newIcon.type = 'image/png';\n newIcon.id = 'shortcut-icon';\n newIcon.rel = 'shortcut icon';\n newIcon.href = 'img/logo32x32' + (count > 0 ? 'a' : '') + '.png';\n if (oldIcon) {\n head.removeChild(oldIcon);\n }\n head.appendChild(newIcon);\n\n document.title = (count > 0 ? '('+count+') ' : '') + 'Tinode';\n}\n\n// Create theCard which represents user's or topic's \"public\" info.\nexport function theCard(fn, imageUrl, imageMimeType, note) {\n let card = null;\n fn = fn && fn.trim();\n note = note && note.trim();\n\n if (fn) {\n card = {\n fn: fn\n };\n }\n\n if (typeof note == 'string') {\n card = card || {};\n card.note = note ? note : Tinode.DEL_CHAR;\n }\n\n if (imageUrl) {\n card = card || {};\n let mimeType = imageMimeType;\n // Is this a data URL \"data:[][;base64],\"?\n const matches = /^data:(image\\/[-a-z0-9+.]+)?(;base64)?,/i.exec(imageUrl);\n if (matches) {\n mimeType = matches[1];\n card.photo = {\n data: imageUrl.substring(imageUrl.indexOf(',') + 1),\n ref: Tinode.DEL_CHAR\n };\n } else {\n card.photo = {\n data: Tinode.DEL_CHAR,\n ref: imageUrl\n };\n }\n card.photo.type = (mimeType || 'image/jpeg').substring('image/'.length);\n }\n\n return card;\n}\n\n// Deep-shallow compare two arrays: shallow compare each element.\nexport function arrayEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (!Array.isArray(a) || !Array.isArray(b)) {\n return false;\n }\n\n // Compare lengths first.\n if (a.length != b.length) {\n return false;\n }\n // Order of elements is ignored.\n a.sort();\n b.sort();\n for (let i = 0, l = a.length; i < l; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\n\n// Checks (loosely) if the given string is a phone. If so, returns the phone number in a format\n// as close to E.164 as possible.\nexport function asPhone(val) {\n val = val.trim();\n if (/^(?:\\+?(\\d{1,3}))?[- (.]*(\\d{3})[- ).]*(\\d{3})[- .]*(\\d{2})[- .]*(\\d{2})?$/.test(val)) {\n return val.replace(/[- ().]*/, '');\n }\n return null;\n}\n\n// Checks (loosely) if the given string is an email. If so returns the email.\nexport function asEmail(val) {\n val = val.trim();\n if (/^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$/.test(val)) {\n return val;\n }\n return null;\n}\n\n// Checks if URL is a relative url, i.e. has no 'scheme://', including the case of missing scheme '//'.\n// The scheme is expected to be RFC-compliant, e.g. [a-z][a-z0-9+.-]*\n// example.html - ok\n// https:example.com - not ok.\n// http:/example.com - not ok.\n// ' ↲ https://example.com' - not ok. (↲ means carriage return)\nexport function isUrlRelative(url) {\n return url && !/^\\s*([a-z][a-z0-9+.-]*:|\\/\\/)/im.test(url);\n}\n\n// Ensure URL does not present an XSS risk. Optional allowedSchemes may contain an array of\n// strings with permitted URL schemes, such as ['ftp', 'ftps']; otherwise accept http and https only.\nexport function sanitizeUrl(url, allowedSchemes) {\n if (typeof url != 'string') {\n return url;\n }\n\n // Strip control characters and whitespace. They are not valid URL characters anyway.\n url = url.replace(/[^\\x20-\\x7E]/gmi, '').trim();\n\n // Relative URLs are safe.\n // Relative URL does not start with ':', abcd123: or '//'.\n if (!/^([a-z][a-z0-9+.-]*:|\\/\\/)/i.test(url)) {\n return url;\n }\n\n // Blob URLs are safe.\n if (/^blob:http/.test(url)) {\n return url;\n }\n\n // Absolute URL. Accept only safe schemes, or no scheme.\n const schemes = Array.isArray(allowedSchemes) ? allowedSchemes.join('|') : 'http|https';\n const re = new RegExp('^((' + schemes + '):|//)', 'i');\n if (!re.test(url)) {\n return null;\n }\n\n return url;\n}\n\n// Ensure URL is suitable as a source like field: the URL must be a relative URL or\n// have http:, https:, blob: or data: scheme.\n// In case of data: scheme, the URL must must be of the right MIME type such as 'data:{mimeMajor}/XXXX;base64,'.\nexport function sanitizeUrlForMime(url, mimeMajor) {\n if (!url) {\n return null;\n }\n\n const sanitizedUrl = sanitizeUrl(url);\n if (sanitizedUrl) {\n return sanitizedUrl;\n }\n\n // Is this a data: URL of the appropriate mime type?\n const re = new RegExp(`data:${mimeMajor}\\/[a-z0-9.-]+;base64,`, 'i');\n if (re.test(url.trim())) {\n return url;\n }\n\n return null;\n}\n\n// Given message's received status, return name and color of a delivery indicator icon.\nexport function deliveryMarker(received) {\n switch (received) {\n case Tinode.MESSAGE_STATUS_SENDING:\n return { name: 'access_time' }; // watch face\n case Tinode.MESSAGE_STATUS_FAILED:\n return { name: 'warning', color: 'danger-color' }; // yellow icon /!\\\n case Tinode.MESSAGE_STATUS_SENT:\n return { name: 'done' }; // checkmark\n case Tinode.MESSAGE_STATUS_RECEIVED:\n return { name: 'done_all' }; // double checkmark\n case Tinode.MESSAGE_STATUS_READ:\n return { name: 'done_all', color: 'blue' }; // blue double checkmark\n }\n return null;\n}\n\n// Wraps a promise to make it cancelable.\n// The parameter can be either a promise or an error. If it's an error, the wrapped promise is\n// created in a rejected state.\nexport function cancelablePromise(promise) {\n let hasCanceled = false;\n\n const wrappedPromise = promise instanceof Error ?\n Promise.reject(promise) :\n new Promise((resolve, reject) => {\n promise.then(\n result => hasCanceled ? reject({isCanceled: true}) : resolve(result),\n error => hasCanceled ? reject({isCanceled: true}) : reject(error)\n );\n });\n\n return {\n promise: wrappedPromise,\n cancel() {\n hasCanceled = true;\n },\n };\n};\n\n// Clips string to the specified length.\nexport function clipStr(str, length) {\n return str && str.substring(0, length);\n}\n","// This is a generated file. Don't edit.\n\nexport const PACKAGE_VERSION = \"0.21.0-rc2\";\n","// Edit account parameters.\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport CheckBox from '../widgets/checkbox.jsx';\n\nexport default class EditAccountView extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.handleCheckboxClick = this.handleCheckboxClick.bind(this);\n }\n\n handleCheckboxClick(what, checked) {\n if (what == 'sound') {\n this.props.onToggleMessageSounds(checked);\n } else if (what == 'alert') {\n this.props.onTogglePushNotifications(checked);\n } else if (what == 'incognito') {\n this.props.onToggleIncognitoMode(checked);\n }\n }\n\n render() {\n return (\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n );\n }\n};\n","// Edit account parameters.\nimport React from 'react';\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\n\nimport InPlaceEdit from '../widgets/in-place-edit.jsx';\nimport PermissionsEditor from '../widgets/permissions-editor.jsx';\n\nconst messages = defineMessages({\n delete_account: {\n id: 'delete_account',\n defaultMessage: 'Delete account',\n description: 'Title for delete account warning'\n },\n delete_account_warning: {\n id: 'delete_account_warning',\n defaultMessage: 'Are you sure you want to delete your account? It cannot be undone.',\n description: 'Warning message when deleting an account'\n }\n});\n\nclass AccSecurityView extends React.Component {\n constructor(props) {\n super(props);\n\n const me = this.props.tinode.getMeTopic();\n let blockedCount = 0;\n me.contacts((c) => {\n if (c.acs && !c.acs.isJoiner()) {\n blockedCount ++;\n }\n });\n const defacs = me.getDefaultAccess();\n this.state = {\n auth: defacs ? defacs.auth : null,\n anon: defacs ? defacs.anon : null,\n showPermissionEditorFor: undefined,\n blockedCount: blockedCount,\n };\n\n this.handlePasswordUpdate = this.handlePasswordUpdate.bind(this);\n this.handleLaunchPermissionsEditor = this.handleLaunchPermissionsEditor.bind(this);\n this.handleHidePermissionsEditor = this.handleHidePermissionsEditor.bind(this);\n this.handlePermissionsChanged = this.handlePermissionsChanged.bind(this);\n this.handleDeleteAccount = this.handleDeleteAccount.bind(this);\n }\n\n handlePasswordUpdate(pwd) {\n this.setState({password: pwd});\n this.props.onUpdatePassword(pwd);\n }\n\n handleLaunchPermissionsEditor(which) {\n this.setState({\n showPermissionEditorFor: which,\n editedPermissions: this.state[which]\n });\n }\n\n handleHidePermissionsEditor() {\n this.setState({showPermissionEditorFor: undefined});\n }\n\n handlePermissionsChanged(perm) {\n let defacs = {};\n defacs[this.state.showPermissionEditorFor] = perm;\n this.props.onUpdateAccountDesc('me', undefined, undefined, defacs);\n\n let newState = {showPermissionEditorFor: undefined};\n newState[this.state.showPermissionEditorFor] = perm;\n this.setState(newState);\n }\n\n handleDeleteAccount(e) {\n e.preventDefault();\n const {formatMessage} = this.props.intl;\n this.props.onShowAlert(\n formatMessage(messages.delete_account), // title\n formatMessage(messages.delete_account_warning), // content\n (_ => this.props.onDeleteAccount()), // onConfirm\n null, // use default text \"OK\"\n true, // Show Reject button\n null // use default text \"Cancel\"\n );\n }\n\n render() {\n return (\n <>{this.state.showPermissionEditorFor ?\n \n :\n
\n );\n }\n};\n","import React from 'react';\n\nimport LetterTile from './letter-tile.jsx';\nimport LoadSpinner from './load-spinner.jsx';\n\nimport { sanitizeUrlForMime } from '../lib/utils.js';\n\nimport { AVATAR_SIZE } from '../config.js';\n\nexport default class AvatarUpload extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n source: props.avatar\n };\n\n this.handleFileReceived = this.handleFileReceived.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.avatar != prevProps.avatar) {\n this.setState({source: this.props.avatar});\n }\n }\n\n handleFileReceived(e) {\n const image = e.target.files[0];\n this.props.onImageUpdated(image.type, URL.createObjectURL(image), image.name);\n // Clear the value so the same file can be uploaded again.\n e.target.value = '';\n }\n\n render() {\n // Randomize id value in case more than one AvatarUpload is shown\n // at the same time.\n const randId = 'file-input-avatar-' + ('' + Math.random()).substring(0, 4);\n const className = 'avatar-upload' + (this.props.readOnly ? ' read-only' : '');\n return (\n
\n );\n }\n};\n","// A panel included into a list of contacts with an action text.\nimport React from 'react';\nimport { injectIntl } from 'react-intl';\n\nclass ContactAction extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick(e) {\n e.preventDefault();\n e.stopPropagation();\n this.props.onAction(this.props.action);\n }\n\n render() {\n const {formatMessage} = this.props.intl;\n return (\n
\n );\n }\n};\n\nexport default injectIntl(Contact);\n","// Context Menu: popup/dropdown menu.\nimport React from 'react';\nimport { injectIntl, defineMessages } from 'react-intl';\n\nimport { REM_SIZE } from '../config.js';\n\nconst messages = defineMessages({\n info: {\n id: 'menu_item_info',\n defaultMessage: 'Info',\n description: 'Show extended topic information'\n },\n clear_messages: {\n id: 'menu_item_clear_messages',\n defaultMessage: 'Clear messages',\n description: 'Delete all messages'\n },\n clear_for_all: {\n id: 'menu_item_clear_messages_for_all',\n defaultMessage: 'Clear for All',\n description: 'Delete all message(s) for all members'\n },\n delete: {\n id: 'menu_item_delete',\n defaultMessage: 'Delete',\n description: 'Delete selected messages'\n },\n delete_for_all: {\n id: 'menu_item_delete_for_all',\n defaultMessage: 'Delete for All',\n description: 'Delete selected message(s) for all members'\n },\n send_retry: {\n id: 'menu_item_send_retry',\n defaultMessage: 'Retry',\n description: 'Retry sending message'\n },\n mute: {\n id: 'menu_item_mute',\n defaultMessage: 'Mute',\n description: 'Turn off notifications'\n },\n unmute: {\n id: 'menu_item_unmute',\n defaultMessage: 'Unmute',\n description: 'Turn notifications on'\n },\n reply: {\n id: 'menu_item_reply',\n defaultMessage: 'Reply',\n description: 'Reply to message'\n },\n forward: {\n id: 'menu_item_forward',\n defaultMessage: 'Forward',\n description: 'Forward message'\n },\n edit: {\n id: 'menu_item_edit',\n defaultMessage: 'Edit',\n description: 'Edit message'\n },\n topic_delete: {\n id: 'menu_item_delete_topic',\n defaultMessage: 'Delete',\n description: 'Delete entire topic'\n },\n topic_delete_warning: {\n id: 'topic_delete_warning',\n defaultMessage: 'Are you sure you want to delete this conversation? It cannot be undone.',\n description: 'Alert warning when deleting entire topic'\n },\n delete_messages_warning: {\n id: 'delete_messages_warning',\n defaultMessage: 'Are you sure you want to delete all messages for everyone? It cannot be undone.',\n description: 'Alert dialog warning when hard-deleting all messages.'\n },\n unblock: {\n id: 'menu_item_unblock',\n defaultMessage: 'Unblock',\n description: 'Unblock topic or user'\n },\n // Generic string suitable for either topic or user.\n block: {\n id: 'menu_item_block',\n defaultMessage: 'Block',\n description: 'Block topic or user'\n },\n topic_block_warning: {\n id: 'topic_block_warning',\n defaultMessage: 'Are you sure you want to block this conversation?',\n description: 'Alert warning when blocking a topic.'\n },\n member_delete: {\n id: 'menu_item_member_delete',\n defaultMessage: 'Remove',\n description: 'Remove user from topic'\n },\n archive: {\n id: 'menu_item_archive_topic',\n defaultMessage: 'Archive',\n description: 'Move topic from the list of active chats to archive'\n },\n unarchive: {\n id: 'menu_item_restore_topic',\n defaultMessage: 'Restore',\n description: 'Restore topic from archive'\n },\n edit_permissions: {\n id: 'menu_item_edit_permissions',\n defaultMessage: 'Edit permissions',\n description: 'Menu item [Edit permissions]'\n },\n clear_messages_warning: {\n id: 'clear_messages_warning',\n defaultMessage: 'Are you sure you want to clear all messages? It cannot be undone.',\n description: 'Alert dialog warning when deleting all messages.'\n },\n});\n\nclass ContextMenu extends React.Component {\n constructor(props) {\n super(props);\n\n this.selfRef = React.createRef();\n\n const {formatMessage} = props.intl;\n\n this.handlePageClick = this.handlePageClick.bind(this);\n this.handleEscapeKey = this.handleEscapeKey.bind(this);\n this.handleClick = this.handleClick.bind(this);\n\n // Preconfigured menu items.\n this.MenuItems = {\n 'topic_info': {\n id: 'topic_info',\n title: formatMessage(messages.info),\n handler: null\n },\n 'messages_clear': {\n id: 'messages_clear',\n title: formatMessage(messages.clear_messages),\n handler: (params, errorHandler) => {\n return props.onShowAlert(\n formatMessage(messages.clear_messages), // title\n formatMessage(messages.clear_messages_warning), // content\n (_ => { this.deleteMessages(true, false, params, errorHandler); }), // onConfirm\n null, // \"OK\"\n true, // Show Reject button\n null // \"Cancel\"\n );\n }\n },\n 'messages_clear_hard': {\n id: 'messages_clear_hard',\n title: formatMessage(messages.clear_for_all),\n handler: (params, errorHandler) => {\n return props.onShowAlert(\n formatMessage(messages.clear_for_all), // title\n formatMessage(messages.delete_messages_warning), // content\n (_ => { return this.deleteMessages(true, true, params, errorHandler); }),\n null, // \"OK\"\n true, // Show Reject button\n null // \"Cancel\"\n );\n }\n },\n 'message_delete': {\n id: 'message_delete',\n title: formatMessage(messages.delete),\n handler: (params, errorHandler) => {\n return this.deleteMessages(false, false, params, errorHandler);\n }\n },\n 'message_delete_hard': {\n id: 'message_delete_hard',\n title: formatMessage(messages.delete_for_all),\n handler: (params, errorHandler) => {\n return this.deleteMessages(false, true, params, errorHandler);\n }\n },\n 'menu_item_send_retry': {\n id: 'menu_item_send_retry',\n title: formatMessage(messages.send_retry),\n handler: (params, errorHandler) => {\n return this.retryMessage(params, errorHandler);\n }\n },\n 'menu_item_reply': {\n id: 'menu_item_reply',\n title: formatMessage(messages.reply),\n handler: (params, errorHandler) => {\n return this.replyToMessage(params, errorHandler);\n }\n },\n 'menu_item_forward': {\n id: 'menu_item_forward',\n title: formatMessage(messages.forward),\n handler: _ => {} /* the action is taken directly in tinode-web */\n },\n 'menu_item_edit': {\n id: 'menu_item_edit',\n title: formatMessage(messages.edit),\n handler: (params, errorHandler) => {\n return this.editMessage(params, errorHandler);\n }\n },\n 'topic_unmute': {\n id: 'topic_unmute',\n title: formatMessage(messages.unmute),\n handler: this.topicPermissionSetter.bind(this, '+P')\n },\n 'topic_mute': {\n id: 'topic_mute',\n title: formatMessage(messages.mute),\n handler: this.topicPermissionSetter.bind(this, '-P')\n },\n 'topic_unblock': {\n id: 'topic_unblock',\n title: formatMessage(messages.unblock),\n handler: this.topicPermissionSetter.bind(this, '+JP')\n },\n 'topic_block': {\n id: 'topic_block',\n title: formatMessage(messages.block),\n handler: (params, errorHandler) => {\n return props.onShowAlert(\n formatMessage(messages.block), // title\n formatMessage(messages.topic_block_warning), // content\n (_ => this.topicPermissionSetter('-JP', params, errorHandler).then(ctrl => {\n this.props.onTopicRemoved(params.topicName);\n return ctrl;\n })),\n null, // \"OK\"\n true, // Show Reject button\n null // \"Cancel\"\n );\n }\n },\n 'topic_delete': {\n id: 'topic_delete',\n title: formatMessage(messages.topic_delete),\n handler: (params, errorHandler) => {\n return props.onShowAlert(\n formatMessage(messages.topic_delete), // title\n formatMessage(messages.topic_delete_warning), // content\n (_ => {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic) {\n console.warn(\"Topic not found: \", params.topicName);\n return;\n }\n return topic.delTopic(true).catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }),\n null, // \"OK\"\n true, // Show Reject button\n null // \"Cancel\"\n );\n }\n },\n 'topic_archive': {\n id: 'topic_archive',\n title: formatMessage(messages.archive),\n handler: (params, errorHandler) => {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic) {\n console.warn(\"Topic not found: \", params.topicName);\n return;\n }\n return topic.archive(true).catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }\n },\n 'topic_restore': {\n id: 'topic_restore',\n title: formatMessage(messages.unarchive),\n handler: (params, errorHandler) => {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic) {\n console.warn(\"Topic not found: \", params.topicName);\n return;\n }\n return topic.archive(false).catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }\n },\n // menu_item_edit_permissions is defined elsewhere.\n 'permissions': {\n id: 'permissions',\n title: formatMessage(messages.edit_permissions),\n handler: null\n },\n 'member_delete': {\n id: 'member_delete',\n title: formatMessage(messages.member_delete),\n handler: (params, errorHandler) => {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic || !params.user) {\n console.warn(\"Topic or user not found: '\" + params.topicName + \"', '\" + params.user + \"'\");\n return;\n }\n return topic.delSubscription(params.user).catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }\n },\n 'member_mute': {\n id: 'member_mute',\n title: formatMessage(messages.mute),\n handler: this.topicPermissionSetter.bind(this, '-P')\n },\n 'member_unmute': {\n id: 'member_unmute',\n title: formatMessage(messages.unmute),\n handler: this.topicPermissionSetter.bind(this, '+P')\n },\n 'member_block': {\n id: 'member_block',\n title: formatMessage(messages.block),\n handler: this.topicPermissionSetter.bind(this, '-JP')\n },\n 'member_unblock': {\n id: 'member_unblock',\n title: formatMessage(messages.unblock),\n handler: this.topicPermissionSetter.bind(this, '+JP')\n },\n };\n }\n\n componentDidMount() {\n document.addEventListener('mousedown', this.handlePageClick, false);\n document.addEventListener('keyup', this.handleEscapeKey, false);\n }\n\n componentWillUnmount() {\n document.removeEventListener('mousedown', this.handlePageClick, false);\n document.removeEventListener('keyup', this.handleEscapeKey, false);\n }\n\n handlePageClick(e) {\n if (this.selfRef.current.contains(e.target)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n this.props.hide();\n }\n\n handleEscapeKey(e) {\n if (e.keyCode === 27) {\n this.props.hide();\n }\n }\n\n handleClick(e) {\n e.preventDefault();\n e.stopPropagation();\n this.props.hide();\n let item = this.props.items[e.currentTarget.dataset.id];\n if (typeof item == 'string') {\n item = this.MenuItems[item];\n }\n\n if (!item) {\n console.error(\"Invalid menu item ID\", e.currentTarget.dataset.id);\n } else {\n this.props.onAction(\n item.id,\n item.handler(this.props.params, this.props.onError),\n this.props.params);\n }\n }\n\n // Menu Actions\n\n deleteMessages(all, hard, params, errorHandler) {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic) {\n console.warn(\"Topic not found: \", params.topicName);\n return;\n }\n\n // We don't know if the message is still pending (e.g. attachment is being uploaded),\n // so try cancelling first. No harm if we can't cancel.\n // The message can be cancelled if transmission to the server has not\n // started yet or if the message send has failed.\n if (!all && topic.cancelSend(params.seq)) {\n return;\n }\n\n const promise = all ?\n topic.delMessagesAll(hard) :\n params.replace > 0 ?\n topic.delMessagesEdits(params.replace, hard) :\n topic.delMessagesList([params.seq], hard);\n\n return promise.catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }\n\n // Retries sending failed message.\n retryMessage(params, errorHandler) {\n const topic = this.props.tinode.getTopic(params.topicName);\n // Remove the existing message entry.\n if (!topic || !topic.flushMessage(params.seq)) {\n return;\n }\n const msg = topic.createMessage(params.content, false);\n return topic.publishDraft(msg).catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }\n\n // Function is used by context menu to set permissions.\n topicPermissionSetter(mode, params, errorHandler) {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic) {\n console.warn(\"Topic not found\", params.topicName);\n return;\n }\n\n let result = topic.updateMode(params.user, mode);\n if (errorHandler) {\n result = result.catch(err => errorHandler(err.message, 'err'));\n }\n return result;\n }\n\n replyToMessage(params, errorHandler) {\n params.pickReply(params.seq, params.content, params.userFrom, params.userName, errorHandler);\n }\n\n editMessage(params, errorHandler) {\n params.editMessage(params.replace || params.seq, params.content, errorHandler);\n }\n\n render() {\n const menu = [];\n let count = 0;\n this.props.items.map((item) => {\n if (typeof item == 'string') {\n item = this.MenuItems[item];\n }\n if (item && item.title) {\n menu.push(\n item.title == '-' ?\n \n :\n
{item.title}
\n );\n }\n count++;\n });\n\n // Ensure that menu is inside the app-container.\n const hSize = 12 * REM_SIZE;\n const vSize = REM_SIZE * (0.7 + menu.length * 2.5);\n const left = (this.props.bounds.right - this.props.clickAt.x < hSize) ?\n (this.props.clickAt.x - this.props.bounds.left - hSize) :\n (this.props.clickAt.x - this.props.bounds.left);\n const top = (this.props.bounds.bottom - this.props.clickAt.y < vSize) ?\n (this.props.clickAt.y - this.props.bounds.top - vSize) :\n (this.props.clickAt.y - this.props.bounds.top);\n\n const position = {\n left: left + 'px',\n top: top + 'px'\n };\n\n return (\n
\n {menu}\n
\n );\n }\n}\n\nexport default injectIntl(ContextMenu);\n","// Image zoom and crop widget.\n\nimport React from 'react';\n\nconst DEFAULT_MAX_ZOOM = 2.5;\n\nexport default class Cropper extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n // Coordinates of the top left corner of the image in container coordinates.\n panX: 0,\n panY: 0,\n // Origin of the zoom in image coordinates.\n originX: 0,\n originY: 0,\n // Zoom scale.\n zoom: 1,\n // Zoom min and max.\n minZoom: 0,\n maxZoom: DEFAULT_MAX_ZOOM,\n };\n\n // References to DOM elements for hooking up events and getting screen dimensions.\n // The transparent element which captures mouse moves (moves with the image).\n this.overlay = React.createRef();\n // The image cutout window or view port (static).\n this.cutout = React.createRef();\n // Scaled and translated image preview.\n this.preview = React.createRef();\n // The main container (static).\n this.boundingBox = React.createRef();\n\n // The original image width and height before any scaling.\n this.imageWidth = 0;\n this.imageHeight = 0;\n\n // Mouse position when dragging.\n this.mouseX = 0\n this.mouseY = 0;\n // Length of the previous mouse move when dragging.\n this.prevDistance = 0;\n\n // Bounding rectangles of static elements.\n this.cutoutRect = {};\n this.bBoxRect = {};\n // Center of the bounding box.\n this.originX = 0;\n this.originY = 0;\n\n this.initScaling = this.initScaling.bind(this);\n this.onZoom = this.onZoom.bind(this);\n this.handleZoom = this.handleZoom.bind(this);\n this.mouseDown = this.mouseDown.bind(this);\n this.mouseUp = this.mouseUp.bind(this);\n this.mouseMove = this.mouseMove.bind(this);\n this.mouseTouch = this.mouseTouch.bind(this);\n this.positionAll = this.positionAll.bind(this);\n this.translate = this.translate.bind(this);\n }\n\n componentDidMount() {\n this.overlay.current.addEventListener('mousedown', this.mouseDown, { passive: true });\n this.overlay.current.addEventListener('touchstart', this.mouseDown, { passive: true });\n\n // The rectangle position is in viewport coordinates.\n this.bBoxRect = this.boundingBox.current.getBoundingClientRect();\n // Center of the bounding box in container coordinates.\n this.originX = this.bBoxRect.width / 2;\n this.originY = this.bBoxRect.height / 2;\n\n // The rectangle position is in viewport coordinates.\n this.cutoutRect = this.cutout.current.getBoundingClientRect();\n }\n\n componentWillUnmount() {\n this.overlay.current.removeEventListener('mousedown', this.mouseDown);\n this.overlay.current.removeEventListener('touchstart', this.mouseDown);\n }\n\n // Position all elements.\n positionAll(panX, panY, zoom) {\n // Zoom origin in image preview coordinates.\n this.setState({\n panX: panX,\n panY: panY,\n zoom: zoom,\n originX: this.originX - panX,\n originY: this.originY - panY,\n });\n\n // Pass cut out coordinates to caller.\n const left = (this.originX - panX) * zoom - this.originX;\n const top = (this.originY - panY) * zoom - this.originY;\n this.props.onChange(\n (left + this.cutoutRect.left - this.bBoxRect.left) / zoom,\n (top + this.cutoutRect.top - this.bBoxRect.top) / zoom,\n this.cutoutRect.width / zoom,\n this.cutoutRect.height / zoom,\n zoom);\n }\n\n // Check if new location is within the limits.\n static checkBound(currPan, img, cutout, delta) {\n let nextDiff = Math.min(0, cutout[0] - img[0] - delta, img[1] - cutout[1] + delta);\n if (nextDiff == 0) {\n // Cutout is completely within the image.\n currPan += delta;\n } else if (Math.min(0, cutout[0] - img[0], img[1] - cutout[1]) < nextDiff) {\n // Cutout is outside of the range but closer to the bound.\n currPan += delta;\n }\n return currPan;\n }\n\n initScaling() {\n // Initialize components.\n const imgRect = this.preview.current.getBoundingClientRect();\n\n this.imageWidth = imgRect.width;\n this.imageHeight = imgRect.height;\n\n // Set zoom slider's min and max values. Make sure the scaled image cannot be smaller than the cutout.\n const minZoom = Math.max(this.cutoutRect.width / imgRect.width, this.cutoutRect.height / imgRect.height);\n this.setState({\n minZoom: minZoom,\n maxZoom: Math.max(DEFAULT_MAX_ZOOM, minZoom + 1)\n });\n\n // Initial zoom level fills the bounding box at the smallest image dimension and overflows the largest, i.e. \"fill\" not \"fit\".\n const zoom = Math.max(this.bBoxRect.width / imgRect.width, this.bBoxRect.height / imgRect.height);\n // Converting from viewport coordinates to container, then panning.\n const panX = this.cutoutRect.left - this.bBoxRect.left -\n (imgRect.width - this.cutoutRect.width) / 2;\n const panY = this.cutoutRect.top - this.bBoxRect.top -\n (imgRect.height - this.cutoutRect.height) / 2;\n\n this.positionAll(panX, panY, zoom);\n }\n\n onZoom(e) {\n this.handleZoom(e.target.value);\n }\n\n handleZoom(zoom) {\n let panX = this.state.panX;\n let panY = this.state.panY;\n\n // Ensure that the image at the new zoom is not outside of the cutout boundaries.\n // Calculate image coordinates at the new zoom.\n const imgLeft = this.originX - (this.originX - panX) * zoom;\n const imgRight = imgLeft + this.imageWidth * zoom;\n // Cutout in the same coordinates as the image.\n const coLeft = this.cutoutRect.left - this.bBoxRect.left;\n const coRight = coLeft + this.cutoutRect.width;\n if (coLeft < imgLeft) {\n panX -= imgLeft - coLeft;\n } else if (coRight > imgRight) {\n panX += coRight - imgRight;\n }\n const imgTop = this.originY - (this.originY - panY) * zoom;\n const imgBottom = imgTop + this.imageHeight * zoom;\n const coTop = this.cutoutRect.top - this.bBoxRect.top;\n const coBottom = coTop + this.cutoutRect.height;\n if (coTop < imgTop) {\n panY -= imgTop - coTop;\n } else if (coBottom > imgBottom) {\n panY += coBottom - imgBottom;\n }\n\n this.positionAll(panX, panY, zoom);\n }\n\n mouseDown(e) {\n if (e.touches) {\n this.mouseX = e.touches[0].pageX;\n this.mouseY = e.touches[0].pageY;\n } else {\n this.mouseX = e.pageX;\n this.mouseY = e.pageY;\n }\n\n window.addEventListener('mousemove', this.mouseMove, { passive: false });\n window.addEventListener('touchmove', this.mouseTouch, { passive: false });\n window.addEventListener('mouseup', this.mouseUp, { passive: true });\n window.addEventListener('touchend', this.mouseUp, { passive: true });\n // Disable text selection in the entire document.\n document.body.style['userSelect'] = 'none';\n }\n\n // Perform image panning.\n translate(pageX, pageY) {\n const dX = pageX - this.mouseX;\n const dY = pageY - this.mouseY;\n\n this.mouseX = pageX;\n this.mouseY = pageY;\n\n // Make sure the image is within the cutout window.\n const imgRect = this.preview.current.getBoundingClientRect();\n\n // Check if the new position is within the boundaries, and if not if it's closer to them.\n let panX = Cropper.checkBound(this.state.panX, [imgRect.left, imgRect.right],\n [this.cutoutRect.left, this.cutoutRect.right], dX);\n let panY = Cropper.checkBound(this.state.panY, [imgRect.top, imgRect.bottom],\n [this.cutoutRect.top, this.cutoutRect.bottom], dY);\n\n this.positionAll(panX, panY, this.state.zoom);\n }\n\n // Image panning.\n mouseMove(e) {\n e.preventDefault();\n this.translate(e.pageX, e.pageY);\n }\n\n mouseTouch(e) {\n e.preventDefault();\n\n if (e.touches.length == 1) {\n this.translate(e.touches[0].pageX, e.touches[0].pageY);\n return;\n }\n\n // Image zooming by pinching.\n const [touch0, touch1] = e.touches;\n const distance = Math.sqrt((touch0.pageX - touch1.pageX) * (touch0.pageX - touch1.pageX) +\n (touch0.pageY - touch1.pageY) * (touch0.pageY - touch1.pageY));\n\n if (!this.prevDistance) {\n this.prevDistance = distance / this.state.zoom;\n }\n\n let scale = (distance / this.prevDistance);\n this.handleZoom(Math.max(this.minZoom, Math.min(this.maxZoom, scale)));\n }\n\n mouseUp(e) {\n window.removeEventListener('mousemove', this.mouseMove);\n window.removeEventListener('touchmove', this.mouseTouch);\n window.removeEventListener('mouseup', this.mouseUp);\n window.removeEventListener('touchend', this.mouseUp);\n // Re-enable text selection.\n document.body.style['userSelect'] = '';\n\n this.positionAll(this.state.panX, this.state.panY, this.state.zoom);\n }\n\n render() {\n // transform3d: position and scale.\n const t3d = `translate3d(${this.state.panX}px, ${this.state.panY}px, 0) scale(${this.state.zoom})`;\n // transformOrigin: zoom origin.\n const orig = `${this.state.originX}px ${this.state.originY}px`;\n\n // Overlay position and size are exactly equal to the position and size of the transformed image\n // except it uses different coordinates.\n const overlay = {\n top: `${this.originY - this.state.originY * this.state.zoom}px`,\n left: `${this.originX - this.state.originX * this.state.zoom}px`,\n width: `${this.imageWidth * this.state.zoom}px`,\n height: `${this.imageHeight * this.state.zoom}px`\n };\n return (\n
\n
\n \n \n \n
\n
\n \n
\n
\n );\n }\n}\n","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport SendMessage from '../widgets/send-message.jsx';\n\nimport { bytesToHumanSize, shortenFileName } from '../lib/strformat.js';\n\n// Get material icon name from mime type.\nfunction iconFromMime(mime) {\n // If more icons become available in material icons, add them to this mime-to-icon mapping.\n const mimeToIcon = {default: 'insert_drive_file', image: 'image', text: 'description', video: 'theaters'};\n\n return mimeToIcon[mime] || mimeToIcon[(mime || '').split('/')[0]] || mimeToIcon['default'];\n}\n\nexport default class DocPreview extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.handleSendDoc = this.handleSendDoc.bind(this);\n }\n\n handleSendDoc(caption) {\n this.props.onClose();\n this.props.onSendMessage(this.props.content.file);\n }\n\n render() {\n if (!this.props.content) {\n return null;\n }\n return (\n
\n );\n }\n}\n","// GroupMembers: control for managing a list of group members.\nimport React from 'react';\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\n\nimport ChipInput from './chip-input.jsx';\nimport ContactList from './contact-list.jsx';\n\nconst messages = defineMessages({\n no_contacts: {\n id: 'no_contacts',\n defaultMessage: 'You have no contacts :-(',\n description: 'Shown in ContactsView when the user has no contacts'\n },\n contacts_not_found_short: {\n id: 'contacts_not_found_short',\n defaultMessage: \"No contacts match ''{query}''\",\n description: 'Shown in ContactsView when search returned no results'\n }\n});\n\nclass GroupManager extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n // Array of topic members\n members: props.members,\n index: GroupManager.indexMembers(props.members),\n staticMembers: GroupManager.staticMembers(props.members, props.keepInitialMembers, props.requiredMember),\n contactFilter: '',\n noContactsMessage: props.intl.formatMessage(messages.no_contacts),\n selectedContacts: GroupManager.selectedContacts(props.members)\n };\n\n this.handleContactSelected = this.handleContactSelected.bind(this);\n this.handleMemberRemoved = this.handleMemberRemoved.bind(this);\n this.handleContactFilter = this.handleContactFilter.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n }\n\n static indexMembers(members) {\n let index = {};\n members.map((m) => {\n index[m.user] = {delta: 0, present: true}; // Delta: 0 unchanged, +1 added, -1 removed\n });\n return index;\n }\n\n static staticMembers(members, keepInitial, requiredMember) {\n let stat = [];\n members.map((m) => {\n if (keepInitial || m.user == requiredMember) {\n stat.push(m.user);\n }\n });\n return stat;\n }\n\n static selectedContacts(members) {\n let sel = [];\n members.map((m) => {\n sel.push(m.user);\n });\n return sel;\n }\n\n handleContactSelected(userId, index) {\n let status = this.state.index[userId];\n if (status) {\n if (status.present) {\n // Prevent duplicate members\n return;\n }\n status.delta += 1;\n status.present = true;\n } else {\n status = {delta: 1, present: true};\n }\n\n let m = this.state.members.slice();\n m.push(this.props.contacts[index]);\n\n const sel = GroupManager.selectedContacts(m);\n\n const i = this.state.index;\n i[userId] = status;\n\n this.setState({members: m, index: i, selectedContacts: sel});\n }\n\n handleMemberRemoved(userId, index) {\n const status = this.state.index[userId];\n if (!status || !status.present) {\n return;\n }\n status.present = false;\n status.delta -= 1;\n\n let m = this.state.members.slice();\n m.splice(index, 1);\n\n const sel = GroupManager.selectedContacts(m);\n\n const i = this.state.index;\n i[userId] = status;\n\n this.setState({members: m, index: i, selectedContacts: sel});\n }\n\n handleContactFilter(val) {\n const {formatMessage} = this.props.intl;\n const msg = !val ?\n formatMessage(messages.no_contacts) :\n formatMessage(messages.contacts_not_found_short, {query: val});\n\n this.setState({contactFilter: val, noContactsMessage: msg});\n }\n\n static doContactFiltering(filter, values) {\n if (filter) {\n for (let i=0; i= 0) {\n return true;\n }\n }\n return false;\n }\n return true;\n }\n\n handleSubmit() {\n var instance = this;\n var members = [];\n var added = [];\n var removed = [];\n\n var keys = Object.keys(this.state.index);\n keys.map(function(k) {\n if (instance.state.index[k].present) {\n members.push(k);\n }\n\n if (instance.state.index[k].delta > 0) {\n added.push(k);\n } else if (instance.state.index[k].delta < 0) {\n removed.push(k);\n }\n });\n this.props.onSubmit(members, added, removed);\n }\n\n handleCancel() {\n this.props.onCancel();\n }\n\n render() {\n const {formatMessage} = this.props.intl;\n return (\n
\n
\n \n
\n
\n \n
\n
\n \n
\n \n
\n \n \n
\n
\n );\n }\n};\n\nexport default injectIntl(GroupManager);\n","// GroupSubs: a list of group subscribers currently online.\n// Show in the topic title bar\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { MAX_ONLINE_IN_TOPIC } from '../config.js'\n\nimport LetterTile from './letter-tile.jsx';\nimport { makeImageUrl } from '../lib/blob-helpers.js';\n\nexport default class GroupSubs extends React.Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n const usersOnline = [];\n const totalCount = (this.props.subscribers || []).length;\n const countToShow = Math.min(MAX_ONLINE_IN_TOPIC, totalCount);\n\n (this.props.subscribers || []).some((sub) => {\n usersOnline.push(\n
: null);\n }\n}\n","// The X menu to be displayed in title bars.\nimport React from 'react';\n\nexport default class MenuCancel extends React.PureComponent {\n render() {\n return (\n {e.preventDefault(); this.props.onCancel();}}>\n close\n \n );\n }\n}\n","import React from 'react';\n\nexport default class MenuContacts extends React.PureComponent {\n render() {\n return (\n
\n );\n }\n};\n","// Message bubble with non-payload content, such as an indicator of deleted content or a date stamp.\n\nimport React from 'react';\n\nexport default class MetaMessage extends React.PureComponent {\n constructor(props) {\n super(props);\n }\n\n render() {\n let content = null;\n let bubbleClass = 'bubble';\n if (this.props.date) {\n // A date badge.\n content = <>{this.props.date}>\n bubbleClass += ' date';\n }\n\n if (!content) {\n return <>{null}>\n }\n\n return (\n
\n );\n }\n}\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","module.exports = React;","module.exports = ReactDOM;","module.exports = ReactIntl;","module.exports = Tinode;","import { Component, ComponentContainer } from '@firebase/component';\nimport { Logger, setUserLogHandler, setLogLevel as setLogLevel$1 } from '@firebase/logger';\nimport { ErrorFactory, getDefaultAppConfig, deepEqual, FirebaseError, base64urlEncodeWithoutPadding, isIndexedDBAvailable, validateIndexedDBOpenable } from '@firebase/util';\nexport { FirebaseError } from '@firebase/util';\nimport { openDB } from 'idb';\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nclass PlatformLoggerServiceImpl {\r\n constructor(container) {\r\n this.container = container;\r\n }\r\n // In initial implementation, this will be called by installations on\r\n // auth token refresh, and installations will send this string.\r\n getPlatformInfoString() {\r\n const providers = this.container.getProviders();\r\n // Loop through providers and get library/version pairs from any that are\r\n // version components.\r\n return providers\r\n .map(provider => {\r\n if (isVersionServiceProvider(provider)) {\r\n const service = provider.getImmediate();\r\n return `${service.library}/${service.version}`;\r\n }\r\n else {\r\n return null;\r\n }\r\n })\r\n .filter(logString => logString)\r\n .join(' ');\r\n }\r\n}\r\n/**\r\n *\r\n * @param provider check if this provider provides a VersionService\r\n *\r\n * NOTE: Using Provider<'app-version'> is a hack to indicate that the provider\r\n * provides VersionService. The provider is not necessarily a 'app-version'\r\n * provider.\r\n */\r\nfunction isVersionServiceProvider(provider) {\r\n const component = provider.getComponent();\r\n return (component === null || component === void 0 ? void 0 : component.type) === \"VERSION\" /* ComponentType.VERSION */;\r\n}\n\nconst name$o = \"@firebase/app\";\nconst version$1 = \"0.9.1\";\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst logger = new Logger('@firebase/app');\n\nconst name$n = \"@firebase/app-compat\";\n\nconst name$m = \"@firebase/analytics-compat\";\n\nconst name$l = \"@firebase/analytics\";\n\nconst name$k = \"@firebase/app-check-compat\";\n\nconst name$j = \"@firebase/app-check\";\n\nconst name$i = \"@firebase/auth\";\n\nconst name$h = \"@firebase/auth-compat\";\n\nconst name$g = \"@firebase/database\";\n\nconst name$f = \"@firebase/database-compat\";\n\nconst name$e = \"@firebase/functions\";\n\nconst name$d = \"@firebase/functions-compat\";\n\nconst name$c = \"@firebase/installations\";\n\nconst name$b = \"@firebase/installations-compat\";\n\nconst name$a = \"@firebase/messaging\";\n\nconst name$9 = \"@firebase/messaging-compat\";\n\nconst name$8 = \"@firebase/performance\";\n\nconst name$7 = \"@firebase/performance-compat\";\n\nconst name$6 = \"@firebase/remote-config\";\n\nconst name$5 = \"@firebase/remote-config-compat\";\n\nconst name$4 = \"@firebase/storage\";\n\nconst name$3 = \"@firebase/storage-compat\";\n\nconst name$2 = \"@firebase/firestore\";\n\nconst name$1 = \"@firebase/firestore-compat\";\n\nconst name = \"firebase\";\nconst version = \"9.16.0\";\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * The default app name\r\n *\r\n * @internal\r\n */\r\nconst DEFAULT_ENTRY_NAME = '[DEFAULT]';\r\nconst PLATFORM_LOG_STRING = {\r\n [name$o]: 'fire-core',\r\n [name$n]: 'fire-core-compat',\r\n [name$l]: 'fire-analytics',\r\n [name$m]: 'fire-analytics-compat',\r\n [name$j]: 'fire-app-check',\r\n [name$k]: 'fire-app-check-compat',\r\n [name$i]: 'fire-auth',\r\n [name$h]: 'fire-auth-compat',\r\n [name$g]: 'fire-rtdb',\r\n [name$f]: 'fire-rtdb-compat',\r\n [name$e]: 'fire-fn',\r\n [name$d]: 'fire-fn-compat',\r\n [name$c]: 'fire-iid',\r\n [name$b]: 'fire-iid-compat',\r\n [name$a]: 'fire-fcm',\r\n [name$9]: 'fire-fcm-compat',\r\n [name$8]: 'fire-perf',\r\n [name$7]: 'fire-perf-compat',\r\n [name$6]: 'fire-rc',\r\n [name$5]: 'fire-rc-compat',\r\n [name$4]: 'fire-gcs',\r\n [name$3]: 'fire-gcs-compat',\r\n [name$2]: 'fire-fst',\r\n [name$1]: 'fire-fst-compat',\r\n 'fire-js': 'fire-js',\r\n [name]: 'fire-js-all'\r\n};\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @internal\r\n */\r\nconst _apps = new Map();\r\n/**\r\n * Registered components.\r\n *\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nconst _components = new Map();\r\n/**\r\n * @param component - the component being added to this app's container\r\n *\r\n * @internal\r\n */\r\nfunction _addComponent(app, component) {\r\n try {\r\n app.container.addComponent(component);\r\n }\r\n catch (e) {\r\n logger.debug(`Component ${component.name} failed to register with FirebaseApp ${app.name}`, e);\r\n }\r\n}\r\n/**\r\n *\r\n * @internal\r\n */\r\nfunction _addOrOverwriteComponent(app, component) {\r\n app.container.addOrOverwriteComponent(component);\r\n}\r\n/**\r\n *\r\n * @param component - the component to register\r\n * @returns whether or not the component is registered successfully\r\n *\r\n * @internal\r\n */\r\nfunction _registerComponent(component) {\r\n const componentName = component.name;\r\n if (_components.has(componentName)) {\r\n logger.debug(`There were multiple attempts to register component ${componentName}.`);\r\n return false;\r\n }\r\n _components.set(componentName, component);\r\n // add the component to existing app instances\r\n for (const app of _apps.values()) {\r\n _addComponent(app, component);\r\n }\r\n return true;\r\n}\r\n/**\r\n *\r\n * @param app - FirebaseApp instance\r\n * @param name - service name\r\n *\r\n * @returns the provider for the service with the matching name\r\n *\r\n * @internal\r\n */\r\nfunction _getProvider(app, name) {\r\n const heartbeatController = app.container\r\n .getProvider('heartbeat')\r\n .getImmediate({ optional: true });\r\n if (heartbeatController) {\r\n void heartbeatController.triggerHeartbeat();\r\n }\r\n return app.container.getProvider(name);\r\n}\r\n/**\r\n *\r\n * @param app - FirebaseApp instance\r\n * @param name - service name\r\n * @param instanceIdentifier - service instance identifier in case the service supports multiple instances\r\n *\r\n * @internal\r\n */\r\nfunction _removeServiceInstance(app, name, instanceIdentifier = DEFAULT_ENTRY_NAME) {\r\n _getProvider(app, name).clearInstance(instanceIdentifier);\r\n}\r\n/**\r\n * Test only\r\n *\r\n * @internal\r\n */\r\nfunction _clearComponents() {\r\n _components.clear();\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst ERRORS = {\r\n [\"no-app\" /* AppError.NO_APP */]: \"No Firebase App '{$appName}' has been created - \" +\r\n 'call Firebase App.initializeApp()',\r\n [\"bad-app-name\" /* AppError.BAD_APP_NAME */]: \"Illegal App name: '{$appName}\",\r\n [\"duplicate-app\" /* AppError.DUPLICATE_APP */]: \"Firebase App named '{$appName}' already exists with different options or config\",\r\n [\"app-deleted\" /* AppError.APP_DELETED */]: \"Firebase App named '{$appName}' already deleted\",\r\n [\"no-options\" /* AppError.NO_OPTIONS */]: 'Need to provide options, when not being deployed to hosting via source.',\r\n [\"invalid-app-argument\" /* AppError.INVALID_APP_ARGUMENT */]: 'firebase.{$appName}() takes either no argument or a ' +\r\n 'Firebase App instance.',\r\n [\"invalid-log-argument\" /* AppError.INVALID_LOG_ARGUMENT */]: 'First argument to `onLog` must be null or a function.',\r\n [\"idb-open\" /* AppError.IDB_OPEN */]: 'Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.',\r\n [\"idb-get\" /* AppError.IDB_GET */]: 'Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.',\r\n [\"idb-set\" /* AppError.IDB_WRITE */]: 'Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.',\r\n [\"idb-delete\" /* AppError.IDB_DELETE */]: 'Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.'\r\n};\r\nconst ERROR_FACTORY = new ErrorFactory('app', 'Firebase', ERRORS);\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nclass FirebaseAppImpl {\r\n constructor(options, config, container) {\r\n this._isDeleted = false;\r\n this._options = Object.assign({}, options);\r\n this._config = Object.assign({}, config);\r\n this._name = config.name;\r\n this._automaticDataCollectionEnabled =\r\n config.automaticDataCollectionEnabled;\r\n this._container = container;\r\n this.container.addComponent(new Component('app', () => this, \"PUBLIC\" /* ComponentType.PUBLIC */));\r\n }\r\n get automaticDataCollectionEnabled() {\r\n this.checkDestroyed();\r\n return this._automaticDataCollectionEnabled;\r\n }\r\n set automaticDataCollectionEnabled(val) {\r\n this.checkDestroyed();\r\n this._automaticDataCollectionEnabled = val;\r\n }\r\n get name() {\r\n this.checkDestroyed();\r\n return this._name;\r\n }\r\n get options() {\r\n this.checkDestroyed();\r\n return this._options;\r\n }\r\n get config() {\r\n this.checkDestroyed();\r\n return this._config;\r\n }\r\n get container() {\r\n return this._container;\r\n }\r\n get isDeleted() {\r\n return this._isDeleted;\r\n }\r\n set isDeleted(val) {\r\n this._isDeleted = val;\r\n }\r\n /**\r\n * This function will throw an Error if the App has already been deleted -\r\n * use before performing API actions on the App.\r\n */\r\n checkDestroyed() {\r\n if (this.isDeleted) {\r\n throw ERROR_FACTORY.create(\"app-deleted\" /* AppError.APP_DELETED */, { appName: this._name });\r\n }\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * The current SDK version.\r\n *\r\n * @public\r\n */\r\nconst SDK_VERSION = version;\r\nfunction initializeApp(_options, rawConfig = {}) {\r\n let options = _options;\r\n if (typeof rawConfig !== 'object') {\r\n const name = rawConfig;\r\n rawConfig = { name };\r\n }\r\n const config = Object.assign({ name: DEFAULT_ENTRY_NAME, automaticDataCollectionEnabled: false }, rawConfig);\r\n const name = config.name;\r\n if (typeof name !== 'string' || !name) {\r\n throw ERROR_FACTORY.create(\"bad-app-name\" /* AppError.BAD_APP_NAME */, {\r\n appName: String(name)\r\n });\r\n }\r\n options || (options = getDefaultAppConfig());\r\n if (!options) {\r\n throw ERROR_FACTORY.create(\"no-options\" /* AppError.NO_OPTIONS */);\r\n }\r\n const existingApp = _apps.get(name);\r\n if (existingApp) {\r\n // return the existing app if options and config deep equal the ones in the existing app.\r\n if (deepEqual(options, existingApp.options) &&\r\n deepEqual(config, existingApp.config)) {\r\n return existingApp;\r\n }\r\n else {\r\n throw ERROR_FACTORY.create(\"duplicate-app\" /* AppError.DUPLICATE_APP */, { appName: name });\r\n }\r\n }\r\n const container = new ComponentContainer(name);\r\n for (const component of _components.values()) {\r\n container.addComponent(component);\r\n }\r\n const newApp = new FirebaseAppImpl(options, config, container);\r\n _apps.set(name, newApp);\r\n return newApp;\r\n}\r\n/**\r\n * Retrieves a {@link @firebase/app#FirebaseApp} instance.\r\n *\r\n * When called with no arguments, the default app is returned. When an app name\r\n * is provided, the app corresponding to that name is returned.\r\n *\r\n * An exception is thrown if the app being retrieved has not yet been\r\n * initialized.\r\n *\r\n * @example\r\n * ```javascript\r\n * // Return the default app\r\n * const app = getApp();\r\n * ```\r\n *\r\n * @example\r\n * ```javascript\r\n * // Return a named app\r\n * const otherApp = getApp(\"otherApp\");\r\n * ```\r\n *\r\n * @param name - Optional name of the app to return. If no name is\r\n * provided, the default is `\"[DEFAULT]\"`.\r\n *\r\n * @returns The app corresponding to the provided app name.\r\n * If no app name is provided, the default app is returned.\r\n *\r\n * @public\r\n */\r\nfunction getApp(name = DEFAULT_ENTRY_NAME) {\r\n const app = _apps.get(name);\r\n if (!app && name === DEFAULT_ENTRY_NAME) {\r\n return initializeApp();\r\n }\r\n if (!app) {\r\n throw ERROR_FACTORY.create(\"no-app\" /* AppError.NO_APP */, { appName: name });\r\n }\r\n return app;\r\n}\r\n/**\r\n * A (read-only) array of all initialized apps.\r\n * @public\r\n */\r\nfunction getApps() {\r\n return Array.from(_apps.values());\r\n}\r\n/**\r\n * Renders this app unusable and frees the resources of all associated\r\n * services.\r\n *\r\n * @example\r\n * ```javascript\r\n * deleteApp(app)\r\n * .then(function() {\r\n * console.log(\"App deleted successfully\");\r\n * })\r\n * .catch(function(error) {\r\n * console.log(\"Error deleting app:\", error);\r\n * });\r\n * ```\r\n *\r\n * @public\r\n */\r\nasync function deleteApp(app) {\r\n const name = app.name;\r\n if (_apps.has(name)) {\r\n _apps.delete(name);\r\n await Promise.all(app.container\r\n .getProviders()\r\n .map(provider => provider.delete()));\r\n app.isDeleted = true;\r\n }\r\n}\r\n/**\r\n * Registers a library's name and version for platform logging purposes.\r\n * @param library - Name of 1p or 3p library (e.g. firestore, angularfire)\r\n * @param version - Current version of that library.\r\n * @param variant - Bundle variant, e.g., node, rn, etc.\r\n *\r\n * @public\r\n */\r\nfunction registerVersion(libraryKeyOrName, version, variant) {\r\n var _a;\r\n // TODO: We can use this check to whitelist strings when/if we set up\r\n // a good whitelist system.\r\n let library = (_a = PLATFORM_LOG_STRING[libraryKeyOrName]) !== null && _a !== void 0 ? _a : libraryKeyOrName;\r\n if (variant) {\r\n library += `-${variant}`;\r\n }\r\n const libraryMismatch = library.match(/\\s|\\//);\r\n const versionMismatch = version.match(/\\s|\\//);\r\n if (libraryMismatch || versionMismatch) {\r\n const warning = [\r\n `Unable to register library \"${library}\" with version \"${version}\":`\r\n ];\r\n if (libraryMismatch) {\r\n warning.push(`library name \"${library}\" contains illegal characters (whitespace or \"/\")`);\r\n }\r\n if (libraryMismatch && versionMismatch) {\r\n warning.push('and');\r\n }\r\n if (versionMismatch) {\r\n warning.push(`version name \"${version}\" contains illegal characters (whitespace or \"/\")`);\r\n }\r\n logger.warn(warning.join(' '));\r\n return;\r\n }\r\n _registerComponent(new Component(`${library}-version`, () => ({ library, version }), \"VERSION\" /* ComponentType.VERSION */));\r\n}\r\n/**\r\n * Sets log handler for all Firebase SDKs.\r\n * @param logCallback - An optional custom log handler that executes user code whenever\r\n * the Firebase SDK makes a logging call.\r\n *\r\n * @public\r\n */\r\nfunction onLog(logCallback, options) {\r\n if (logCallback !== null && typeof logCallback !== 'function') {\r\n throw ERROR_FACTORY.create(\"invalid-log-argument\" /* AppError.INVALID_LOG_ARGUMENT */);\r\n }\r\n setUserLogHandler(logCallback, options);\r\n}\r\n/**\r\n * Sets log level for all Firebase SDKs.\r\n *\r\n * All of the log types above the current log level are captured (i.e. if\r\n * you set the log level to `info`, errors are logged, but `debug` and\r\n * `verbose` logs are not).\r\n *\r\n * @public\r\n */\r\nfunction setLogLevel(logLevel) {\r\n setLogLevel$1(logLevel);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst DB_NAME = 'firebase-heartbeat-database';\r\nconst DB_VERSION = 1;\r\nconst STORE_NAME = 'firebase-heartbeat-store';\r\nlet dbPromise = null;\r\nfunction getDbPromise() {\r\n if (!dbPromise) {\r\n dbPromise = openDB(DB_NAME, DB_VERSION, {\r\n upgrade: (db, oldVersion) => {\r\n // We don't use 'break' in this switch statement, the fall-through\r\n // behavior is what we want, because if there are multiple versions between\r\n // the old version and the current version, we want ALL the migrations\r\n // that correspond to those versions to run, not only the last one.\r\n // eslint-disable-next-line default-case\r\n switch (oldVersion) {\r\n case 0:\r\n db.createObjectStore(STORE_NAME);\r\n }\r\n }\r\n }).catch(e => {\r\n throw ERROR_FACTORY.create(\"idb-open\" /* AppError.IDB_OPEN */, {\r\n originalErrorMessage: e.message\r\n });\r\n });\r\n }\r\n return dbPromise;\r\n}\r\nasync function readHeartbeatsFromIndexedDB(app) {\r\n try {\r\n const db = await getDbPromise();\r\n return db\r\n .transaction(STORE_NAME)\r\n .objectStore(STORE_NAME)\r\n .get(computeKey(app));\r\n }\r\n catch (e) {\r\n if (e instanceof FirebaseError) {\r\n logger.warn(e.message);\r\n }\r\n else {\r\n const idbGetError = ERROR_FACTORY.create(\"idb-get\" /* AppError.IDB_GET */, {\r\n originalErrorMessage: e === null || e === void 0 ? void 0 : e.message\r\n });\r\n logger.warn(idbGetError.message);\r\n }\r\n }\r\n}\r\nasync function writeHeartbeatsToIndexedDB(app, heartbeatObject) {\r\n try {\r\n const db = await getDbPromise();\r\n const tx = db.transaction(STORE_NAME, 'readwrite');\r\n const objectStore = tx.objectStore(STORE_NAME);\r\n await objectStore.put(heartbeatObject, computeKey(app));\r\n return tx.done;\r\n }\r\n catch (e) {\r\n if (e instanceof FirebaseError) {\r\n logger.warn(e.message);\r\n }\r\n else {\r\n const idbGetError = ERROR_FACTORY.create(\"idb-set\" /* AppError.IDB_WRITE */, {\r\n originalErrorMessage: e === null || e === void 0 ? void 0 : e.message\r\n });\r\n logger.warn(idbGetError.message);\r\n }\r\n }\r\n}\r\nfunction computeKey(app) {\r\n return `${app.name}!${app.options.appId}`;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst MAX_HEADER_BYTES = 1024;\r\n// 30 days\r\nconst STORED_HEARTBEAT_RETENTION_MAX_MILLIS = 30 * 24 * 60 * 60 * 1000;\r\nclass HeartbeatServiceImpl {\r\n constructor(container) {\r\n this.container = container;\r\n /**\r\n * In-memory cache for heartbeats, used by getHeartbeatsHeader() to generate\r\n * the header string.\r\n * Stores one record per date. This will be consolidated into the standard\r\n * format of one record per user agent string before being sent as a header.\r\n * Populated from indexedDB when the controller is instantiated and should\r\n * be kept in sync with indexedDB.\r\n * Leave public for easier testing.\r\n */\r\n this._heartbeatsCache = null;\r\n const app = this.container.getProvider('app').getImmediate();\r\n this._storage = new HeartbeatStorageImpl(app);\r\n this._heartbeatsCachePromise = this._storage.read().then(result => {\r\n this._heartbeatsCache = result;\r\n return result;\r\n });\r\n }\r\n /**\r\n * Called to report a heartbeat. The function will generate\r\n * a HeartbeatsByUserAgent object, update heartbeatsCache, and persist it\r\n * to IndexedDB.\r\n * Note that we only store one heartbeat per day. So if a heartbeat for today is\r\n * already logged, subsequent calls to this function in the same day will be ignored.\r\n */\r\n async triggerHeartbeat() {\r\n const platformLogger = this.container\r\n .getProvider('platform-logger')\r\n .getImmediate();\r\n // This is the \"Firebase user agent\" string from the platform logger\r\n // service, not the browser user agent.\r\n const agent = platformLogger.getPlatformInfoString();\r\n const date = getUTCDateString();\r\n if (this._heartbeatsCache === null) {\r\n this._heartbeatsCache = await this._heartbeatsCachePromise;\r\n }\r\n // Do not store a heartbeat if one is already stored for this day\r\n // or if a header has already been sent today.\r\n if (this._heartbeatsCache.lastSentHeartbeatDate === date ||\r\n this._heartbeatsCache.heartbeats.some(singleDateHeartbeat => singleDateHeartbeat.date === date)) {\r\n return;\r\n }\r\n else {\r\n // There is no entry for this date. Create one.\r\n this._heartbeatsCache.heartbeats.push({ date, agent });\r\n }\r\n // Remove entries older than 30 days.\r\n this._heartbeatsCache.heartbeats = this._heartbeatsCache.heartbeats.filter(singleDateHeartbeat => {\r\n const hbTimestamp = new Date(singleDateHeartbeat.date).valueOf();\r\n const now = Date.now();\r\n return now - hbTimestamp <= STORED_HEARTBEAT_RETENTION_MAX_MILLIS;\r\n });\r\n return this._storage.overwrite(this._heartbeatsCache);\r\n }\r\n /**\r\n * Returns a base64 encoded string which can be attached to the heartbeat-specific header directly.\r\n * It also clears all heartbeats from memory as well as in IndexedDB.\r\n *\r\n * NOTE: Consuming product SDKs should not send the header if this method\r\n * returns an empty string.\r\n */\r\n async getHeartbeatsHeader() {\r\n if (this._heartbeatsCache === null) {\r\n await this._heartbeatsCachePromise;\r\n }\r\n // If it's still null or the array is empty, there is no data to send.\r\n if (this._heartbeatsCache === null ||\r\n this._heartbeatsCache.heartbeats.length === 0) {\r\n return '';\r\n }\r\n const date = getUTCDateString();\r\n // Extract as many heartbeats from the cache as will fit under the size limit.\r\n const { heartbeatsToSend, unsentEntries } = extractHeartbeatsForHeader(this._heartbeatsCache.heartbeats);\r\n const headerString = base64urlEncodeWithoutPadding(JSON.stringify({ version: 2, heartbeats: heartbeatsToSend }));\r\n // Store last sent date to prevent another being logged/sent for the same day.\r\n this._heartbeatsCache.lastSentHeartbeatDate = date;\r\n if (unsentEntries.length > 0) {\r\n // Store any unsent entries if they exist.\r\n this._heartbeatsCache.heartbeats = unsentEntries;\r\n // This seems more likely than emptying the array (below) to lead to some odd state\r\n // since the cache isn't empty and this will be called again on the next request,\r\n // and is probably safest if we await it.\r\n await this._storage.overwrite(this._heartbeatsCache);\r\n }\r\n else {\r\n this._heartbeatsCache.heartbeats = [];\r\n // Do not wait for this, to reduce latency.\r\n void this._storage.overwrite(this._heartbeatsCache);\r\n }\r\n return headerString;\r\n }\r\n}\r\nfunction getUTCDateString() {\r\n const today = new Date();\r\n // Returns date format 'YYYY-MM-DD'\r\n return today.toISOString().substring(0, 10);\r\n}\r\nfunction extractHeartbeatsForHeader(heartbeatsCache, maxSize = MAX_HEADER_BYTES) {\r\n // Heartbeats grouped by user agent in the standard format to be sent in\r\n // the header.\r\n const heartbeatsToSend = [];\r\n // Single date format heartbeats that are not sent.\r\n let unsentEntries = heartbeatsCache.slice();\r\n for (const singleDateHeartbeat of heartbeatsCache) {\r\n // Look for an existing entry with the same user agent.\r\n const heartbeatEntry = heartbeatsToSend.find(hb => hb.agent === singleDateHeartbeat.agent);\r\n if (!heartbeatEntry) {\r\n // If no entry for this user agent exists, create one.\r\n heartbeatsToSend.push({\r\n agent: singleDateHeartbeat.agent,\r\n dates: [singleDateHeartbeat.date]\r\n });\r\n if (countBytes(heartbeatsToSend) > maxSize) {\r\n // If the header would exceed max size, remove the added heartbeat\r\n // entry and stop adding to the header.\r\n heartbeatsToSend.pop();\r\n break;\r\n }\r\n }\r\n else {\r\n heartbeatEntry.dates.push(singleDateHeartbeat.date);\r\n // If the header would exceed max size, remove the added date\r\n // and stop adding to the header.\r\n if (countBytes(heartbeatsToSend) > maxSize) {\r\n heartbeatEntry.dates.pop();\r\n break;\r\n }\r\n }\r\n // Pop unsent entry from queue. (Skipped if adding the entry exceeded\r\n // quota and the loop breaks early.)\r\n unsentEntries = unsentEntries.slice(1);\r\n }\r\n return {\r\n heartbeatsToSend,\r\n unsentEntries\r\n };\r\n}\r\nclass HeartbeatStorageImpl {\r\n constructor(app) {\r\n this.app = app;\r\n this._canUseIndexedDBPromise = this.runIndexedDBEnvironmentCheck();\r\n }\r\n async runIndexedDBEnvironmentCheck() {\r\n if (!isIndexedDBAvailable()) {\r\n return false;\r\n }\r\n else {\r\n return validateIndexedDBOpenable()\r\n .then(() => true)\r\n .catch(() => false);\r\n }\r\n }\r\n /**\r\n * Read all heartbeats.\r\n */\r\n async read() {\r\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\r\n if (!canUseIndexedDB) {\r\n return { heartbeats: [] };\r\n }\r\n else {\r\n const idbHeartbeatObject = await readHeartbeatsFromIndexedDB(this.app);\r\n return idbHeartbeatObject || { heartbeats: [] };\r\n }\r\n }\r\n // overwrite the storage with the provided heartbeats\r\n async overwrite(heartbeatsObject) {\r\n var _a;\r\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\r\n if (!canUseIndexedDB) {\r\n return;\r\n }\r\n else {\r\n const existingHeartbeatsObject = await this.read();\r\n return writeHeartbeatsToIndexedDB(this.app, {\r\n lastSentHeartbeatDate: (_a = heartbeatsObject.lastSentHeartbeatDate) !== null && _a !== void 0 ? _a : existingHeartbeatsObject.lastSentHeartbeatDate,\r\n heartbeats: heartbeatsObject.heartbeats\r\n });\r\n }\r\n }\r\n // add heartbeats\r\n async add(heartbeatsObject) {\r\n var _a;\r\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\r\n if (!canUseIndexedDB) {\r\n return;\r\n }\r\n else {\r\n const existingHeartbeatsObject = await this.read();\r\n return writeHeartbeatsToIndexedDB(this.app, {\r\n lastSentHeartbeatDate: (_a = heartbeatsObject.lastSentHeartbeatDate) !== null && _a !== void 0 ? _a : existingHeartbeatsObject.lastSentHeartbeatDate,\r\n heartbeats: [\r\n ...existingHeartbeatsObject.heartbeats,\r\n ...heartbeatsObject.heartbeats\r\n ]\r\n });\r\n }\r\n }\r\n}\r\n/**\r\n * Calculate bytes of a HeartbeatsByUserAgent array after being wrapped\r\n * in a platform logging header JSON object, stringified, and converted\r\n * to base 64.\r\n */\r\nfunction countBytes(heartbeatsCache) {\r\n // base64 has a restricted set of characters, all of which should be 1 byte.\r\n return base64urlEncodeWithoutPadding(\r\n // heartbeatsCache wrapper properties\r\n JSON.stringify({ version: 2, heartbeats: heartbeatsCache })).length;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction registerCoreComponents(variant) {\r\n _registerComponent(new Component('platform-logger', container => new PlatformLoggerServiceImpl(container), \"PRIVATE\" /* ComponentType.PRIVATE */));\r\n _registerComponent(new Component('heartbeat', container => new HeartbeatServiceImpl(container), \"PRIVATE\" /* ComponentType.PRIVATE */));\r\n // Register `app` package.\r\n registerVersion(name$o, version$1, variant);\r\n // BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\r\n registerVersion(name$o, version$1, 'esm2017');\r\n // Register platform SDK identifier (no version).\r\n registerVersion('fire-js', '');\r\n}\n\n/**\r\n * Firebase App\r\n *\r\n * @remarks This package coordinates the communication between the different Firebase components\r\n * @packageDocumentation\r\n */\r\nregisterCoreComponents('');\n\nexport { SDK_VERSION, DEFAULT_ENTRY_NAME as _DEFAULT_ENTRY_NAME, _addComponent, _addOrOverwriteComponent, _apps, _clearComponents, _components, _getProvider, _registerComponent, _removeServiceInstance, deleteApp, getApp, getApps, initializeApp, onLog, registerVersion, setLogLevel };\n//# sourceMappingURL=index.esm2017.js.map\n","import { Deferred } from '@firebase/util';\n\n/**\r\n * Component for service name T, e.g. `auth`, `auth-internal`\r\n */\r\nclass Component {\r\n /**\r\n *\r\n * @param name The public service name, e.g. app, auth, firestore, database\r\n * @param instanceFactory Service factory responsible for creating the public interface\r\n * @param type whether the service provided by the component is public or private\r\n */\r\n constructor(name, instanceFactory, type) {\r\n this.name = name;\r\n this.instanceFactory = instanceFactory;\r\n this.type = type;\r\n this.multipleInstances = false;\r\n /**\r\n * Properties to be added to the service namespace\r\n */\r\n this.serviceProps = {};\r\n this.instantiationMode = \"LAZY\" /* InstantiationMode.LAZY */;\r\n this.onInstanceCreated = null;\r\n }\r\n setInstantiationMode(mode) {\r\n this.instantiationMode = mode;\r\n return this;\r\n }\r\n setMultipleInstances(multipleInstances) {\r\n this.multipleInstances = multipleInstances;\r\n return this;\r\n }\r\n setServiceProps(props) {\r\n this.serviceProps = props;\r\n return this;\r\n }\r\n setInstanceCreatedCallback(callback) {\r\n this.onInstanceCreated = callback;\r\n return this;\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst DEFAULT_ENTRY_NAME = '[DEFAULT]';\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Provider for instance for service name T, e.g. 'auth', 'auth-internal'\r\n * NameServiceMapping[T] is an alias for the type of the instance\r\n */\r\nclass Provider {\r\n constructor(name, container) {\r\n this.name = name;\r\n this.container = container;\r\n this.component = null;\r\n this.instances = new Map();\r\n this.instancesDeferred = new Map();\r\n this.instancesOptions = new Map();\r\n this.onInitCallbacks = new Map();\r\n }\r\n /**\r\n * @param identifier A provider can provide mulitple instances of a service\r\n * if this.component.multipleInstances is true.\r\n */\r\n get(identifier) {\r\n // if multipleInstances is not supported, use the default name\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\r\n if (!this.instancesDeferred.has(normalizedIdentifier)) {\r\n const deferred = new Deferred();\r\n this.instancesDeferred.set(normalizedIdentifier, deferred);\r\n if (this.isInitialized(normalizedIdentifier) ||\r\n this.shouldAutoInitialize()) {\r\n // initialize the service if it can be auto-initialized\r\n try {\r\n const instance = this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier\r\n });\r\n if (instance) {\r\n deferred.resolve(instance);\r\n }\r\n }\r\n catch (e) {\r\n // when the instance factory throws an exception during get(), it should not cause\r\n // a fatal error. We just return the unresolved promise in this case.\r\n }\r\n }\r\n }\r\n return this.instancesDeferred.get(normalizedIdentifier).promise;\r\n }\r\n getImmediate(options) {\r\n var _a;\r\n // if multipleInstances is not supported, use the default name\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(options === null || options === void 0 ? void 0 : options.identifier);\r\n const optional = (_a = options === null || options === void 0 ? void 0 : options.optional) !== null && _a !== void 0 ? _a : false;\r\n if (this.isInitialized(normalizedIdentifier) ||\r\n this.shouldAutoInitialize()) {\r\n try {\r\n return this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier\r\n });\r\n }\r\n catch (e) {\r\n if (optional) {\r\n return null;\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n }\r\n else {\r\n // In case a component is not initialized and should/can not be auto-initialized at the moment, return null if the optional flag is set, or throw\r\n if (optional) {\r\n return null;\r\n }\r\n else {\r\n throw Error(`Service ${this.name} is not available`);\r\n }\r\n }\r\n }\r\n getComponent() {\r\n return this.component;\r\n }\r\n setComponent(component) {\r\n if (component.name !== this.name) {\r\n throw Error(`Mismatching Component ${component.name} for Provider ${this.name}.`);\r\n }\r\n if (this.component) {\r\n throw Error(`Component for ${this.name} has already been provided`);\r\n }\r\n this.component = component;\r\n // return early without attempting to initialize the component if the component requires explicit initialization (calling `Provider.initialize()`)\r\n if (!this.shouldAutoInitialize()) {\r\n return;\r\n }\r\n // if the service is eager, initialize the default instance\r\n if (isComponentEager(component)) {\r\n try {\r\n this.getOrInitializeService({ instanceIdentifier: DEFAULT_ENTRY_NAME });\r\n }\r\n catch (e) {\r\n // when the instance factory for an eager Component throws an exception during the eager\r\n // initialization, it should not cause a fatal error.\r\n // TODO: Investigate if we need to make it configurable, because some component may want to cause\r\n // a fatal error in this case?\r\n }\r\n }\r\n // Create service instances for the pending promises and resolve them\r\n // NOTE: if this.multipleInstances is false, only the default instance will be created\r\n // and all promises with resolve with it regardless of the identifier.\r\n for (const [instanceIdentifier, instanceDeferred] of this.instancesDeferred.entries()) {\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(instanceIdentifier);\r\n try {\r\n // `getOrInitializeService()` should always return a valid instance since a component is guaranteed. use ! to make typescript happy.\r\n const instance = this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier\r\n });\r\n instanceDeferred.resolve(instance);\r\n }\r\n catch (e) {\r\n // when the instance factory throws an exception, it should not cause\r\n // a fatal error. We just leave the promise unresolved.\r\n }\r\n }\r\n }\r\n clearInstance(identifier = DEFAULT_ENTRY_NAME) {\r\n this.instancesDeferred.delete(identifier);\r\n this.instancesOptions.delete(identifier);\r\n this.instances.delete(identifier);\r\n }\r\n // app.delete() will call this method on every provider to delete the services\r\n // TODO: should we mark the provider as deleted?\r\n async delete() {\r\n const services = Array.from(this.instances.values());\r\n await Promise.all([\r\n ...services\r\n .filter(service => 'INTERNAL' in service) // legacy services\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n .map(service => service.INTERNAL.delete()),\r\n ...services\r\n .filter(service => '_delete' in service) // modularized services\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n .map(service => service._delete())\r\n ]);\r\n }\r\n isComponentSet() {\r\n return this.component != null;\r\n }\r\n isInitialized(identifier = DEFAULT_ENTRY_NAME) {\r\n return this.instances.has(identifier);\r\n }\r\n getOptions(identifier = DEFAULT_ENTRY_NAME) {\r\n return this.instancesOptions.get(identifier) || {};\r\n }\r\n initialize(opts = {}) {\r\n const { options = {} } = opts;\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(opts.instanceIdentifier);\r\n if (this.isInitialized(normalizedIdentifier)) {\r\n throw Error(`${this.name}(${normalizedIdentifier}) has already been initialized`);\r\n }\r\n if (!this.isComponentSet()) {\r\n throw Error(`Component ${this.name} has not been registered yet`);\r\n }\r\n const instance = this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier,\r\n options\r\n });\r\n // resolve any pending promise waiting for the service instance\r\n for (const [instanceIdentifier, instanceDeferred] of this.instancesDeferred.entries()) {\r\n const normalizedDeferredIdentifier = this.normalizeInstanceIdentifier(instanceIdentifier);\r\n if (normalizedIdentifier === normalizedDeferredIdentifier) {\r\n instanceDeferred.resolve(instance);\r\n }\r\n }\r\n return instance;\r\n }\r\n /**\r\n *\r\n * @param callback - a function that will be invoked after the provider has been initialized by calling provider.initialize().\r\n * The function is invoked SYNCHRONOUSLY, so it should not execute any longrunning tasks in order to not block the program.\r\n *\r\n * @param identifier An optional instance identifier\r\n * @returns a function to unregister the callback\r\n */\r\n onInit(callback, identifier) {\r\n var _a;\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\r\n const existingCallbacks = (_a = this.onInitCallbacks.get(normalizedIdentifier)) !== null && _a !== void 0 ? _a : new Set();\r\n existingCallbacks.add(callback);\r\n this.onInitCallbacks.set(normalizedIdentifier, existingCallbacks);\r\n const existingInstance = this.instances.get(normalizedIdentifier);\r\n if (existingInstance) {\r\n callback(existingInstance, normalizedIdentifier);\r\n }\r\n return () => {\r\n existingCallbacks.delete(callback);\r\n };\r\n }\r\n /**\r\n * Invoke onInit callbacks synchronously\r\n * @param instance the service instance`\r\n */\r\n invokeOnInitCallbacks(instance, identifier) {\r\n const callbacks = this.onInitCallbacks.get(identifier);\r\n if (!callbacks) {\r\n return;\r\n }\r\n for (const callback of callbacks) {\r\n try {\r\n callback(instance, identifier);\r\n }\r\n catch (_a) {\r\n // ignore errors in the onInit callback\r\n }\r\n }\r\n }\r\n getOrInitializeService({ instanceIdentifier, options = {} }) {\r\n let instance = this.instances.get(instanceIdentifier);\r\n if (!instance && this.component) {\r\n instance = this.component.instanceFactory(this.container, {\r\n instanceIdentifier: normalizeIdentifierForFactory(instanceIdentifier),\r\n options\r\n });\r\n this.instances.set(instanceIdentifier, instance);\r\n this.instancesOptions.set(instanceIdentifier, options);\r\n /**\r\n * Invoke onInit listeners.\r\n * Note this.component.onInstanceCreated is different, which is used by the component creator,\r\n * while onInit listeners are registered by consumers of the provider.\r\n */\r\n this.invokeOnInitCallbacks(instance, instanceIdentifier);\r\n /**\r\n * Order is important\r\n * onInstanceCreated() should be called after this.instances.set(instanceIdentifier, instance); which\r\n * makes `isInitialized()` return true.\r\n */\r\n if (this.component.onInstanceCreated) {\r\n try {\r\n this.component.onInstanceCreated(this.container, instanceIdentifier, instance);\r\n }\r\n catch (_a) {\r\n // ignore errors in the onInstanceCreatedCallback\r\n }\r\n }\r\n }\r\n return instance || null;\r\n }\r\n normalizeInstanceIdentifier(identifier = DEFAULT_ENTRY_NAME) {\r\n if (this.component) {\r\n return this.component.multipleInstances ? identifier : DEFAULT_ENTRY_NAME;\r\n }\r\n else {\r\n return identifier; // assume multiple instances are supported before the component is provided.\r\n }\r\n }\r\n shouldAutoInitialize() {\r\n return (!!this.component &&\r\n this.component.instantiationMode !== \"EXPLICIT\" /* InstantiationMode.EXPLICIT */);\r\n }\r\n}\r\n// undefined should be passed to the service factory for the default instance\r\nfunction normalizeIdentifierForFactory(identifier) {\r\n return identifier === DEFAULT_ENTRY_NAME ? undefined : identifier;\r\n}\r\nfunction isComponentEager(component) {\r\n return component.instantiationMode === \"EAGER\" /* InstantiationMode.EAGER */;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * ComponentContainer that provides Providers for service name T, e.g. `auth`, `auth-internal`\r\n */\r\nclass ComponentContainer {\r\n constructor(name) {\r\n this.name = name;\r\n this.providers = new Map();\r\n }\r\n /**\r\n *\r\n * @param component Component being added\r\n * @param overwrite When a component with the same name has already been registered,\r\n * if overwrite is true: overwrite the existing component with the new component and create a new\r\n * provider with the new component. It can be useful in tests where you want to use different mocks\r\n * for different tests.\r\n * if overwrite is false: throw an exception\r\n */\r\n addComponent(component) {\r\n const provider = this.getProvider(component.name);\r\n if (provider.isComponentSet()) {\r\n throw new Error(`Component ${component.name} has already been registered with ${this.name}`);\r\n }\r\n provider.setComponent(component);\r\n }\r\n addOrOverwriteComponent(component) {\r\n const provider = this.getProvider(component.name);\r\n if (provider.isComponentSet()) {\r\n // delete the existing provider from the container, so we can register the new component\r\n this.providers.delete(component.name);\r\n }\r\n this.addComponent(component);\r\n }\r\n /**\r\n * getProvider provides a type safe interface where it can only be called with a field name\r\n * present in NameServiceMapping interface.\r\n *\r\n * Firebase SDKs providing services should extend NameServiceMapping interface to register\r\n * themselves.\r\n */\r\n getProvider(name) {\r\n if (this.providers.has(name)) {\r\n return this.providers.get(name);\r\n }\r\n // create a Provider for a service that hasn't registered with Firebase\r\n const provider = new Provider(name, this);\r\n this.providers.set(name, provider);\r\n return provider;\r\n }\r\n getProviders() {\r\n return Array.from(this.providers.values());\r\n }\r\n}\n\nexport { Component, ComponentContainer, Provider };\n//# sourceMappingURL=index.esm2017.js.map\n","import { _getProvider, getApp, _registerComponent, registerVersion } from '@firebase/app';\nimport { Component } from '@firebase/component';\nimport { ErrorFactory, FirebaseError } from '@firebase/util';\nimport { openDB } from 'idb';\n\nconst name = \"@firebase/installations\";\nconst version = \"0.6.1\";\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst PENDING_TIMEOUT_MS = 10000;\r\nconst PACKAGE_VERSION = `w:${version}`;\r\nconst INTERNAL_AUTH_VERSION = 'FIS_v2';\r\nconst INSTALLATIONS_API_URL = 'https://firebaseinstallations.googleapis.com/v1';\r\nconst TOKEN_EXPIRATION_BUFFER = 60 * 60 * 1000; // One hour\r\nconst SERVICE = 'installations';\r\nconst SERVICE_NAME = 'Installations';\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst ERROR_DESCRIPTION_MAP = {\r\n [\"missing-app-config-values\" /* ErrorCode.MISSING_APP_CONFIG_VALUES */]: 'Missing App configuration value: \"{$valueName}\"',\r\n [\"not-registered\" /* ErrorCode.NOT_REGISTERED */]: 'Firebase Installation is not registered.',\r\n [\"installation-not-found\" /* ErrorCode.INSTALLATION_NOT_FOUND */]: 'Firebase Installation not found.',\r\n [\"request-failed\" /* ErrorCode.REQUEST_FAILED */]: '{$requestName} request failed with error \"{$serverCode} {$serverStatus}: {$serverMessage}\"',\r\n [\"app-offline\" /* ErrorCode.APP_OFFLINE */]: 'Could not process request. Application offline.',\r\n [\"delete-pending-registration\" /* ErrorCode.DELETE_PENDING_REGISTRATION */]: \"Can't delete installation while there is a pending registration request.\"\r\n};\r\nconst ERROR_FACTORY = new ErrorFactory(SERVICE, SERVICE_NAME, ERROR_DESCRIPTION_MAP);\r\n/** Returns true if error is a FirebaseError that is based on an error from the server. */\r\nfunction isServerError(error) {\r\n return (error instanceof FirebaseError &&\r\n error.code.includes(\"request-failed\" /* ErrorCode.REQUEST_FAILED */));\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction getInstallationsEndpoint({ projectId }) {\r\n return `${INSTALLATIONS_API_URL}/projects/${projectId}/installations`;\r\n}\r\nfunction extractAuthTokenInfoFromResponse(response) {\r\n return {\r\n token: response.token,\r\n requestStatus: 2 /* RequestStatus.COMPLETED */,\r\n expiresIn: getExpiresInFromResponseExpiresIn(response.expiresIn),\r\n creationTime: Date.now()\r\n };\r\n}\r\nasync function getErrorFromResponse(requestName, response) {\r\n const responseJson = await response.json();\r\n const errorData = responseJson.error;\r\n return ERROR_FACTORY.create(\"request-failed\" /* ErrorCode.REQUEST_FAILED */, {\r\n requestName,\r\n serverCode: errorData.code,\r\n serverMessage: errorData.message,\r\n serverStatus: errorData.status\r\n });\r\n}\r\nfunction getHeaders({ apiKey }) {\r\n return new Headers({\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json',\r\n 'x-goog-api-key': apiKey\r\n });\r\n}\r\nfunction getHeadersWithAuth(appConfig, { refreshToken }) {\r\n const headers = getHeaders(appConfig);\r\n headers.append('Authorization', getAuthorizationHeader(refreshToken));\r\n return headers;\r\n}\r\n/**\r\n * Calls the passed in fetch wrapper and returns the response.\r\n * If the returned response has a status of 5xx, re-runs the function once and\r\n * returns the response.\r\n */\r\nasync function retryIfServerError(fn) {\r\n const result = await fn();\r\n if (result.status >= 500 && result.status < 600) {\r\n // Internal Server Error. Retry request.\r\n return fn();\r\n }\r\n return result;\r\n}\r\nfunction getExpiresInFromResponseExpiresIn(responseExpiresIn) {\r\n // This works because the server will never respond with fractions of a second.\r\n return Number(responseExpiresIn.replace('s', '000'));\r\n}\r\nfunction getAuthorizationHeader(refreshToken) {\r\n return `${INTERNAL_AUTH_VERSION} ${refreshToken}`;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function createInstallationRequest({ appConfig, heartbeatServiceProvider }, { fid }) {\r\n const endpoint = getInstallationsEndpoint(appConfig);\r\n const headers = getHeaders(appConfig);\r\n // If heartbeat service exists, add the heartbeat string to the header.\r\n const heartbeatService = heartbeatServiceProvider.getImmediate({\r\n optional: true\r\n });\r\n if (heartbeatService) {\r\n const heartbeatsHeader = await heartbeatService.getHeartbeatsHeader();\r\n if (heartbeatsHeader) {\r\n headers.append('x-firebase-client', heartbeatsHeader);\r\n }\r\n }\r\n const body = {\r\n fid,\r\n authVersion: INTERNAL_AUTH_VERSION,\r\n appId: appConfig.appId,\r\n sdkVersion: PACKAGE_VERSION\r\n };\r\n const request = {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify(body)\r\n };\r\n const response = await retryIfServerError(() => fetch(endpoint, request));\r\n if (response.ok) {\r\n const responseValue = await response.json();\r\n const registeredInstallationEntry = {\r\n fid: responseValue.fid || fid,\r\n registrationStatus: 2 /* RequestStatus.COMPLETED */,\r\n refreshToken: responseValue.refreshToken,\r\n authToken: extractAuthTokenInfoFromResponse(responseValue.authToken)\r\n };\r\n return registeredInstallationEntry;\r\n }\r\n else {\r\n throw await getErrorFromResponse('Create Installation', response);\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/** Returns a promise that resolves after given time passes. */\r\nfunction sleep(ms) {\r\n return new Promise(resolve => {\r\n setTimeout(resolve, ms);\r\n });\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction bufferToBase64UrlSafe(array) {\r\n const b64 = btoa(String.fromCharCode(...array));\r\n return b64.replace(/\\+/g, '-').replace(/\\//g, '_');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst VALID_FID_PATTERN = /^[cdef][\\w-]{21}$/;\r\nconst INVALID_FID = '';\r\n/**\r\n * Generates a new FID using random values from Web Crypto API.\r\n * Returns an empty string if FID generation fails for any reason.\r\n */\r\nfunction generateFid() {\r\n try {\r\n // A valid FID has exactly 22 base64 characters, which is 132 bits, or 16.5\r\n // bytes. our implementation generates a 17 byte array instead.\r\n const fidByteArray = new Uint8Array(17);\r\n const crypto = self.crypto || self.msCrypto;\r\n crypto.getRandomValues(fidByteArray);\r\n // Replace the first 4 random bits with the constant FID header of 0b0111.\r\n fidByteArray[0] = 0b01110000 + (fidByteArray[0] % 0b00010000);\r\n const fid = encode(fidByteArray);\r\n return VALID_FID_PATTERN.test(fid) ? fid : INVALID_FID;\r\n }\r\n catch (_a) {\r\n // FID generation errored\r\n return INVALID_FID;\r\n }\r\n}\r\n/** Converts a FID Uint8Array to a base64 string representation. */\r\nfunction encode(fidByteArray) {\r\n const b64String = bufferToBase64UrlSafe(fidByteArray);\r\n // Remove the 23rd character that was added because of the extra 4 bits at the\r\n // end of our 17 byte array, and the '=' padding.\r\n return b64String.substr(0, 22);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/** Returns a string key that can be used to identify the app. */\r\nfunction getKey(appConfig) {\r\n return `${appConfig.appName}!${appConfig.appId}`;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst fidChangeCallbacks = new Map();\r\n/**\r\n * Calls the onIdChange callbacks with the new FID value, and broadcasts the\r\n * change to other tabs.\r\n */\r\nfunction fidChanged(appConfig, fid) {\r\n const key = getKey(appConfig);\r\n callFidChangeCallbacks(key, fid);\r\n broadcastFidChange(key, fid);\r\n}\r\nfunction addCallback(appConfig, callback) {\r\n // Open the broadcast channel if it's not already open,\r\n // to be able to listen to change events from other tabs.\r\n getBroadcastChannel();\r\n const key = getKey(appConfig);\r\n let callbackSet = fidChangeCallbacks.get(key);\r\n if (!callbackSet) {\r\n callbackSet = new Set();\r\n fidChangeCallbacks.set(key, callbackSet);\r\n }\r\n callbackSet.add(callback);\r\n}\r\nfunction removeCallback(appConfig, callback) {\r\n const key = getKey(appConfig);\r\n const callbackSet = fidChangeCallbacks.get(key);\r\n if (!callbackSet) {\r\n return;\r\n }\r\n callbackSet.delete(callback);\r\n if (callbackSet.size === 0) {\r\n fidChangeCallbacks.delete(key);\r\n }\r\n // Close broadcast channel if there are no more callbacks.\r\n closeBroadcastChannel();\r\n}\r\nfunction callFidChangeCallbacks(key, fid) {\r\n const callbacks = fidChangeCallbacks.get(key);\r\n if (!callbacks) {\r\n return;\r\n }\r\n for (const callback of callbacks) {\r\n callback(fid);\r\n }\r\n}\r\nfunction broadcastFidChange(key, fid) {\r\n const channel = getBroadcastChannel();\r\n if (channel) {\r\n channel.postMessage({ key, fid });\r\n }\r\n closeBroadcastChannel();\r\n}\r\nlet broadcastChannel = null;\r\n/** Opens and returns a BroadcastChannel if it is supported by the browser. */\r\nfunction getBroadcastChannel() {\r\n if (!broadcastChannel && 'BroadcastChannel' in self) {\r\n broadcastChannel = new BroadcastChannel('[Firebase] FID Change');\r\n broadcastChannel.onmessage = e => {\r\n callFidChangeCallbacks(e.data.key, e.data.fid);\r\n };\r\n }\r\n return broadcastChannel;\r\n}\r\nfunction closeBroadcastChannel() {\r\n if (fidChangeCallbacks.size === 0 && broadcastChannel) {\r\n broadcastChannel.close();\r\n broadcastChannel = null;\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst DATABASE_NAME = 'firebase-installations-database';\r\nconst DATABASE_VERSION = 1;\r\nconst OBJECT_STORE_NAME = 'firebase-installations-store';\r\nlet dbPromise = null;\r\nfunction getDbPromise() {\r\n if (!dbPromise) {\r\n dbPromise = openDB(DATABASE_NAME, DATABASE_VERSION, {\r\n upgrade: (db, oldVersion) => {\r\n // We don't use 'break' in this switch statement, the fall-through\r\n // behavior is what we want, because if there are multiple versions between\r\n // the old version and the current version, we want ALL the migrations\r\n // that correspond to those versions to run, not only the last one.\r\n // eslint-disable-next-line default-case\r\n switch (oldVersion) {\r\n case 0:\r\n db.createObjectStore(OBJECT_STORE_NAME);\r\n }\r\n }\r\n });\r\n }\r\n return dbPromise;\r\n}\r\n/** Assigns or overwrites the record for the given key with the given value. */\r\nasync function set(appConfig, value) {\r\n const key = getKey(appConfig);\r\n const db = await getDbPromise();\r\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\r\n const objectStore = tx.objectStore(OBJECT_STORE_NAME);\r\n const oldValue = (await objectStore.get(key));\r\n await objectStore.put(value, key);\r\n await tx.done;\r\n if (!oldValue || oldValue.fid !== value.fid) {\r\n fidChanged(appConfig, value.fid);\r\n }\r\n return value;\r\n}\r\n/** Removes record(s) from the objectStore that match the given key. */\r\nasync function remove(appConfig) {\r\n const key = getKey(appConfig);\r\n const db = await getDbPromise();\r\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\r\n await tx.objectStore(OBJECT_STORE_NAME).delete(key);\r\n await tx.done;\r\n}\r\n/**\r\n * Atomically updates a record with the result of updateFn, which gets\r\n * called with the current value. If newValue is undefined, the record is\r\n * deleted instead.\r\n * @return Updated value\r\n */\r\nasync function update(appConfig, updateFn) {\r\n const key = getKey(appConfig);\r\n const db = await getDbPromise();\r\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\r\n const store = tx.objectStore(OBJECT_STORE_NAME);\r\n const oldValue = (await store.get(key));\r\n const newValue = updateFn(oldValue);\r\n if (newValue === undefined) {\r\n await store.delete(key);\r\n }\r\n else {\r\n await store.put(newValue, key);\r\n }\r\n await tx.done;\r\n if (newValue && (!oldValue || oldValue.fid !== newValue.fid)) {\r\n fidChanged(appConfig, newValue.fid);\r\n }\r\n return newValue;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Updates and returns the InstallationEntry from the database.\r\n * Also triggers a registration request if it is necessary and possible.\r\n */\r\nasync function getInstallationEntry(installations) {\r\n let registrationPromise;\r\n const installationEntry = await update(installations.appConfig, oldEntry => {\r\n const installationEntry = updateOrCreateInstallationEntry(oldEntry);\r\n const entryWithPromise = triggerRegistrationIfNecessary(installations, installationEntry);\r\n registrationPromise = entryWithPromise.registrationPromise;\r\n return entryWithPromise.installationEntry;\r\n });\r\n if (installationEntry.fid === INVALID_FID) {\r\n // FID generation failed. Waiting for the FID from the server.\r\n return { installationEntry: await registrationPromise };\r\n }\r\n return {\r\n installationEntry,\r\n registrationPromise\r\n };\r\n}\r\n/**\r\n * Creates a new Installation Entry if one does not exist.\r\n * Also clears timed out pending requests.\r\n */\r\nfunction updateOrCreateInstallationEntry(oldEntry) {\r\n const entry = oldEntry || {\r\n fid: generateFid(),\r\n registrationStatus: 0 /* RequestStatus.NOT_STARTED */\r\n };\r\n return clearTimedOutRequest(entry);\r\n}\r\n/**\r\n * If the Firebase Installation is not registered yet, this will trigger the\r\n * registration and return an InProgressInstallationEntry.\r\n *\r\n * If registrationPromise does not exist, the installationEntry is guaranteed\r\n * to be registered.\r\n */\r\nfunction triggerRegistrationIfNecessary(installations, installationEntry) {\r\n if (installationEntry.registrationStatus === 0 /* RequestStatus.NOT_STARTED */) {\r\n if (!navigator.onLine) {\r\n // Registration required but app is offline.\r\n const registrationPromiseWithError = Promise.reject(ERROR_FACTORY.create(\"app-offline\" /* ErrorCode.APP_OFFLINE */));\r\n return {\r\n installationEntry,\r\n registrationPromise: registrationPromiseWithError\r\n };\r\n }\r\n // Try registering. Change status to IN_PROGRESS.\r\n const inProgressEntry = {\r\n fid: installationEntry.fid,\r\n registrationStatus: 1 /* RequestStatus.IN_PROGRESS */,\r\n registrationTime: Date.now()\r\n };\r\n const registrationPromise = registerInstallation(installations, inProgressEntry);\r\n return { installationEntry: inProgressEntry, registrationPromise };\r\n }\r\n else if (installationEntry.registrationStatus === 1 /* RequestStatus.IN_PROGRESS */) {\r\n return {\r\n installationEntry,\r\n registrationPromise: waitUntilFidRegistration(installations)\r\n };\r\n }\r\n else {\r\n return { installationEntry };\r\n }\r\n}\r\n/** This will be executed only once for each new Firebase Installation. */\r\nasync function registerInstallation(installations, installationEntry) {\r\n try {\r\n const registeredInstallationEntry = await createInstallationRequest(installations, installationEntry);\r\n return set(installations.appConfig, registeredInstallationEntry);\r\n }\r\n catch (e) {\r\n if (isServerError(e) && e.customData.serverCode === 409) {\r\n // Server returned a \"FID can not be used\" error.\r\n // Generate a new ID next time.\r\n await remove(installations.appConfig);\r\n }\r\n else {\r\n // Registration failed. Set FID as not registered.\r\n await set(installations.appConfig, {\r\n fid: installationEntry.fid,\r\n registrationStatus: 0 /* RequestStatus.NOT_STARTED */\r\n });\r\n }\r\n throw e;\r\n }\r\n}\r\n/** Call if FID registration is pending in another request. */\r\nasync function waitUntilFidRegistration(installations) {\r\n // Unfortunately, there is no way of reliably observing when a value in\r\n // IndexedDB changes (yet, see https://github.com/WICG/indexed-db-observers),\r\n // so we need to poll.\r\n let entry = await updateInstallationRequest(installations.appConfig);\r\n while (entry.registrationStatus === 1 /* RequestStatus.IN_PROGRESS */) {\r\n // createInstallation request still in progress.\r\n await sleep(100);\r\n entry = await updateInstallationRequest(installations.appConfig);\r\n }\r\n if (entry.registrationStatus === 0 /* RequestStatus.NOT_STARTED */) {\r\n // The request timed out or failed in a different call. Try again.\r\n const { installationEntry, registrationPromise } = await getInstallationEntry(installations);\r\n if (registrationPromise) {\r\n return registrationPromise;\r\n }\r\n else {\r\n // if there is no registrationPromise, entry is registered.\r\n return installationEntry;\r\n }\r\n }\r\n return entry;\r\n}\r\n/**\r\n * Called only if there is a CreateInstallation request in progress.\r\n *\r\n * Updates the InstallationEntry in the DB based on the status of the\r\n * CreateInstallation request.\r\n *\r\n * Returns the updated InstallationEntry.\r\n */\r\nfunction updateInstallationRequest(appConfig) {\r\n return update(appConfig, oldEntry => {\r\n if (!oldEntry) {\r\n throw ERROR_FACTORY.create(\"installation-not-found\" /* ErrorCode.INSTALLATION_NOT_FOUND */);\r\n }\r\n return clearTimedOutRequest(oldEntry);\r\n });\r\n}\r\nfunction clearTimedOutRequest(entry) {\r\n if (hasInstallationRequestTimedOut(entry)) {\r\n return {\r\n fid: entry.fid,\r\n registrationStatus: 0 /* RequestStatus.NOT_STARTED */\r\n };\r\n }\r\n return entry;\r\n}\r\nfunction hasInstallationRequestTimedOut(installationEntry) {\r\n return (installationEntry.registrationStatus === 1 /* RequestStatus.IN_PROGRESS */ &&\r\n installationEntry.registrationTime + PENDING_TIMEOUT_MS < Date.now());\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function generateAuthTokenRequest({ appConfig, heartbeatServiceProvider }, installationEntry) {\r\n const endpoint = getGenerateAuthTokenEndpoint(appConfig, installationEntry);\r\n const headers = getHeadersWithAuth(appConfig, installationEntry);\r\n // If heartbeat service exists, add the heartbeat string to the header.\r\n const heartbeatService = heartbeatServiceProvider.getImmediate({\r\n optional: true\r\n });\r\n if (heartbeatService) {\r\n const heartbeatsHeader = await heartbeatService.getHeartbeatsHeader();\r\n if (heartbeatsHeader) {\r\n headers.append('x-firebase-client', heartbeatsHeader);\r\n }\r\n }\r\n const body = {\r\n installation: {\r\n sdkVersion: PACKAGE_VERSION,\r\n appId: appConfig.appId\r\n }\r\n };\r\n const request = {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify(body)\r\n };\r\n const response = await retryIfServerError(() => fetch(endpoint, request));\r\n if (response.ok) {\r\n const responseValue = await response.json();\r\n const completedAuthToken = extractAuthTokenInfoFromResponse(responseValue);\r\n return completedAuthToken;\r\n }\r\n else {\r\n throw await getErrorFromResponse('Generate Auth Token', response);\r\n }\r\n}\r\nfunction getGenerateAuthTokenEndpoint(appConfig, { fid }) {\r\n return `${getInstallationsEndpoint(appConfig)}/${fid}/authTokens:generate`;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns a valid authentication token for the installation. Generates a new\r\n * token if one doesn't exist, is expired or about to expire.\r\n *\r\n * Should only be called if the Firebase Installation is registered.\r\n */\r\nasync function refreshAuthToken(installations, forceRefresh = false) {\r\n let tokenPromise;\r\n const entry = await update(installations.appConfig, oldEntry => {\r\n if (!isEntryRegistered(oldEntry)) {\r\n throw ERROR_FACTORY.create(\"not-registered\" /* ErrorCode.NOT_REGISTERED */);\r\n }\r\n const oldAuthToken = oldEntry.authToken;\r\n if (!forceRefresh && isAuthTokenValid(oldAuthToken)) {\r\n // There is a valid token in the DB.\r\n return oldEntry;\r\n }\r\n else if (oldAuthToken.requestStatus === 1 /* RequestStatus.IN_PROGRESS */) {\r\n // There already is a token request in progress.\r\n tokenPromise = waitUntilAuthTokenRequest(installations, forceRefresh);\r\n return oldEntry;\r\n }\r\n else {\r\n // No token or token expired.\r\n if (!navigator.onLine) {\r\n throw ERROR_FACTORY.create(\"app-offline\" /* ErrorCode.APP_OFFLINE */);\r\n }\r\n const inProgressEntry = makeAuthTokenRequestInProgressEntry(oldEntry);\r\n tokenPromise = fetchAuthTokenFromServer(installations, inProgressEntry);\r\n return inProgressEntry;\r\n }\r\n });\r\n const authToken = tokenPromise\r\n ? await tokenPromise\r\n : entry.authToken;\r\n return authToken;\r\n}\r\n/**\r\n * Call only if FID is registered and Auth Token request is in progress.\r\n *\r\n * Waits until the current pending request finishes. If the request times out,\r\n * tries once in this thread as well.\r\n */\r\nasync function waitUntilAuthTokenRequest(installations, forceRefresh) {\r\n // Unfortunately, there is no way of reliably observing when a value in\r\n // IndexedDB changes (yet, see https://github.com/WICG/indexed-db-observers),\r\n // so we need to poll.\r\n let entry = await updateAuthTokenRequest(installations.appConfig);\r\n while (entry.authToken.requestStatus === 1 /* RequestStatus.IN_PROGRESS */) {\r\n // generateAuthToken still in progress.\r\n await sleep(100);\r\n entry = await updateAuthTokenRequest(installations.appConfig);\r\n }\r\n const authToken = entry.authToken;\r\n if (authToken.requestStatus === 0 /* RequestStatus.NOT_STARTED */) {\r\n // The request timed out or failed in a different call. Try again.\r\n return refreshAuthToken(installations, forceRefresh);\r\n }\r\n else {\r\n return authToken;\r\n }\r\n}\r\n/**\r\n * Called only if there is a GenerateAuthToken request in progress.\r\n *\r\n * Updates the InstallationEntry in the DB based on the status of the\r\n * GenerateAuthToken request.\r\n *\r\n * Returns the updated InstallationEntry.\r\n */\r\nfunction updateAuthTokenRequest(appConfig) {\r\n return update(appConfig, oldEntry => {\r\n if (!isEntryRegistered(oldEntry)) {\r\n throw ERROR_FACTORY.create(\"not-registered\" /* ErrorCode.NOT_REGISTERED */);\r\n }\r\n const oldAuthToken = oldEntry.authToken;\r\n if (hasAuthTokenRequestTimedOut(oldAuthToken)) {\r\n return Object.assign(Object.assign({}, oldEntry), { authToken: { requestStatus: 0 /* RequestStatus.NOT_STARTED */ } });\r\n }\r\n return oldEntry;\r\n });\r\n}\r\nasync function fetchAuthTokenFromServer(installations, installationEntry) {\r\n try {\r\n const authToken = await generateAuthTokenRequest(installations, installationEntry);\r\n const updatedInstallationEntry = Object.assign(Object.assign({}, installationEntry), { authToken });\r\n await set(installations.appConfig, updatedInstallationEntry);\r\n return authToken;\r\n }\r\n catch (e) {\r\n if (isServerError(e) &&\r\n (e.customData.serverCode === 401 || e.customData.serverCode === 404)) {\r\n // Server returned a \"FID not found\" or a \"Invalid authentication\" error.\r\n // Generate a new ID next time.\r\n await remove(installations.appConfig);\r\n }\r\n else {\r\n const updatedInstallationEntry = Object.assign(Object.assign({}, installationEntry), { authToken: { requestStatus: 0 /* RequestStatus.NOT_STARTED */ } });\r\n await set(installations.appConfig, updatedInstallationEntry);\r\n }\r\n throw e;\r\n }\r\n}\r\nfunction isEntryRegistered(installationEntry) {\r\n return (installationEntry !== undefined &&\r\n installationEntry.registrationStatus === 2 /* RequestStatus.COMPLETED */);\r\n}\r\nfunction isAuthTokenValid(authToken) {\r\n return (authToken.requestStatus === 2 /* RequestStatus.COMPLETED */ &&\r\n !isAuthTokenExpired(authToken));\r\n}\r\nfunction isAuthTokenExpired(authToken) {\r\n const now = Date.now();\r\n return (now < authToken.creationTime ||\r\n authToken.creationTime + authToken.expiresIn < now + TOKEN_EXPIRATION_BUFFER);\r\n}\r\n/** Returns an updated InstallationEntry with an InProgressAuthToken. */\r\nfunction makeAuthTokenRequestInProgressEntry(oldEntry) {\r\n const inProgressAuthToken = {\r\n requestStatus: 1 /* RequestStatus.IN_PROGRESS */,\r\n requestTime: Date.now()\r\n };\r\n return Object.assign(Object.assign({}, oldEntry), { authToken: inProgressAuthToken });\r\n}\r\nfunction hasAuthTokenRequestTimedOut(authToken) {\r\n return (authToken.requestStatus === 1 /* RequestStatus.IN_PROGRESS */ &&\r\n authToken.requestTime + PENDING_TIMEOUT_MS < Date.now());\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Creates a Firebase Installation if there isn't one for the app and\r\n * returns the Installation ID.\r\n * @param installations - The `Installations` instance.\r\n *\r\n * @public\r\n */\r\nasync function getId(installations) {\r\n const installationsImpl = installations;\r\n const { installationEntry, registrationPromise } = await getInstallationEntry(installationsImpl);\r\n if (registrationPromise) {\r\n registrationPromise.catch(console.error);\r\n }\r\n else {\r\n // If the installation is already registered, update the authentication\r\n // token if needed.\r\n refreshAuthToken(installationsImpl).catch(console.error);\r\n }\r\n return installationEntry.fid;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns a Firebase Installations auth token, identifying the current\r\n * Firebase Installation.\r\n * @param installations - The `Installations` instance.\r\n * @param forceRefresh - Force refresh regardless of token expiration.\r\n *\r\n * @public\r\n */\r\nasync function getToken(installations, forceRefresh = false) {\r\n const installationsImpl = installations;\r\n await completeInstallationRegistration(installationsImpl);\r\n // At this point we either have a Registered Installation in the DB, or we've\r\n // already thrown an error.\r\n const authToken = await refreshAuthToken(installationsImpl, forceRefresh);\r\n return authToken.token;\r\n}\r\nasync function completeInstallationRegistration(installations) {\r\n const { registrationPromise } = await getInstallationEntry(installations);\r\n if (registrationPromise) {\r\n // A createInstallation request is in progress. Wait until it finishes.\r\n await registrationPromise;\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function deleteInstallationRequest(appConfig, installationEntry) {\r\n const endpoint = getDeleteEndpoint(appConfig, installationEntry);\r\n const headers = getHeadersWithAuth(appConfig, installationEntry);\r\n const request = {\r\n method: 'DELETE',\r\n headers\r\n };\r\n const response = await retryIfServerError(() => fetch(endpoint, request));\r\n if (!response.ok) {\r\n throw await getErrorFromResponse('Delete Installation', response);\r\n }\r\n}\r\nfunction getDeleteEndpoint(appConfig, { fid }) {\r\n return `${getInstallationsEndpoint(appConfig)}/${fid}`;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Deletes the Firebase Installation and all associated data.\r\n * @param installations - The `Installations` instance.\r\n *\r\n * @public\r\n */\r\nasync function deleteInstallations(installations) {\r\n const { appConfig } = installations;\r\n const entry = await update(appConfig, oldEntry => {\r\n if (oldEntry && oldEntry.registrationStatus === 0 /* RequestStatus.NOT_STARTED */) {\r\n // Delete the unregistered entry without sending a deleteInstallation request.\r\n return undefined;\r\n }\r\n return oldEntry;\r\n });\r\n if (entry) {\r\n if (entry.registrationStatus === 1 /* RequestStatus.IN_PROGRESS */) {\r\n // Can't delete while trying to register.\r\n throw ERROR_FACTORY.create(\"delete-pending-registration\" /* ErrorCode.DELETE_PENDING_REGISTRATION */);\r\n }\r\n else if (entry.registrationStatus === 2 /* RequestStatus.COMPLETED */) {\r\n if (!navigator.onLine) {\r\n throw ERROR_FACTORY.create(\"app-offline\" /* ErrorCode.APP_OFFLINE */);\r\n }\r\n else {\r\n await deleteInstallationRequest(appConfig, entry);\r\n await remove(appConfig);\r\n }\r\n }\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Sets a new callback that will get called when Installation ID changes.\r\n * Returns an unsubscribe function that will remove the callback when called.\r\n * @param installations - The `Installations` instance.\r\n * @param callback - The callback function that is invoked when FID changes.\r\n * @returns A function that can be called to unsubscribe.\r\n *\r\n * @public\r\n */\r\nfunction onIdChange(installations, callback) {\r\n const { appConfig } = installations;\r\n addCallback(appConfig, callback);\r\n return () => {\r\n removeCallback(appConfig, callback);\r\n };\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns an instance of {@link Installations} associated with the given\r\n * {@link @firebase/app#FirebaseApp} instance.\r\n * @param app - The {@link @firebase/app#FirebaseApp} instance.\r\n *\r\n * @public\r\n */\r\nfunction getInstallations(app = getApp()) {\r\n const installationsImpl = _getProvider(app, 'installations').getImmediate();\r\n return installationsImpl;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction extractAppConfig(app) {\r\n if (!app || !app.options) {\r\n throw getMissingValueError('App Configuration');\r\n }\r\n if (!app.name) {\r\n throw getMissingValueError('App Name');\r\n }\r\n // Required app config keys\r\n const configKeys = [\r\n 'projectId',\r\n 'apiKey',\r\n 'appId'\r\n ];\r\n for (const keyName of configKeys) {\r\n if (!app.options[keyName]) {\r\n throw getMissingValueError(keyName);\r\n }\r\n }\r\n return {\r\n appName: app.name,\r\n projectId: app.options.projectId,\r\n apiKey: app.options.apiKey,\r\n appId: app.options.appId\r\n };\r\n}\r\nfunction getMissingValueError(valueName) {\r\n return ERROR_FACTORY.create(\"missing-app-config-values\" /* ErrorCode.MISSING_APP_CONFIG_VALUES */, {\r\n valueName\r\n });\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst INSTALLATIONS_NAME = 'installations';\r\nconst INSTALLATIONS_NAME_INTERNAL = 'installations-internal';\r\nconst publicFactory = (container) => {\r\n const app = container.getProvider('app').getImmediate();\r\n // Throws if app isn't configured properly.\r\n const appConfig = extractAppConfig(app);\r\n const heartbeatServiceProvider = _getProvider(app, 'heartbeat');\r\n const installationsImpl = {\r\n app,\r\n appConfig,\r\n heartbeatServiceProvider,\r\n _delete: () => Promise.resolve()\r\n };\r\n return installationsImpl;\r\n};\r\nconst internalFactory = (container) => {\r\n const app = container.getProvider('app').getImmediate();\r\n // Internal FIS instance relies on public FIS instance.\r\n const installations = _getProvider(app, INSTALLATIONS_NAME).getImmediate();\r\n const installationsInternal = {\r\n getId: () => getId(installations),\r\n getToken: (forceRefresh) => getToken(installations, forceRefresh)\r\n };\r\n return installationsInternal;\r\n};\r\nfunction registerInstallations() {\r\n _registerComponent(new Component(INSTALLATIONS_NAME, publicFactory, \"PUBLIC\" /* ComponentType.PUBLIC */));\r\n _registerComponent(new Component(INSTALLATIONS_NAME_INTERNAL, internalFactory, \"PRIVATE\" /* ComponentType.PRIVATE */));\r\n}\n\n/**\r\n * Firebase Installations\r\n *\r\n * @packageDocumentation\r\n */\r\nregisterInstallations();\r\nregisterVersion(name, version);\r\n// BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\r\nregisterVersion(name, version, 'esm2017');\n\nexport { deleteInstallations, getId, getInstallations, getToken, onIdChange };\n//# sourceMappingURL=index.esm2017.js.map\n","/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * A container for all of the Logger instances\r\n */\r\nconst instances = [];\r\n/**\r\n * The JS SDK supports 5 log levels and also allows a user the ability to\r\n * silence the logs altogether.\r\n *\r\n * The order is a follows:\r\n * DEBUG < VERBOSE < INFO < WARN < ERROR\r\n *\r\n * All of the log types above the current log level will be captured (i.e. if\r\n * you set the log level to `INFO`, errors will still be logged, but `DEBUG` and\r\n * `VERBOSE` logs will not)\r\n */\r\nvar LogLevel;\r\n(function (LogLevel) {\r\n LogLevel[LogLevel[\"DEBUG\"] = 0] = \"DEBUG\";\r\n LogLevel[LogLevel[\"VERBOSE\"] = 1] = \"VERBOSE\";\r\n LogLevel[LogLevel[\"INFO\"] = 2] = \"INFO\";\r\n LogLevel[LogLevel[\"WARN\"] = 3] = \"WARN\";\r\n LogLevel[LogLevel[\"ERROR\"] = 4] = \"ERROR\";\r\n LogLevel[LogLevel[\"SILENT\"] = 5] = \"SILENT\";\r\n})(LogLevel || (LogLevel = {}));\r\nconst levelStringToEnum = {\r\n 'debug': LogLevel.DEBUG,\r\n 'verbose': LogLevel.VERBOSE,\r\n 'info': LogLevel.INFO,\r\n 'warn': LogLevel.WARN,\r\n 'error': LogLevel.ERROR,\r\n 'silent': LogLevel.SILENT\r\n};\r\n/**\r\n * The default log level\r\n */\r\nconst defaultLogLevel = LogLevel.INFO;\r\n/**\r\n * By default, `console.debug` is not displayed in the developer console (in\r\n * chrome). To avoid forcing users to have to opt-in to these logs twice\r\n * (i.e. once for firebase, and once in the console), we are sending `DEBUG`\r\n * logs to the `console.log` function.\r\n */\r\nconst ConsoleMethod = {\r\n [LogLevel.DEBUG]: 'log',\r\n [LogLevel.VERBOSE]: 'log',\r\n [LogLevel.INFO]: 'info',\r\n [LogLevel.WARN]: 'warn',\r\n [LogLevel.ERROR]: 'error'\r\n};\r\n/**\r\n * The default log handler will forward DEBUG, VERBOSE, INFO, WARN, and ERROR\r\n * messages on to their corresponding console counterparts (if the log method\r\n * is supported by the current log level)\r\n */\r\nconst defaultLogHandler = (instance, logType, ...args) => {\r\n if (logType < instance.logLevel) {\r\n return;\r\n }\r\n const now = new Date().toISOString();\r\n const method = ConsoleMethod[logType];\r\n if (method) {\r\n console[method](`[${now}] ${instance.name}:`, ...args);\r\n }\r\n else {\r\n throw new Error(`Attempted to log a message with an invalid logType (value: ${logType})`);\r\n }\r\n};\r\nclass Logger {\r\n /**\r\n * Gives you an instance of a Logger to capture messages according to\r\n * Firebase's logging scheme.\r\n *\r\n * @param name The name that the logs will be associated with\r\n */\r\n constructor(name) {\r\n this.name = name;\r\n /**\r\n * The log level of the given Logger instance.\r\n */\r\n this._logLevel = defaultLogLevel;\r\n /**\r\n * The main (internal) log handler for the Logger instance.\r\n * Can be set to a new function in internal package code but not by user.\r\n */\r\n this._logHandler = defaultLogHandler;\r\n /**\r\n * The optional, additional, user-defined log handler for the Logger instance.\r\n */\r\n this._userLogHandler = null;\r\n /**\r\n * Capture the current instance for later use\r\n */\r\n instances.push(this);\r\n }\r\n get logLevel() {\r\n return this._logLevel;\r\n }\r\n set logLevel(val) {\r\n if (!(val in LogLevel)) {\r\n throw new TypeError(`Invalid value \"${val}\" assigned to \\`logLevel\\``);\r\n }\r\n this._logLevel = val;\r\n }\r\n // Workaround for setter/getter having to be the same type.\r\n setLogLevel(val) {\r\n this._logLevel = typeof val === 'string' ? levelStringToEnum[val] : val;\r\n }\r\n get logHandler() {\r\n return this._logHandler;\r\n }\r\n set logHandler(val) {\r\n if (typeof val !== 'function') {\r\n throw new TypeError('Value assigned to `logHandler` must be a function');\r\n }\r\n this._logHandler = val;\r\n }\r\n get userLogHandler() {\r\n return this._userLogHandler;\r\n }\r\n set userLogHandler(val) {\r\n this._userLogHandler = val;\r\n }\r\n /**\r\n * The functions below are all based on the `console` interface\r\n */\r\n debug(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.DEBUG, ...args);\r\n this._logHandler(this, LogLevel.DEBUG, ...args);\r\n }\r\n log(...args) {\r\n this._userLogHandler &&\r\n this._userLogHandler(this, LogLevel.VERBOSE, ...args);\r\n this._logHandler(this, LogLevel.VERBOSE, ...args);\r\n }\r\n info(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.INFO, ...args);\r\n this._logHandler(this, LogLevel.INFO, ...args);\r\n }\r\n warn(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.WARN, ...args);\r\n this._logHandler(this, LogLevel.WARN, ...args);\r\n }\r\n error(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.ERROR, ...args);\r\n this._logHandler(this, LogLevel.ERROR, ...args);\r\n }\r\n}\r\nfunction setLogLevel(level) {\r\n instances.forEach(inst => {\r\n inst.setLogLevel(level);\r\n });\r\n}\r\nfunction setUserLogHandler(logCallback, options) {\r\n for (const instance of instances) {\r\n let customLogLevel = null;\r\n if (options && options.level) {\r\n customLogLevel = levelStringToEnum[options.level];\r\n }\r\n if (logCallback === null) {\r\n instance.userLogHandler = null;\r\n }\r\n else {\r\n instance.userLogHandler = (instance, level, ...args) => {\r\n const message = args\r\n .map(arg => {\r\n if (arg == null) {\r\n return null;\r\n }\r\n else if (typeof arg === 'string') {\r\n return arg;\r\n }\r\n else if (typeof arg === 'number' || typeof arg === 'boolean') {\r\n return arg.toString();\r\n }\r\n else if (arg instanceof Error) {\r\n return arg.message;\r\n }\r\n else {\r\n try {\r\n return JSON.stringify(arg);\r\n }\r\n catch (ignored) {\r\n return null;\r\n }\r\n }\r\n })\r\n .filter(arg => arg)\r\n .join(' ');\r\n if (level >= (customLogLevel !== null && customLogLevel !== void 0 ? customLogLevel : instance.logLevel)) {\r\n logCallback({\r\n level: LogLevel[level].toLowerCase(),\r\n message,\r\n args,\r\n type: instance.name\r\n });\r\n }\r\n };\r\n }\r\n }\r\n}\n\nexport { LogLevel, Logger, setLogLevel, setUserLogHandler };\n//# sourceMappingURL=index.esm2017.js.map\n","import '@firebase/installations';\nimport { Component } from '@firebase/component';\nimport { openDB, deleteDB } from 'idb';\nimport { ErrorFactory, validateIndexedDBOpenable, isIndexedDBAvailable, areCookiesEnabled, getModularInstance } from '@firebase/util';\nimport { _registerComponent, registerVersion, _getProvider, getApp } from '@firebase/app';\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst DEFAULT_SW_PATH = '/firebase-messaging-sw.js';\r\nconst DEFAULT_SW_SCOPE = '/firebase-cloud-messaging-push-scope';\r\nconst DEFAULT_VAPID_KEY = 'BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4';\r\nconst ENDPOINT = 'https://fcmregistrations.googleapis.com/v1';\r\nconst CONSOLE_CAMPAIGN_ID = 'google.c.a.c_id';\r\nconst CONSOLE_CAMPAIGN_NAME = 'google.c.a.c_l';\r\nconst CONSOLE_CAMPAIGN_TIME = 'google.c.a.ts';\r\n/** Set to '1' if Analytics is enabled for the campaign */\r\nconst CONSOLE_CAMPAIGN_ANALYTICS_ENABLED = 'google.c.a.e';\r\nvar MessageType$1;\r\n(function (MessageType) {\r\n MessageType[MessageType[\"DATA_MESSAGE\"] = 1] = \"DATA_MESSAGE\";\r\n MessageType[MessageType[\"DISPLAY_NOTIFICATION\"] = 3] = \"DISPLAY_NOTIFICATION\";\r\n})(MessageType$1 || (MessageType$1 = {}));\n\n/**\r\n * @license\r\n * Copyright 2018 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except\r\n * in compliance with the License. You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software distributed under the License\r\n * is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express\r\n * or implied. See the License for the specific language governing permissions and limitations under\r\n * the License.\r\n */\r\nvar MessageType;\r\n(function (MessageType) {\r\n MessageType[\"PUSH_RECEIVED\"] = \"push-received\";\r\n MessageType[\"NOTIFICATION_CLICKED\"] = \"notification-clicked\";\r\n})(MessageType || (MessageType = {}));\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction arrayToBase64(array) {\r\n const uint8Array = new Uint8Array(array);\r\n const base64String = btoa(String.fromCharCode(...uint8Array));\r\n return base64String.replace(/=/g, '').replace(/\\+/g, '-').replace(/\\//g, '_');\r\n}\r\nfunction base64ToArray(base64String) {\r\n const padding = '='.repeat((4 - (base64String.length % 4)) % 4);\r\n const base64 = (base64String + padding)\r\n .replace(/\\-/g, '+')\r\n .replace(/_/g, '/');\r\n const rawData = atob(base64);\r\n const outputArray = new Uint8Array(rawData.length);\r\n for (let i = 0; i < rawData.length; ++i) {\r\n outputArray[i] = rawData.charCodeAt(i);\r\n }\r\n return outputArray;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst OLD_DB_NAME = 'fcm_token_details_db';\r\n/**\r\n * The last DB version of 'fcm_token_details_db' was 4. This is one higher, so that the upgrade\r\n * callback is called for all versions of the old DB.\r\n */\r\nconst OLD_DB_VERSION = 5;\r\nconst OLD_OBJECT_STORE_NAME = 'fcm_token_object_Store';\r\nasync function migrateOldDatabase(senderId) {\r\n if ('databases' in indexedDB) {\r\n // indexedDb.databases() is an IndexedDB v3 API and does not exist in all browsers. TODO: Remove\r\n // typecast when it lands in TS types.\r\n const databases = await indexedDB.databases();\r\n const dbNames = databases.map(db => db.name);\r\n if (!dbNames.includes(OLD_DB_NAME)) {\r\n // old DB didn't exist, no need to open.\r\n return null;\r\n }\r\n }\r\n let tokenDetails = null;\r\n const db = await openDB(OLD_DB_NAME, OLD_DB_VERSION, {\r\n upgrade: async (db, oldVersion, newVersion, upgradeTransaction) => {\r\n var _a;\r\n if (oldVersion < 2) {\r\n // Database too old, skip migration.\r\n return;\r\n }\r\n if (!db.objectStoreNames.contains(OLD_OBJECT_STORE_NAME)) {\r\n // Database did not exist. Nothing to do.\r\n return;\r\n }\r\n const objectStore = upgradeTransaction.objectStore(OLD_OBJECT_STORE_NAME);\r\n const value = await objectStore.index('fcmSenderId').get(senderId);\r\n await objectStore.clear();\r\n if (!value) {\r\n // No entry in the database, nothing to migrate.\r\n return;\r\n }\r\n if (oldVersion === 2) {\r\n const oldDetails = value;\r\n if (!oldDetails.auth || !oldDetails.p256dh || !oldDetails.endpoint) {\r\n return;\r\n }\r\n tokenDetails = {\r\n token: oldDetails.fcmToken,\r\n createTime: (_a = oldDetails.createTime) !== null && _a !== void 0 ? _a : Date.now(),\r\n subscriptionOptions: {\r\n auth: oldDetails.auth,\r\n p256dh: oldDetails.p256dh,\r\n endpoint: oldDetails.endpoint,\r\n swScope: oldDetails.swScope,\r\n vapidKey: typeof oldDetails.vapidKey === 'string'\r\n ? oldDetails.vapidKey\r\n : arrayToBase64(oldDetails.vapidKey)\r\n }\r\n };\r\n }\r\n else if (oldVersion === 3) {\r\n const oldDetails = value;\r\n tokenDetails = {\r\n token: oldDetails.fcmToken,\r\n createTime: oldDetails.createTime,\r\n subscriptionOptions: {\r\n auth: arrayToBase64(oldDetails.auth),\r\n p256dh: arrayToBase64(oldDetails.p256dh),\r\n endpoint: oldDetails.endpoint,\r\n swScope: oldDetails.swScope,\r\n vapidKey: arrayToBase64(oldDetails.vapidKey)\r\n }\r\n };\r\n }\r\n else if (oldVersion === 4) {\r\n const oldDetails = value;\r\n tokenDetails = {\r\n token: oldDetails.fcmToken,\r\n createTime: oldDetails.createTime,\r\n subscriptionOptions: {\r\n auth: arrayToBase64(oldDetails.auth),\r\n p256dh: arrayToBase64(oldDetails.p256dh),\r\n endpoint: oldDetails.endpoint,\r\n swScope: oldDetails.swScope,\r\n vapidKey: arrayToBase64(oldDetails.vapidKey)\r\n }\r\n };\r\n }\r\n }\r\n });\r\n db.close();\r\n // Delete all old databases.\r\n await deleteDB(OLD_DB_NAME);\r\n await deleteDB('fcm_vapid_details_db');\r\n await deleteDB('undefined');\r\n return checkTokenDetails(tokenDetails) ? tokenDetails : null;\r\n}\r\nfunction checkTokenDetails(tokenDetails) {\r\n if (!tokenDetails || !tokenDetails.subscriptionOptions) {\r\n return false;\r\n }\r\n const { subscriptionOptions } = tokenDetails;\r\n return (typeof tokenDetails.createTime === 'number' &&\r\n tokenDetails.createTime > 0 &&\r\n typeof tokenDetails.token === 'string' &&\r\n tokenDetails.token.length > 0 &&\r\n typeof subscriptionOptions.auth === 'string' &&\r\n subscriptionOptions.auth.length > 0 &&\r\n typeof subscriptionOptions.p256dh === 'string' &&\r\n subscriptionOptions.p256dh.length > 0 &&\r\n typeof subscriptionOptions.endpoint === 'string' &&\r\n subscriptionOptions.endpoint.length > 0 &&\r\n typeof subscriptionOptions.swScope === 'string' &&\r\n subscriptionOptions.swScope.length > 0 &&\r\n typeof subscriptionOptions.vapidKey === 'string' &&\r\n subscriptionOptions.vapidKey.length > 0);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// Exported for tests.\r\nconst DATABASE_NAME = 'firebase-messaging-database';\r\nconst DATABASE_VERSION = 1;\r\nconst OBJECT_STORE_NAME = 'firebase-messaging-store';\r\nlet dbPromise = null;\r\nfunction getDbPromise() {\r\n if (!dbPromise) {\r\n dbPromise = openDB(DATABASE_NAME, DATABASE_VERSION, {\r\n upgrade: (upgradeDb, oldVersion) => {\r\n // We don't use 'break' in this switch statement, the fall-through behavior is what we want,\r\n // because if there are multiple versions between the old version and the current version, we\r\n // want ALL the migrations that correspond to those versions to run, not only the last one.\r\n // eslint-disable-next-line default-case\r\n switch (oldVersion) {\r\n case 0:\r\n upgradeDb.createObjectStore(OBJECT_STORE_NAME);\r\n }\r\n }\r\n });\r\n }\r\n return dbPromise;\r\n}\r\n/** Gets record(s) from the objectStore that match the given key. */\r\nasync function dbGet(firebaseDependencies) {\r\n const key = getKey(firebaseDependencies);\r\n const db = await getDbPromise();\r\n const tokenDetails = (await db\r\n .transaction(OBJECT_STORE_NAME)\r\n .objectStore(OBJECT_STORE_NAME)\r\n .get(key));\r\n if (tokenDetails) {\r\n return tokenDetails;\r\n }\r\n else {\r\n // Check if there is a tokenDetails object in the old DB.\r\n const oldTokenDetails = await migrateOldDatabase(firebaseDependencies.appConfig.senderId);\r\n if (oldTokenDetails) {\r\n await dbSet(firebaseDependencies, oldTokenDetails);\r\n return oldTokenDetails;\r\n }\r\n }\r\n}\r\n/** Assigns or overwrites the record for the given key with the given value. */\r\nasync function dbSet(firebaseDependencies, tokenDetails) {\r\n const key = getKey(firebaseDependencies);\r\n const db = await getDbPromise();\r\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\r\n await tx.objectStore(OBJECT_STORE_NAME).put(tokenDetails, key);\r\n await tx.done;\r\n return tokenDetails;\r\n}\r\n/** Removes record(s) from the objectStore that match the given key. */\r\nasync function dbRemove(firebaseDependencies) {\r\n const key = getKey(firebaseDependencies);\r\n const db = await getDbPromise();\r\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\r\n await tx.objectStore(OBJECT_STORE_NAME).delete(key);\r\n await tx.done;\r\n}\r\nfunction getKey({ appConfig }) {\r\n return appConfig.appId;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst ERROR_MAP = {\r\n [\"missing-app-config-values\" /* ErrorCode.MISSING_APP_CONFIG_VALUES */]: 'Missing App configuration value: \"{$valueName}\"',\r\n [\"only-available-in-window\" /* ErrorCode.AVAILABLE_IN_WINDOW */]: 'This method is available in a Window context.',\r\n [\"only-available-in-sw\" /* ErrorCode.AVAILABLE_IN_SW */]: 'This method is available in a service worker context.',\r\n [\"permission-default\" /* ErrorCode.PERMISSION_DEFAULT */]: 'The notification permission was not granted and dismissed instead.',\r\n [\"permission-blocked\" /* ErrorCode.PERMISSION_BLOCKED */]: 'The notification permission was not granted and blocked instead.',\r\n [\"unsupported-browser\" /* ErrorCode.UNSUPPORTED_BROWSER */]: \"This browser doesn't support the API's required to use the Firebase SDK.\",\r\n [\"indexed-db-unsupported\" /* ErrorCode.INDEXED_DB_UNSUPPORTED */]: \"This browser doesn't support indexedDb.open() (ex. Safari iFrame, Firefox Private Browsing, etc)\",\r\n [\"failed-service-worker-registration\" /* ErrorCode.FAILED_DEFAULT_REGISTRATION */]: 'We are unable to register the default service worker. {$browserErrorMessage}',\r\n [\"token-subscribe-failed\" /* ErrorCode.TOKEN_SUBSCRIBE_FAILED */]: 'A problem occurred while subscribing the user to FCM: {$errorInfo}',\r\n [\"token-subscribe-no-token\" /* ErrorCode.TOKEN_SUBSCRIBE_NO_TOKEN */]: 'FCM returned no token when subscribing the user to push.',\r\n [\"token-unsubscribe-failed\" /* ErrorCode.TOKEN_UNSUBSCRIBE_FAILED */]: 'A problem occurred while unsubscribing the ' +\r\n 'user from FCM: {$errorInfo}',\r\n [\"token-update-failed\" /* ErrorCode.TOKEN_UPDATE_FAILED */]: 'A problem occurred while updating the user from FCM: {$errorInfo}',\r\n [\"token-update-no-token\" /* ErrorCode.TOKEN_UPDATE_NO_TOKEN */]: 'FCM returned no token when updating the user to push.',\r\n [\"use-sw-after-get-token\" /* ErrorCode.USE_SW_AFTER_GET_TOKEN */]: 'The useServiceWorker() method may only be called once and must be ' +\r\n 'called before calling getToken() to ensure your service worker is used.',\r\n [\"invalid-sw-registration\" /* ErrorCode.INVALID_SW_REGISTRATION */]: 'The input to useServiceWorker() must be a ServiceWorkerRegistration.',\r\n [\"invalid-bg-handler\" /* ErrorCode.INVALID_BG_HANDLER */]: 'The input to setBackgroundMessageHandler() must be a function.',\r\n [\"invalid-vapid-key\" /* ErrorCode.INVALID_VAPID_KEY */]: 'The public VAPID key must be a string.',\r\n [\"use-vapid-key-after-get-token\" /* ErrorCode.USE_VAPID_KEY_AFTER_GET_TOKEN */]: 'The usePublicVapidKey() method may only be called once and must be ' +\r\n 'called before calling getToken() to ensure your VAPID key is used.'\r\n};\r\nconst ERROR_FACTORY = new ErrorFactory('messaging', 'Messaging', ERROR_MAP);\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function requestGetToken(firebaseDependencies, subscriptionOptions) {\r\n const headers = await getHeaders(firebaseDependencies);\r\n const body = getBody(subscriptionOptions);\r\n const subscribeOptions = {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify(body)\r\n };\r\n let responseData;\r\n try {\r\n const response = await fetch(getEndpoint(firebaseDependencies.appConfig), subscribeOptions);\r\n responseData = await response.json();\r\n }\r\n catch (err) {\r\n throw ERROR_FACTORY.create(\"token-subscribe-failed\" /* ErrorCode.TOKEN_SUBSCRIBE_FAILED */, {\r\n errorInfo: err === null || err === void 0 ? void 0 : err.toString()\r\n });\r\n }\r\n if (responseData.error) {\r\n const message = responseData.error.message;\r\n throw ERROR_FACTORY.create(\"token-subscribe-failed\" /* ErrorCode.TOKEN_SUBSCRIBE_FAILED */, {\r\n errorInfo: message\r\n });\r\n }\r\n if (!responseData.token) {\r\n throw ERROR_FACTORY.create(\"token-subscribe-no-token\" /* ErrorCode.TOKEN_SUBSCRIBE_NO_TOKEN */);\r\n }\r\n return responseData.token;\r\n}\r\nasync function requestUpdateToken(firebaseDependencies, tokenDetails) {\r\n const headers = await getHeaders(firebaseDependencies);\r\n const body = getBody(tokenDetails.subscriptionOptions);\r\n const updateOptions = {\r\n method: 'PATCH',\r\n headers,\r\n body: JSON.stringify(body)\r\n };\r\n let responseData;\r\n try {\r\n const response = await fetch(`${getEndpoint(firebaseDependencies.appConfig)}/${tokenDetails.token}`, updateOptions);\r\n responseData = await response.json();\r\n }\r\n catch (err) {\r\n throw ERROR_FACTORY.create(\"token-update-failed\" /* ErrorCode.TOKEN_UPDATE_FAILED */, {\r\n errorInfo: err === null || err === void 0 ? void 0 : err.toString()\r\n });\r\n }\r\n if (responseData.error) {\r\n const message = responseData.error.message;\r\n throw ERROR_FACTORY.create(\"token-update-failed\" /* ErrorCode.TOKEN_UPDATE_FAILED */, {\r\n errorInfo: message\r\n });\r\n }\r\n if (!responseData.token) {\r\n throw ERROR_FACTORY.create(\"token-update-no-token\" /* ErrorCode.TOKEN_UPDATE_NO_TOKEN */);\r\n }\r\n return responseData.token;\r\n}\r\nasync function requestDeleteToken(firebaseDependencies, token) {\r\n const headers = await getHeaders(firebaseDependencies);\r\n const unsubscribeOptions = {\r\n method: 'DELETE',\r\n headers\r\n };\r\n try {\r\n const response = await fetch(`${getEndpoint(firebaseDependencies.appConfig)}/${token}`, unsubscribeOptions);\r\n const responseData = await response.json();\r\n if (responseData.error) {\r\n const message = responseData.error.message;\r\n throw ERROR_FACTORY.create(\"token-unsubscribe-failed\" /* ErrorCode.TOKEN_UNSUBSCRIBE_FAILED */, {\r\n errorInfo: message\r\n });\r\n }\r\n }\r\n catch (err) {\r\n throw ERROR_FACTORY.create(\"token-unsubscribe-failed\" /* ErrorCode.TOKEN_UNSUBSCRIBE_FAILED */, {\r\n errorInfo: err === null || err === void 0 ? void 0 : err.toString()\r\n });\r\n }\r\n}\r\nfunction getEndpoint({ projectId }) {\r\n return `${ENDPOINT}/projects/${projectId}/registrations`;\r\n}\r\nasync function getHeaders({ appConfig, installations }) {\r\n const authToken = await installations.getToken();\r\n return new Headers({\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json',\r\n 'x-goog-api-key': appConfig.apiKey,\r\n 'x-goog-firebase-installations-auth': `FIS ${authToken}`\r\n });\r\n}\r\nfunction getBody({ p256dh, auth, endpoint, vapidKey }) {\r\n const body = {\r\n web: {\r\n endpoint,\r\n auth,\r\n p256dh\r\n }\r\n };\r\n if (vapidKey !== DEFAULT_VAPID_KEY) {\r\n body.web.applicationPubKey = vapidKey;\r\n }\r\n return body;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// UpdateRegistration will be called once every week.\r\nconst TOKEN_EXPIRATION_MS = 7 * 24 * 60 * 60 * 1000; // 7 days\r\nasync function getTokenInternal(messaging) {\r\n const pushSubscription = await getPushSubscription(messaging.swRegistration, messaging.vapidKey);\r\n const subscriptionOptions = {\r\n vapidKey: messaging.vapidKey,\r\n swScope: messaging.swRegistration.scope,\r\n endpoint: pushSubscription.endpoint,\r\n auth: arrayToBase64(pushSubscription.getKey('auth')),\r\n p256dh: arrayToBase64(pushSubscription.getKey('p256dh'))\r\n };\r\n const tokenDetails = await dbGet(messaging.firebaseDependencies);\r\n if (!tokenDetails) {\r\n // No token, get a new one.\r\n return getNewToken(messaging.firebaseDependencies, subscriptionOptions);\r\n }\r\n else if (!isTokenValid(tokenDetails.subscriptionOptions, subscriptionOptions)) {\r\n // Invalid token, get a new one.\r\n try {\r\n await requestDeleteToken(messaging.firebaseDependencies, tokenDetails.token);\r\n }\r\n catch (e) {\r\n // Suppress errors because of #2364\r\n console.warn(e);\r\n }\r\n return getNewToken(messaging.firebaseDependencies, subscriptionOptions);\r\n }\r\n else if (Date.now() >= tokenDetails.createTime + TOKEN_EXPIRATION_MS) {\r\n // Weekly token refresh\r\n return updateToken(messaging, {\r\n token: tokenDetails.token,\r\n createTime: Date.now(),\r\n subscriptionOptions\r\n });\r\n }\r\n else {\r\n // Valid token, nothing to do.\r\n return tokenDetails.token;\r\n }\r\n}\r\n/**\r\n * This method deletes the token from the database, unsubscribes the token from FCM, and unregisters\r\n * the push subscription if it exists.\r\n */\r\nasync function deleteTokenInternal(messaging) {\r\n const tokenDetails = await dbGet(messaging.firebaseDependencies);\r\n if (tokenDetails) {\r\n await requestDeleteToken(messaging.firebaseDependencies, tokenDetails.token);\r\n await dbRemove(messaging.firebaseDependencies);\r\n }\r\n // Unsubscribe from the push subscription.\r\n const pushSubscription = await messaging.swRegistration.pushManager.getSubscription();\r\n if (pushSubscription) {\r\n return pushSubscription.unsubscribe();\r\n }\r\n // If there's no SW, consider it a success.\r\n return true;\r\n}\r\nasync function updateToken(messaging, tokenDetails) {\r\n try {\r\n const updatedToken = await requestUpdateToken(messaging.firebaseDependencies, tokenDetails);\r\n const updatedTokenDetails = Object.assign(Object.assign({}, tokenDetails), { token: updatedToken, createTime: Date.now() });\r\n await dbSet(messaging.firebaseDependencies, updatedTokenDetails);\r\n return updatedToken;\r\n }\r\n catch (e) {\r\n await deleteTokenInternal(messaging);\r\n throw e;\r\n }\r\n}\r\nasync function getNewToken(firebaseDependencies, subscriptionOptions) {\r\n const token = await requestGetToken(firebaseDependencies, subscriptionOptions);\r\n const tokenDetails = {\r\n token,\r\n createTime: Date.now(),\r\n subscriptionOptions\r\n };\r\n await dbSet(firebaseDependencies, tokenDetails);\r\n return tokenDetails.token;\r\n}\r\n/**\r\n * Gets a PushSubscription for the current user.\r\n */\r\nasync function getPushSubscription(swRegistration, vapidKey) {\r\n const subscription = await swRegistration.pushManager.getSubscription();\r\n if (subscription) {\r\n return subscription;\r\n }\r\n return swRegistration.pushManager.subscribe({\r\n userVisibleOnly: true,\r\n // Chrome <= 75 doesn't support base64-encoded VAPID key. For backward compatibility, VAPID key\r\n // submitted to pushManager#subscribe must be of type Uint8Array.\r\n applicationServerKey: base64ToArray(vapidKey)\r\n });\r\n}\r\n/**\r\n * Checks if the saved tokenDetails object matches the configuration provided.\r\n */\r\nfunction isTokenValid(dbOptions, currentOptions) {\r\n const isVapidKeyEqual = currentOptions.vapidKey === dbOptions.vapidKey;\r\n const isEndpointEqual = currentOptions.endpoint === dbOptions.endpoint;\r\n const isAuthEqual = currentOptions.auth === dbOptions.auth;\r\n const isP256dhEqual = currentOptions.p256dh === dbOptions.p256dh;\r\n return isVapidKeyEqual && isEndpointEqual && isAuthEqual && isP256dhEqual;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction externalizePayload(internalPayload) {\r\n const payload = {\r\n from: internalPayload.from,\r\n // eslint-disable-next-line camelcase\r\n collapseKey: internalPayload.collapse_key,\r\n // eslint-disable-next-line camelcase\r\n messageId: internalPayload.fcmMessageId\r\n };\r\n propagateNotificationPayload(payload, internalPayload);\r\n propagateDataPayload(payload, internalPayload);\r\n propagateFcmOptions(payload, internalPayload);\r\n return payload;\r\n}\r\nfunction propagateNotificationPayload(payload, messagePayloadInternal) {\r\n if (!messagePayloadInternal.notification) {\r\n return;\r\n }\r\n payload.notification = {};\r\n const title = messagePayloadInternal.notification.title;\r\n if (!!title) {\r\n payload.notification.title = title;\r\n }\r\n const body = messagePayloadInternal.notification.body;\r\n if (!!body) {\r\n payload.notification.body = body;\r\n }\r\n const image = messagePayloadInternal.notification.image;\r\n if (!!image) {\r\n payload.notification.image = image;\r\n }\r\n const icon = messagePayloadInternal.notification.icon;\r\n if (!!icon) {\r\n payload.notification.icon = icon;\r\n }\r\n}\r\nfunction propagateDataPayload(payload, messagePayloadInternal) {\r\n if (!messagePayloadInternal.data) {\r\n return;\r\n }\r\n payload.data = messagePayloadInternal.data;\r\n}\r\nfunction propagateFcmOptions(payload, messagePayloadInternal) {\r\n var _a, _b, _c, _d, _e;\r\n // fcmOptions.link value is written into notification.click_action. see more in b/232072111\r\n if (!messagePayloadInternal.fcmOptions &&\r\n !((_a = messagePayloadInternal.notification) === null || _a === void 0 ? void 0 : _a.click_action)) {\r\n return;\r\n }\r\n payload.fcmOptions = {};\r\n const link = (_c = (_b = messagePayloadInternal.fcmOptions) === null || _b === void 0 ? void 0 : _b.link) !== null && _c !== void 0 ? _c : (_d = messagePayloadInternal.notification) === null || _d === void 0 ? void 0 : _d.click_action;\r\n if (!!link) {\r\n payload.fcmOptions.link = link;\r\n }\r\n // eslint-disable-next-line camelcase\r\n const analyticsLabel = (_e = messagePayloadInternal.fcmOptions) === null || _e === void 0 ? void 0 : _e.analytics_label;\r\n if (!!analyticsLabel) {\r\n payload.fcmOptions.analyticsLabel = analyticsLabel;\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction isConsoleMessage(data) {\r\n // This message has a campaign ID, meaning it was sent using the Firebase Console.\r\n return typeof data === 'object' && !!data && CONSOLE_CAMPAIGN_ID in data;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n_mergeStrings('hts/frbslgigp.ogepscmv/ieo/eaylg', 'tp:/ieaeogn-agolai.o/1frlglgc/o');\r\n_mergeStrings('AzSCbw63g1R0nCw85jG8', 'Iaya3yLKwmgvh7cF0q4');\r\nfunction _mergeStrings(s1, s2) {\r\n const resultArray = [];\r\n for (let i = 0; i < s1.length; i++) {\r\n resultArray.push(s1.charAt(i));\r\n if (i < s2.length) {\r\n resultArray.push(s2.charAt(i));\r\n }\r\n }\r\n return resultArray.join('');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction extractAppConfig(app) {\r\n if (!app || !app.options) {\r\n throw getMissingValueError('App Configuration Object');\r\n }\r\n if (!app.name) {\r\n throw getMissingValueError('App Name');\r\n }\r\n // Required app config keys\r\n const configKeys = [\r\n 'projectId',\r\n 'apiKey',\r\n 'appId',\r\n 'messagingSenderId'\r\n ];\r\n const { options } = app;\r\n for (const keyName of configKeys) {\r\n if (!options[keyName]) {\r\n throw getMissingValueError(keyName);\r\n }\r\n }\r\n return {\r\n appName: app.name,\r\n projectId: options.projectId,\r\n apiKey: options.apiKey,\r\n appId: options.appId,\r\n senderId: options.messagingSenderId\r\n };\r\n}\r\nfunction getMissingValueError(valueName) {\r\n return ERROR_FACTORY.create(\"missing-app-config-values\" /* ErrorCode.MISSING_APP_CONFIG_VALUES */, {\r\n valueName\r\n });\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nclass MessagingService {\r\n constructor(app, installations, analyticsProvider) {\r\n // logging is only done with end user consent. Default to false.\r\n this.deliveryMetricsExportedToBigQueryEnabled = false;\r\n this.onBackgroundMessageHandler = null;\r\n this.onMessageHandler = null;\r\n this.logEvents = [];\r\n this.isLogServiceStarted = false;\r\n const appConfig = extractAppConfig(app);\r\n this.firebaseDependencies = {\r\n app,\r\n appConfig,\r\n installations,\r\n analyticsProvider\r\n };\r\n }\r\n _delete() {\r\n return Promise.resolve();\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function registerDefaultSw(messaging) {\r\n try {\r\n messaging.swRegistration = await navigator.serviceWorker.register(DEFAULT_SW_PATH, {\r\n scope: DEFAULT_SW_SCOPE\r\n });\r\n // The timing when browser updates sw when sw has an update is unreliable from experiment. It\r\n // leads to version conflict when the SDK upgrades to a newer version in the main page, but sw\r\n // is stuck with the old version. For example,\r\n // https://github.com/firebase/firebase-js-sdk/issues/2590 The following line reliably updates\r\n // sw if there was an update.\r\n messaging.swRegistration.update().catch(() => {\r\n /* it is non blocking and we don't care if it failed */\r\n });\r\n }\r\n catch (e) {\r\n throw ERROR_FACTORY.create(\"failed-service-worker-registration\" /* ErrorCode.FAILED_DEFAULT_REGISTRATION */, {\r\n browserErrorMessage: e === null || e === void 0 ? void 0 : e.message\r\n });\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function updateSwReg(messaging, swRegistration) {\r\n if (!swRegistration && !messaging.swRegistration) {\r\n await registerDefaultSw(messaging);\r\n }\r\n if (!swRegistration && !!messaging.swRegistration) {\r\n return;\r\n }\r\n if (!(swRegistration instanceof ServiceWorkerRegistration)) {\r\n throw ERROR_FACTORY.create(\"invalid-sw-registration\" /* ErrorCode.INVALID_SW_REGISTRATION */);\r\n }\r\n messaging.swRegistration = swRegistration;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function updateVapidKey(messaging, vapidKey) {\r\n if (!!vapidKey) {\r\n messaging.vapidKey = vapidKey;\r\n }\r\n else if (!messaging.vapidKey) {\r\n messaging.vapidKey = DEFAULT_VAPID_KEY;\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function getToken$1(messaging, options) {\r\n if (!navigator) {\r\n throw ERROR_FACTORY.create(\"only-available-in-window\" /* ErrorCode.AVAILABLE_IN_WINDOW */);\r\n }\r\n if (Notification.permission === 'default') {\r\n await Notification.requestPermission();\r\n }\r\n if (Notification.permission !== 'granted') {\r\n throw ERROR_FACTORY.create(\"permission-blocked\" /* ErrorCode.PERMISSION_BLOCKED */);\r\n }\r\n await updateVapidKey(messaging, options === null || options === void 0 ? void 0 : options.vapidKey);\r\n await updateSwReg(messaging, options === null || options === void 0 ? void 0 : options.serviceWorkerRegistration);\r\n return getTokenInternal(messaging);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function logToScion(messaging, messageType, data) {\r\n const eventType = getEventType(messageType);\r\n const analytics = await messaging.firebaseDependencies.analyticsProvider.get();\r\n analytics.logEvent(eventType, {\r\n /* eslint-disable camelcase */\r\n message_id: data[CONSOLE_CAMPAIGN_ID],\r\n message_name: data[CONSOLE_CAMPAIGN_NAME],\r\n message_time: data[CONSOLE_CAMPAIGN_TIME],\r\n message_device_time: Math.floor(Date.now() / 1000)\r\n /* eslint-enable camelcase */\r\n });\r\n}\r\nfunction getEventType(messageType) {\r\n switch (messageType) {\r\n case MessageType.NOTIFICATION_CLICKED:\r\n return 'notification_open';\r\n case MessageType.PUSH_RECEIVED:\r\n return 'notification_foreground';\r\n default:\r\n throw new Error();\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function messageEventListener(messaging, event) {\r\n const internalPayload = event.data;\r\n if (!internalPayload.isFirebaseMessaging) {\r\n return;\r\n }\r\n if (messaging.onMessageHandler &&\r\n internalPayload.messageType === MessageType.PUSH_RECEIVED) {\r\n if (typeof messaging.onMessageHandler === 'function') {\r\n messaging.onMessageHandler(externalizePayload(internalPayload));\r\n }\r\n else {\r\n messaging.onMessageHandler.next(externalizePayload(internalPayload));\r\n }\r\n }\r\n // Log to Scion if applicable\r\n const dataPayload = internalPayload.data;\r\n if (isConsoleMessage(dataPayload) &&\r\n dataPayload[CONSOLE_CAMPAIGN_ANALYTICS_ENABLED] === '1') {\r\n await logToScion(messaging, internalPayload.messageType, dataPayload);\r\n }\r\n}\n\nconst name = \"@firebase/messaging\";\nconst version = \"0.12.1\";\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst WindowMessagingFactory = (container) => {\r\n const messaging = new MessagingService(container.getProvider('app').getImmediate(), container.getProvider('installations-internal').getImmediate(), container.getProvider('analytics-internal'));\r\n navigator.serviceWorker.addEventListener('message', e => messageEventListener(messaging, e));\r\n return messaging;\r\n};\r\nconst WindowMessagingInternalFactory = (container) => {\r\n const messaging = container\r\n .getProvider('messaging')\r\n .getImmediate();\r\n const messagingInternal = {\r\n getToken: (options) => getToken$1(messaging, options)\r\n };\r\n return messagingInternal;\r\n};\r\nfunction registerMessagingInWindow() {\r\n _registerComponent(new Component('messaging', WindowMessagingFactory, \"PUBLIC\" /* ComponentType.PUBLIC */));\r\n _registerComponent(new Component('messaging-internal', WindowMessagingInternalFactory, \"PRIVATE\" /* ComponentType.PRIVATE */));\r\n registerVersion(name, version);\r\n // BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\r\n registerVersion(name, version, 'esm2017');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Checks if all required APIs exist in the browser.\r\n * @returns a Promise that resolves to a boolean.\r\n *\r\n * @public\r\n */\r\nasync function isWindowSupported() {\r\n try {\r\n // This throws if open() is unsupported, so adding it to the conditional\r\n // statement below can cause an uncaught error.\r\n await validateIndexedDBOpenable();\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n // firebase-js-sdk/issues/2393 reveals that idb#open in Safari iframe and Firefox private browsing\r\n // might be prohibited to run. In these contexts, an error would be thrown during the messaging\r\n // instantiating phase, informing the developers to import/call isSupported for special handling.\r\n return (typeof window !== 'undefined' &&\r\n isIndexedDBAvailable() &&\r\n areCookiesEnabled() &&\r\n 'serviceWorker' in navigator &&\r\n 'PushManager' in window &&\r\n 'Notification' in window &&\r\n 'fetch' in window &&\r\n ServiceWorkerRegistration.prototype.hasOwnProperty('showNotification') &&\r\n PushSubscription.prototype.hasOwnProperty('getKey'));\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function deleteToken$1(messaging) {\r\n if (!navigator) {\r\n throw ERROR_FACTORY.create(\"only-available-in-window\" /* ErrorCode.AVAILABLE_IN_WINDOW */);\r\n }\r\n if (!messaging.swRegistration) {\r\n await registerDefaultSw(messaging);\r\n }\r\n return deleteTokenInternal(messaging);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction onMessage$1(messaging, nextOrObserver) {\r\n if (!navigator) {\r\n throw ERROR_FACTORY.create(\"only-available-in-window\" /* ErrorCode.AVAILABLE_IN_WINDOW */);\r\n }\r\n messaging.onMessageHandler = nextOrObserver;\r\n return () => {\r\n messaging.onMessageHandler = null;\r\n };\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Retrieves a Firebase Cloud Messaging instance.\r\n *\r\n * @returns The Firebase Cloud Messaging instance associated with the provided firebase app.\r\n *\r\n * @public\r\n */\r\nfunction getMessagingInWindow(app = getApp()) {\r\n // Conscious decision to make this async check non-blocking during the messaging instance\r\n // initialization phase for performance consideration. An error would be thrown latter for\r\n // developer's information. Developers can then choose to import and call `isSupported` for\r\n // special handling.\r\n isWindowSupported().then(isSupported => {\r\n // If `isWindowSupported()` resolved, but returned false.\r\n if (!isSupported) {\r\n throw ERROR_FACTORY.create(\"unsupported-browser\" /* ErrorCode.UNSUPPORTED_BROWSER */);\r\n }\r\n }, _ => {\r\n // If `isWindowSupported()` rejected.\r\n throw ERROR_FACTORY.create(\"indexed-db-unsupported\" /* ErrorCode.INDEXED_DB_UNSUPPORTED */);\r\n });\r\n return _getProvider(getModularInstance(app), 'messaging').getImmediate();\r\n}\r\n/**\r\n * Subscribes the {@link Messaging} instance to push notifications. Returns an Firebase Cloud\r\n * Messaging registration token that can be used to send push messages to that {@link Messaging}\r\n * instance.\r\n *\r\n * If a notification permission isn't already granted, this method asks the user for permission. The\r\n * returned promise rejects if the user does not allow the app to show notifications.\r\n *\r\n * @param messaging - The {@link Messaging} instance.\r\n * @param options - Provides an optional vapid key and an optinoal service worker registration\r\n *\r\n * @returns The promise resolves with an FCM registration token.\r\n *\r\n * @public\r\n */\r\nasync function getToken(messaging, options) {\r\n messaging = getModularInstance(messaging);\r\n return getToken$1(messaging, options);\r\n}\r\n/**\r\n * Deletes the registration token associated with this {@link Messaging} instance and unsubscribes\r\n * the {@link Messaging} instance from the push subscription.\r\n *\r\n * @param messaging - The {@link Messaging} instance.\r\n *\r\n * @returns The promise resolves when the token has been successfully deleted.\r\n *\r\n * @public\r\n */\r\nfunction deleteToken(messaging) {\r\n messaging = getModularInstance(messaging);\r\n return deleteToken$1(messaging);\r\n}\r\n/**\r\n * When a push message is received and the user is currently on a page for your origin, the\r\n * message is passed to the page and an `onMessage()` event is dispatched with the payload of\r\n * the push message.\r\n *\r\n *\r\n * @param messaging - The {@link Messaging} instance.\r\n * @param nextOrObserver - This function, or observer object with `next` defined,\r\n * is called when a message is received and the user is currently viewing your page.\r\n * @returns To stop listening for messages execute this returned function.\r\n *\r\n * @public\r\n */\r\nfunction onMessage(messaging, nextOrObserver) {\r\n messaging = getModularInstance(messaging);\r\n return onMessage$1(messaging, nextOrObserver);\r\n}\n\n/**\r\n * Firebase Cloud Messaging\r\n *\r\n * @packageDocumentation\r\n */\r\nregisterMessagingInWindow();\n\nexport { deleteToken, getMessagingInWindow as getMessaging, getToken, isWindowSupported as isSupported, onMessage };\n//# sourceMappingURL=index.esm2017.js.map\n","import { registerVersion } from '@firebase/app';\nexport * from '@firebase/app';\n\nvar name = \"firebase\";\nvar version = \"9.16.0\";\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nregisterVersion(name, version, 'app');\n//# sourceMappingURL=index.esm.js.map\n","export * from '@firebase/messaging';\n//# sourceMappingURL=index.esm.js.map\n","import { w as wrap, r as replaceTraps } from './wrap-idb-value.js';\nexport { u as unwrap, w as wrap } from './wrap-idb-value.js';\n\n/**\n * Open a database.\n *\n * @param name Name of the database.\n * @param version Schema version.\n * @param callbacks Additional callbacks.\n */\nfunction openDB(name, version, { blocked, upgrade, blocking, terminated } = {}) {\n const request = indexedDB.open(name, version);\n const openPromise = wrap(request);\n if (upgrade) {\n request.addEventListener('upgradeneeded', (event) => {\n upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction));\n });\n }\n if (blocked)\n request.addEventListener('blocked', () => blocked());\n openPromise\n .then((db) => {\n if (terminated)\n db.addEventListener('close', () => terminated());\n if (blocking)\n db.addEventListener('versionchange', () => blocking());\n })\n .catch(() => { });\n return openPromise;\n}\n/**\n * Delete a database.\n *\n * @param name Name of the database.\n */\nfunction deleteDB(name, { blocked } = {}) {\n const request = indexedDB.deleteDatabase(name);\n if (blocked)\n request.addEventListener('blocked', () => blocked());\n return wrap(request).then(() => undefined);\n}\n\nconst readMethods = ['get', 'getKey', 'getAll', 'getAllKeys', 'count'];\nconst writeMethods = ['put', 'add', 'delete', 'clear'];\nconst cachedMethods = new Map();\nfunction getMethod(target, prop) {\n if (!(target instanceof IDBDatabase &&\n !(prop in target) &&\n typeof prop === 'string')) {\n return;\n }\n if (cachedMethods.get(prop))\n return cachedMethods.get(prop);\n const targetFuncName = prop.replace(/FromIndex$/, '');\n const useIndex = prop !== targetFuncName;\n const isWrite = writeMethods.includes(targetFuncName);\n if (\n // Bail if the target doesn't exist on the target. Eg, getAll isn't in Edge.\n !(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) ||\n !(isWrite || readMethods.includes(targetFuncName))) {\n return;\n }\n const method = async function (storeName, ...args) {\n // isWrite ? 'readwrite' : undefined gzipps better, but fails in Edge :(\n const tx = this.transaction(storeName, isWrite ? 'readwrite' : 'readonly');\n let target = tx.store;\n if (useIndex)\n target = target.index(args.shift());\n // Must reject if op rejects.\n // If it's a write operation, must reject if tx.done rejects.\n // Must reject with op rejection first.\n // Must resolve with op value.\n // Must handle both promises (no unhandled rejections)\n return (await Promise.all([\n target[targetFuncName](...args),\n isWrite && tx.done,\n ]))[0];\n };\n cachedMethods.set(prop, method);\n return method;\n}\nreplaceTraps((oldTraps) => ({\n ...oldTraps,\n get: (target, prop, receiver) => getMethod(target, prop) || oldTraps.get(target, prop, receiver),\n has: (target, prop) => !!getMethod(target, prop) || oldTraps.has(target, prop),\n}));\n\nexport { deleteDB, openDB };\n","const instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c);\n\nlet idbProxyableTypes;\nlet cursorAdvanceMethods;\n// This is a function to prevent it throwing up in node environments.\nfunction getIdbProxyableTypes() {\n return (idbProxyableTypes ||\n (idbProxyableTypes = [\n IDBDatabase,\n IDBObjectStore,\n IDBIndex,\n IDBCursor,\n IDBTransaction,\n ]));\n}\n// This is a function to prevent it throwing up in node environments.\nfunction getCursorAdvanceMethods() {\n return (cursorAdvanceMethods ||\n (cursorAdvanceMethods = [\n IDBCursor.prototype.advance,\n IDBCursor.prototype.continue,\n IDBCursor.prototype.continuePrimaryKey,\n ]));\n}\nconst cursorRequestMap = new WeakMap();\nconst transactionDoneMap = new WeakMap();\nconst transactionStoreNamesMap = new WeakMap();\nconst transformCache = new WeakMap();\nconst reverseTransformCache = new WeakMap();\nfunction promisifyRequest(request) {\n const promise = new Promise((resolve, reject) => {\n const unlisten = () => {\n request.removeEventListener('success', success);\n request.removeEventListener('error', error);\n };\n const success = () => {\n resolve(wrap(request.result));\n unlisten();\n };\n const error = () => {\n reject(request.error);\n unlisten();\n };\n request.addEventListener('success', success);\n request.addEventListener('error', error);\n });\n promise\n .then((value) => {\n // Since cursoring reuses the IDBRequest (*sigh*), we cache it for later retrieval\n // (see wrapFunction).\n if (value instanceof IDBCursor) {\n cursorRequestMap.set(value, request);\n }\n // Catching to avoid \"Uncaught Promise exceptions\"\n })\n .catch(() => { });\n // This mapping exists in reverseTransformCache but doesn't doesn't exist in transformCache. This\n // is because we create many promises from a single IDBRequest.\n reverseTransformCache.set(promise, request);\n return promise;\n}\nfunction cacheDonePromiseForTransaction(tx) {\n // Early bail if we've already created a done promise for this transaction.\n if (transactionDoneMap.has(tx))\n return;\n const done = new Promise((resolve, reject) => {\n const unlisten = () => {\n tx.removeEventListener('complete', complete);\n tx.removeEventListener('error', error);\n tx.removeEventListener('abort', error);\n };\n const complete = () => {\n resolve();\n unlisten();\n };\n const error = () => {\n reject(tx.error || new DOMException('AbortError', 'AbortError'));\n unlisten();\n };\n tx.addEventListener('complete', complete);\n tx.addEventListener('error', error);\n tx.addEventListener('abort', error);\n });\n // Cache it for later retrieval.\n transactionDoneMap.set(tx, done);\n}\nlet idbProxyTraps = {\n get(target, prop, receiver) {\n if (target instanceof IDBTransaction) {\n // Special handling for transaction.done.\n if (prop === 'done')\n return transactionDoneMap.get(target);\n // Polyfill for objectStoreNames because of Edge.\n if (prop === 'objectStoreNames') {\n return target.objectStoreNames || transactionStoreNamesMap.get(target);\n }\n // Make tx.store return the only store in the transaction, or undefined if there are many.\n if (prop === 'store') {\n return receiver.objectStoreNames[1]\n ? undefined\n : receiver.objectStore(receiver.objectStoreNames[0]);\n }\n }\n // Else transform whatever we get back.\n return wrap(target[prop]);\n },\n set(target, prop, value) {\n target[prop] = value;\n return true;\n },\n has(target, prop) {\n if (target instanceof IDBTransaction &&\n (prop === 'done' || prop === 'store')) {\n return true;\n }\n return prop in target;\n },\n};\nfunction replaceTraps(callback) {\n idbProxyTraps = callback(idbProxyTraps);\n}\nfunction wrapFunction(func) {\n // Due to expected object equality (which is enforced by the caching in `wrap`), we\n // only create one new func per func.\n // Edge doesn't support objectStoreNames (booo), so we polyfill it here.\n if (func === IDBDatabase.prototype.transaction &&\n !('objectStoreNames' in IDBTransaction.prototype)) {\n return function (storeNames, ...args) {\n const tx = func.call(unwrap(this), storeNames, ...args);\n transactionStoreNamesMap.set(tx, storeNames.sort ? storeNames.sort() : [storeNames]);\n return wrap(tx);\n };\n }\n // Cursor methods are special, as the behaviour is a little more different to standard IDB. In\n // IDB, you advance the cursor and wait for a new 'success' on the IDBRequest that gave you the\n // cursor. It's kinda like a promise that can resolve with many values. That doesn't make sense\n // with real promises, so each advance methods returns a new promise for the cursor object, or\n // undefined if the end of the cursor has been reached.\n if (getCursorAdvanceMethods().includes(func)) {\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n func.apply(unwrap(this), args);\n return wrap(cursorRequestMap.get(this));\n };\n }\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n return wrap(func.apply(unwrap(this), args));\n };\n}\nfunction transformCachableValue(value) {\n if (typeof value === 'function')\n return wrapFunction(value);\n // This doesn't return, it just creates a 'done' promise for the transaction,\n // which is later returned for transaction.done (see idbObjectHandler).\n if (value instanceof IDBTransaction)\n cacheDonePromiseForTransaction(value);\n if (instanceOfAny(value, getIdbProxyableTypes()))\n return new Proxy(value, idbProxyTraps);\n // Return the same value back if we're not going to transform it.\n return value;\n}\nfunction wrap(value) {\n // We sometimes generate multiple promises from a single IDBRequest (eg when cursoring), because\n // IDB is weird and a single IDBRequest can yield many responses, so these can't be cached.\n if (value instanceof IDBRequest)\n return promisifyRequest(value);\n // If we've already transformed this value before, reuse the transformed value.\n // This is faster, but it also provides object equality.\n if (transformCache.has(value))\n return transformCache.get(value);\n const newValue = transformCachableValue(value);\n // Not all types are transformed.\n // These may be primitive types, so they can't be WeakMap keys.\n if (newValue !== value) {\n transformCache.set(value, newValue);\n reverseTransformCache.set(newValue, value);\n }\n return newValue;\n}\nconst unwrap = (value) => reverseTransformCache.get(value);\n\nexport { reverseTransformCache as a, instanceOfAny as i, replaceTraps as r, unwrap as u, wrap as w };\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".dev.js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"tinode-webapp:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t};\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/umd/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"index\": 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunktinode_webapp\"] = globalThis[\"webpackChunktinode_webapp\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// Put all packages together.\n// Used to generate umd/index.prod.js\n\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\n\nimport { IntlProvider } from 'react-intl';\n\nimport TinodeWeb from './views/tinode-web.jsx';\nimport HashNavigation from './lib/navigation.js';\n\n// Insert google analytics script and tag if configured.\nif (FIREBASE_INIT && FIREBASE_INIT.measurementId) {\n const head = document.getElementsByTagName('head')[0];\n let script = document.createElement('script');\n script.src = 'https://www.googletagmanager.com/gtag/js?id=' + FIREBASE_INIT.measurementId;\n script.async = true;\n head.prepend(script);\n window.dataLayer = window.dataLayer || [];\n function gtag(){dataLayer.push(arguments);}\n gtag('js', new Date());\n gtag('config', FIREBASE_INIT.measurementId);\n}\n\n// Allow loading translation strings for just one language.\nconst messageLoader = {\n 'de': _ => import('./i18n.min/de.json'),\n 'en': _ => import('./i18n.min/en.json'),\n 'es': _ => import('./i18n.min/es.json'),\n 'fr': _ => import('./i18n.min/fr.json'),\n 'ko': _ => import('./i18n.min/ko.json'),\n 'ro': _ => import('./i18n.min/ro.json'),\n 'ru': _ => import('./i18n.min/ru.json'),\n 'zh': _ => import('./i18n.min/zh.json'),\n 'zh-TW': _ => import('./i18n.min/zh-TW.json')\n};\n\n// Detect human language to use in the UI:\n// Check parameters from URL hash #?hl=ru, then browser, then use 'en' as a fallback.\nconst { params } = HashNavigation.parseUrlHash(window.location.hash);\nconst language = (params && params.hl) ||\n (navigator.languages && navigator.languages[0]) ||\n navigator.language ||\n navigator.userLanguage ||\n 'en';\n\n// Make sure names like 'en_GB' and 'en-GB' consistently use '-'.\nconst normalized = language.replace('_', '-');\n// Get the base language 'en' from a more specific 'en-US' as a partial fallback.\nconst baseLanguage = normalized.split('-')[0].toLowerCase();\n\n// Try the full locale first, then the locale without the region code, fallback to 'en'.\nconst htmlLang = messageLoader[normalized] ? language : messageLoader[baseLanguage] ? baseLanguage : 'en';\n\n// Set lang attribute of the HTML element: \ndocument.getElementsByTagName('html')[0].setAttribute('lang', htmlLang);\n\n// Render the app.\nconst root = createRoot(document.getElementById('mountPoint'));\nmessageLoader[htmlLang]().then(messages =>\n root.render(\n \n \n \n));\n"],"names":["PACKAGE_VERSION","APP_NAME","API_KEY","KNOWN_HOSTS","hosted","local","DEFAULT_HOST","LOGGING_ENABLED","KEYPRESS_DELAY","READ_DELAY","MIN_TAG_LENGTH","MAX_TAG_LENGTH","MAX_TAG_COUNT","DEFAULT_P2P_ACCESS_MODE","NEW_GRP_ACCESS_MODE","CHANNEL_ACCESS_MODE","NO_ACCESS_MODE","MEDIA_BREAKPOINT","REM_SIZE","AVATAR_SIZE","MAX_AVATAR_BYTES","BROKEN_IMAGE_SIZE","NO_DIMENSIONS_VIDEO","MESSAGES_PAGE","MAX_INBAND_ATTACHMENT_SIZE","MAX_EXTERN_ATTACHMENT_SIZE","MAX_IMAGE_DIM","IMAGE_PREVIEW_DIM","VIDEO_PREVIEW_DIM","IMAGE_THUMBNAIL_DIM","VIDEO_THUMBNAIL_WIDTH","MAX_ONLINE_IN_TOPIC","MAX_TITLE_LENGTH","MAX_TOPIC_DESCRIPTION_LENGTH","MAX_PEER_TITLE_LENGTH","MESSAGE_PREVIEW_LENGTH","QUOTED_REPLY_LENGTH","FORWARDED_PREVIEW_LENGTH","EDIT_PREVIEW_LENGTH","MIN_DURATION","MAX_DURATION","LINK_CONTACT_US","LINK_PRIVACY_POLICY","LINK_TERMS_OF_SERVICE","CALL_STATE_NONE","CALL_STATE_OUTGOING_INITATED","CALL_STATE_INCOMING_RECEIVED","CALL_STATE_IN_PROGRESS","CALL_HEAD_STARTED","SUPPORTED_IMAGE_FORMATS","MIME_EXTENSIONS","makeImageUrl","photo","ref","data","type","mime","startsWith","fitImageSize","width","height","maxWidth","maxHeight","forceSquare","Math","min","scale","size","dstWidth","dstHeight","srcWidth","srcHeight","xoffset","yoffset","fileNameForMime","fname","idx","indexOf","ext","at","lastIndexOf","substring","imageScaled","fileOrBlob","maxSize","Promise","resolve","reject","img","Image","crossOrigin","onerror","err","Error","onload","URL","revokeObjectURL","src","dim","canvas","document","createElement","ctx","getContext","imageSmoothingEnabled","drawImage","includes","blob","toBlob","length","clearRect","name","createObjectURL","imageCrop","objURL","left","top","_","fileToBase64","file","reader","FileReader","error","bits","result","split","readAsDataURL","blobToBase64","filePasted","event","onImageSuccess","onAttachmentSuccess","onError","items","clipboardData","originalEvent","i","item","kind","getAsFile","console","getMimeType","header","exec","base64EncodedLen","n","floor","base64DecodedLen","base64ReEncode","str","replace","btoa","atob","base64ToBlob","bin","buf","ArrayBuffer","arr","Uint8Array","charCodeAt","Blob","intArrayToBase64","Array","isArray","forEach","b","String","fromCharCode","window","base64ToIntArray","b64","c","push","React","defineMessages","Drafty","AudioPlayer","CallMessage","CallStatus","InlineVideo","LazyImage","UploadingImage","idToColorClass","secondsToTime","shortenFileName","cancelablePromise","sanitizeUrlForMime","messages","drafty_form","id","defaultMessage","drafty_attachment","drafty_image","drafty_video","drafty_unknown","fullFormatter","style","values","key","stack","quoteFormatter","call","el","tagName","attr","attrValue","authorizeURL","duration","undefined","preview","loading","className","handleImageData","onClick","onFormButtonClick","inner","Children","map","child","join","val","onQuoteClick","callState","state","incoming","handleVideoData","Fragment","body","trim","formatMessage","concat","viewportWidth","minWidth","minHeight","isProcessing","alt","max","onImagePreview","onVideoPreview","previewFormatter","inlineImageAttr","title","inlineVideoAttr","quoteImageOrVideo","isVideo","promise","premime","preref","fetch","then","evt","ok","status","statusText","scaled","catch","replyFormatter","isImage","loadedPromise","warn","message","whenDone","detectServerAddress","host","location","protocol","hostname","port","isSecureConnection","isLocalHost","LocalStorageUtil","setObject","value","localStorage","setItem","JSON","stringify","getObject","getItem","parse","updateObject","oldVal","Object","assign","removeItem","HashNavigation","parseUrlHash","hash","parts","params","path","arg","eq","slice","decodeURIComponent","navigateTo","url","composeUrlHash","args","hasOwnProperty","encodeURIComponent","addUrlParam","parsed","removeUrlParam","setUrlSidePanel","sidepanel","setUrlInfoPanel","infopanel","info","setUrlTopic","topic","shortDateFormat","locale","navigator","userLanguage","language","now","Date","getFullYear","getMonth","getDate","toLocaleTimeString","hour12","hour","minute","toLocaleDateString","month","day","year","relativeDateFormat","thenDays","getTime","getTimezoneOffset","nowDays","diff","abs","Intl","RelativeTimeFormat","numeric","format","DateTimeFormat","seconds","fixedMin","hours","sec","bytesToHumanSize","bytes","sizes","bucket","log2","count","pow","round","toFixed","filename","maxLength","stringToColorHash","letterTileColorId","userId","light","fg","flagEmoji","countryCode","codePoints","toUpperCase","char","fromCodePoint","Tinode","updateFavicon","oldIcon","getElementById","head","getElementsByTagName","newIcon","rel","href","removeChild","appendChild","theCard","fn","imageUrl","imageMimeType","note","card","DEL_CHAR","mimeType","matches","arrayEqual","a","sort","l","asPhone","test","asEmail","isUrlRelative","sanitizeUrl","allowedSchemes","schemes","re","RegExp","mimeMajor","sanitizedUrl","deliveryMarker","received","MESSAGE_STATUS_SENDING","MESSAGE_STATUS_FAILED","color","MESSAGE_STATUS_SENT","MESSAGE_STATUS_RECEIVED","MESSAGE_STATUS_READ","hasCanceled","wrappedPromise","isCanceled","cancel","clipStr","FormattedMessage","CheckBox","EditAccountView","PureComponent","constructor","props","handleCheckboxClick","bind","what","checked","onToggleMessageSounds","onTogglePushNotifications","onToggleIncognitoMode","render","messageSounds","desktopAlertsEnabled","desktopAlerts","incognitoMode","injectIntl","InPlaceEdit","PermissionsEditor","delete_account","delete_account_warning","AccSecurityView","Component","me","tinode","getMeTopic","blockedCount","contacts","acs","isJoiner","defacs","getDefaultAccess","auth","anon","showPermissionEditorFor","handlePasswordUpdate","handleLaunchPermissionsEditor","handleHidePermissionsEditor","handlePermissionsChanged","handleDeleteAccount","pwd","setState","password","onUpdatePassword","which","editedPermissions","perm","onUpdateAccountDesc","newState","e","preventDefault","intl","onShowAlert","onDeleteAccount","password_unchanged","onLogout","onShowBlocked","AccSupportView","getLibrary","serverVersion","serverAddress","ContactList","archived_contacts_title","ContactsView","handleAction","deriveStateFromProps","unreadThreads","archivedCount","chatList","blocked","private","arch","archive","unread","touched","action","contactList","componentDidUpdate","prevProps","prevState","action_ignored","onShowArchive","no_contacts","connected","topicSelected","myUserId","onTopicSelected","showContextMenu","AccessMode","AvatarUpload","BadgeList","ErrorPanel","GroupManager","MenuCancel","TopicCommonView","TopicSecurity","general","security","members","crop","perm_want","perm_given","perm_auth","perm_anon","perm_user","edit_permissions","InfoView","owner","admin","sharer","deleter","muted","address","groupTopic","channel","fullName","description","avatar","selectedContact","access","modeGiven","modeWant","modeGiven2","modeWant2","trustedBadges","previousMetaDesc","previousSubsUpdated","resetSubs","resetDesc","resetTags","onMetaDesc","onSubsUpdated","handleImageChanged","handleMuted","handleUnarchive","handleShowAddMembers","handleMemberUpdateRequest","handleMemberSelected","handleContextMenu","handleBackNavigate","getTopic","componentWillUnmount","getType","user2","subscriber","getGiven","getWant","subscribers","sub","getAccessMode","badges","trusted","entries","isOwner","isAdmin","isSharer","isDeleter","isMuted","public","comment","archived","isArchived","isGroupType","isChannelType","chan","getMode","getMeta","startMetaQuery","withTags","build","desc","subs","onTopicDescUpdate","ignored","onChangePermissions","ignored2","onTopicUnArchive","onTopicDescUpdateRequest","userPermissionsEdited","uid","toEdit","toCompare","toSkip","titleEdit","titleCompare","userTitle","userAvatar","encode","user","userPermissionsTitle","userPermissionsAvatar","immutablePermissions","editedPermissionsTitle","immutablePermissionsTitle","editedPermissionsSkipped","onNavigate","onInitFind","added","removed","onMemberUpdateRequest","panel","topicName","isMe","menuItems","handler","x","y","view","shift","panelTitle","displayMobile","errorLevel","errorText","searchableContacts","mode","reqCredMethod","onCredAdd","onTopicTagsUpdateRequest","onCredConfirm","onCredDelete","onDeleteMessages","onLeaveTopic","onBlockTopic","onReportTopic","no_members","VisiblePassword","LoginView","login","hostName","saveToken","persist","handleLoginChange","handlePasswordChange","handleToggleSaveToken","handleSubmit","target","onPersistenceChange","onLogin","submitClasses","disabled","login_prompt","password_prompt","LogoView","version","CallPanel","ChatMessage","ContactBadges","DocPreview","GroupSubs","ImagePreview","Invitation","LetterTile","LoadSpinner","MetaMessage","SendMessage","VideoPreview","NOTIFICATION_EXEC_INTERVAL","SHOW_GO_TO_LAST_DIST","online_now","last_seen","not_found","file_attachment_too_large","invalid_content","editing_message","drag_file","isUnconfirmed","ex","getExcessive","isPeerRestricted","ms","getMissing","shouldPresentCallPanel","MessagesView","getDerivedStateFromProps","leave","sendMessage","retrySend","sendImageAttachment","sendVideoAttachment","sendFileAttachment","sendAudioAttachment","sendKeyPress","subscribe","handleScrollReference","mountDnDEvents","handleScrollEvent","handleDescChange","handleSubsUpdated","handleMessageUpdate","handleAllMessagesReceived","handleInfoReceipt","handleExpandMedia","handleClosePreview","handleFormResponse","handleContextClick","handleShowMessageContextMenu","handleNewChatAcceptance","handleEnablePeer","handleAttachFile","handleAttachImageOrVideo","handleCancelUpload","postReadNotification","clearNotificationQueue","goToLatestMessage","handleFileDrop","handlePickReply","handleEditMessage","handleCancelReply","handleQuoteClick","handleCallHangup","isDragEnabled","handleDragIn","handleDragOut","handleDrag","handleDrop","chatMessageRefs","getOrCreateMessageRef","dragCounter","dndRef","readNotificationQueue","readNotificationTimer","keyPressTimer","seqId","createRef","componentDidMount","messagesScroller","addEventListener","removeEventListener","messageCount","scrollPosition","scrollTop","scrollHeight","offsetHeight","isNewGroupTopicName","rtcPanel","callSeq","onData","onAllMessagesReceived","onInfo","onPres","applicationVisible","ready","_new","isP2PType","withDesc","nextProps","nextState","latestClearId","onlineSubs","isVerified","isStaff","isDangerous","deleted","docPreview","imagePreview","imagePostview","videoPreview","videoPostview","typingIndicator","fetchingMessages","peerMessagingDisabled","reply","contentToEdit","showGoToLastButton","dragging","_deleted","forwardMessage","content","seq","online","peer","p2pPeerDesc","maxClearId","callTopic","isWriter","isReader","readingBlocked","unconformed","unconfirmed","isSubscribed","newTopic","newTopicParams","_topicName","getQuery","withLaterDesc","withLaterSub","withLaterData","withLaterDel","setQuery","ctrl","code","onNewTopicCreated","calls","queuedMessages","pub","_sending","webrtc","delMessagesList","blankState","oldTopicName","isTopicCached","oldTopic","finally","node","pos","msgHasMoreMessages","getMessagesPage","dnd","setInterval","clearInterval","sendAt","noteRead","setMilliseconds","getMilliseconds","msg","clearTimeout","isNewMessage","msgStatus","from","setTimeout","forceUpdate","video","text","attachJSON","searchParams","resp","set","search","open","stopPropagation","pageY","pageX","messageSpecificMenuItems","userFrom","userName","onNewChat","audio","noteRecording","noteKeyPress","uploadCompletionPromise","uploader","editing","append","sanitizeEntities","maxInbandAttachmentSize","getServerParam","getLargeFileHelper","cannot_initiate_upload","upload","attachFile","urlPromise","maxExternAttachmentSize","limit","onVideoCallClosed","onCallHangup","caption","insertImage","_tempPreview","appendLineBreak","videoBlob","previewBlob","uploads","all","b64s","v64","i64","insertVideo","b64conv","files","appendAudio","found","findMessage","_cancelled","senderId","senderName","init","isValid","replyContent","wrapInto","quote","onCancelForwardMessage","editable","toMarkdown","replyToSeq","current","scrollIntoView","block","behavior","classList","add","remove","dataTransfer","clearData","component","hideSelf","component2","callAudioOnly","onCallInvite","onCallSendOffer","onCallIceCandidate","onCallSendAnswer","isChannel","icon_badges","verified","icon","staff","danger","messageNodes","previousFrom","prevDate","chatBoxClass","prev","next","nextFrom","sequence","thisFrom","isReply","deliveryStatus","userDesc","parseInt","isNaN","hi","thisDate","ts","toDateString","_uploader","lastSeen","cont","getContact","isP2PTopicName","seen","when","titleClass","messagesComponent","onHideMessagesView","NewTopicById","NewTopicGroup","SearchContacts","search_for_contacts","search_no_results","search_placeholder","NewTopicView","tabSelected","searchQuery","handleTabClick","handleSearchContacts","handleSearchResultSelected","handleNewGroupSubmit","handleGroupByID","currentTarget","dataset","query","onSearchContacts","isNullValue","onCreateTopic","dataUrl","priv","tags","no_contacts_placeholder","searchResults","HostSelector","SettingsView","transport","secureConnection","handleTransportSelected","handleServerAddressChange","handleToggleSecure","onUpdate","names","def","ws","lp","transportOptions","Suspense","SideNavbar","AccountSettingsView","lazy","CreateAccountView","AccNotificationsView","PasswordResetView","ValidationView","register","settings","edit","notif","support","newtpk","cred","reset","SidepanelView","handleNewTopic","onCancel","onSignUp","onSettings","errorAction","errorActionText","loadSpinnerVisible","loginDisabled","onLoginRequest","onShowCountrySelector","onCreateAccount","onGlobalSettings","onUpdateAccountTags","credCode","credMethod","credToken","onValidateCredentials","onPasswordResetRequest","onResetPassword","initializeApp","firebaseInitApp","getMessaging","firebaseGetMessaging","getToken","firebaseGetToken","deleteToken","firebaseDelToken","onMessage","firebaseOnMessage","Alert","ContextMenu","ForwardDialog","CallIncoming","PhoneCountrySelector","POP_SOUND","Audio","reconnect_countdown","reconnect_now","push_init_failed","invalid_security_token","no_connection","code_doesnot_match","menu_item_info","menu_item_audio_call","menu_item_video_call","cred_confirmed_successfully","TinodeWeb","selfRef","getBlankState","handleResize","handleHashRoute","handleOnline","checkForAppUpdate","handleVisibilityEvent","handleError","handleLoginRequest","handlePersistenceChange","handleConnected","handleAutoreconnectIteration","doLogin","handleLoginSuccessful","handleDisconnect","tnMeMetaDesc","tnMeContactUpdate","tnMeSubsUpdated","resetContactList","tnInitFind","tnFndSubsUpdated","handleTopicSelected","handleHideMessagesView","handleSendMessage","handleNewChatInvitation","handleNewAccount","handleNewAccountRequest","handleUpdatePasswordRequest","handleUpdateAccountTagsRequest","handleToggleIncognitoMode","handleSettings","handleGlobalSettings","handleShowArchive","handleShowBlocked","handleToggleMessageSounds","handleCredAdd","handleCredDelete","handleCredConfirm","initFCMessaging","toggleFCMToken","handlePushMessage","handleSidepanelCancel","handleStartTopicRequest","handleNewTopicCreated","handleTopicUpdateRequest","handleChangePermissions","handleTagsUpdateRequest","handleLogout","handleDeleteTopicRequest","handleDeleteMessagesRequest","handleLeaveUnsubRequest","handleBlockTopicRequest","handleReportTopic","handleShowContextMenu","defaultTopicContextMenu","handleHideContextMenu","handleShowAlert","handleShowInfoView","handleValidateCredentialsRequest","handlePasswordResetRequest","handleResetPassword","handleContextMenuAction","handleShowCountrySelector","handleShowForwardDialog","handleHideForwardDialog","handleStartVideoCall","handleStartAudioCall","handleInfoMessage","handleDataMessage","handleCallClose","handleCallInvite","handleCallRinging","handleCallSendOffer","handleCallIceCandidate","handleCallSendAnswer","handleCallAccept","sendMessageToTopic","callTimeoutTimer","autoLogin","messageSoundsOff","FIREBASE_INIT","firebaseToken","hidden","sidePanelSelected","sidePanelTitle","sidePanelAvatar","myTrustedBadges","liveConnection","onLine","topicSelectedOnline","topicSelectedAcs","innerWidth","infoPanel","mobilePanel","callShouldStart","contextMenuVisible","contextMenuBounds","contextMenuClickAt","contextMenuParams","contextMenuItems","forwardDialogVisible","alertVisible","alertParams","requestedTopic","BroadcastChannel","serviceWorkerChannel","documentElement","clientWidth","viewportHeight","clientHeight","tnSetup","onConnect","onDisconnect","onAutoreconnectIteration","onInfoMessage","onDataMessage","parsedNav","token","expires","setAuthToken","connect","readTimer","readTimerCallback","cred_done","persistentCache","onSetupCompleted","appName","apiKey","secure","setHumanLanguage","enableLogging","payload","oobNotification","fcm","serviceWorker","getRegistration","reg","active","installing","postMessage","requestFCMToken","setDeviceToken","sw","serviceWorkerRegistration","vapidKey","messagingVapidKey","Notification","requestPermission","permission","mobile","onupdatefound","installingWorker","onstatechange","controller","newTopicTabSelected","tab","topicType","getTopicAccessMode","method","stateForError","reconnectCountdown","reconnect","level","actionText","isConnected","meth","initStorage","clearStorage","getServerInfo","ver","reqCred","prom","fmtTime","tmpToken","isAuthenticated","getAuthToken","credential","connectionPromise","loginPromise","loginBasic","loginToken","navigateToCredentialsView","goToTopic","onContactUpdate","getCurrentUserID","withCred","disconnect","urlHash","isPresencer","play","unused","prepareSearchableContacts","foundContacts","merged","updated","past","fnd","getFndTopic","withSub","s","setMeta","isTopicOnline","createMessage","completion","subscribePromise","publishMessage","publishDraft","response","delTopic","am","updateWant","login_","password_","public_","cred_","tags_","attachments","createAccountBasic","on","enabled","delCredential","scheme","basicNavigator","infoNavigator","newGroupTopicName","oldName","newName","updateAccountBasic","getCurrentLogin","updateGiven","cleared","Promose","delCurrentUser","delMessagesAll","updateMode","report","getBoundingClientRect","forwardedContent","mention","msgPreview","forwarded","self_blocked","subscribed","keepForwardedMessage","onConfirm","confirmText","onReject","rejectText","confirm","invite","delSubscription","requestResetAuthSecret","newPassword","tempAuth","secret","dial","selectedCallback","d","audioOnly","aonly","videoCall","sdp","candidate","isMeTopicName","latestMsgVersion","handleManageGroupMembers","TopicDescEdit","previousTagsUpdated","onTagsUpdated","handleTagsUpdated","onUpdateTagsRequest","onUpdateTopicDesc","phone","email","codeReceived","handleCodeChange","handleKeyPress","handleCancel","onSubmit","methods","numbers_only","FileProgress","Attachment","downloader","progress","downloadFile","mimetype","download","loaded","uploading","onCancelUpload","substr","helperFunc","downloadUrl","downloadWidget","CANVAS_UPSCALING","LINE_WIDTH","SPACING","BAR_COLOR","BAR_COLOR_DARK","THUMB_COLOR","MIN_PREVIEW_LENGTH","icon_title_play","canPlay","playing","currentTime","longMin","initAudio","initCanvas","resampleBars","visualize","handlePlay","handleSeek","audioPlayer","viewBuffer","canvasRef","oncanplay","ontimeupdate","onended","pause","offsetWidth","canvasContext","lineCap","effectiveWidth","lineWidth","drawFrame","requestAnimationFrame","thumbAt","beginPath","strokeStyle","stroke","moveTo","lineTo","arc","PI","fillStyle","fill","original","dstCount","apply","factor","amps","maxAmp","lo","amp","j","rect","offset","clientX","playClass","short","Cropper","AvatarCrop","handleChange","source","handleFileReceived","image","onImageUpdated","randId","random","readOnly","icon_mapping","badge_verified","badge_staff","badge_danger","ButtonBack","onBack","RING_SOUND","handleRejectCall","handleAcceptCall","ringTimer","onRinging","onAcceptCall","onClose","isCallDropped","successClass","callIcon","loop","CALL_ENDED_SOUND","DIALING_SOUND","VIDEO_MUTED_EVENT","VIDEO_UNMUTED_EVENT","already_in_call","localStream","remoteStream","pc","dataChannel","previousOnInfo","waitingForPeer","callInitialSetupComplete","videoToggleInProgress","remoteVideoLive","localStreamConstraints","isOutgoingCall","localRef","remoteRef","remoteIceCandidatesCache","start","stop","createPeerConnection","canSendOffer","drainRemoteIceCandidatesCache","handleNegotiationNeededEvent","handleICECandidateEvent","handleNewICECandidateMsg","handleICEConnectionStateChangeEvent","handleSignalingStateChangeEvent","handleICEGatheringStateChangeEvent","handleIceCandidateErrorEvent","handleTrackEvent","handleVideoOfferMsg","handleVideoAnswerMsg","reportError","handleGetUserMediaError","stopTracks","disconnectMedia","handleCloseClick","handleToggleCameraClick","handleToggleMicClick","handleRemoteHangup","handleVideoCallAccepted","muteVideo","unmuteVideo","emptyVideoTrack","handleDataChannelEvent","handleDataChannelError","handleDataChannelMessage","handleDataChannelOpen","handleDataChannelClose","stream","getTracks","track","addTrack","removeTrack","fillRect","captureStream","getVideoTracks","onInvite","mediaDevices","getUserMedia","srcObject","ontrack","onremovetrack","onremovestream","onicecandidate","oniceconnectionstatechange","onsignalingstatechange","onicegatheringstatechange","onnegotiationneeded","onicecandidateerror","ondatachannel","close","tracks","send","onmessage","onopen","onclose","iceServers","RTCPeerConnection","createDataChannel","ordered","RTCSessionDescription","setRemoteDescription","createOffer","offer","setLocalDescription","onSendOffer","localDescription","toJSON","onIceCandidate","RTCIceCandidate","addIceCandidate","iceConnectionState","signalingState","streams","dummyVideo","createAnswer","answer","onSendAnswer","onHangup","t","sender","getSenders","find","replaceTrack","readyState","getAudioTracks","audioTracks","videoTracks","audioIcon","videoIcon","peerTitle","pulseAnimation","remoteActive","rstream","icon2","ReceivedMarker","BaseChatMessage","onProgress","handleProgress","handleExpandImage","handlePlayVideo","handleFormButtonClick","formatterContext","onExpandMedia","act","onFormResponse","userIsWriter","immutable","entities","_0","_1","tp","styles","edited","pickReply","editMessage","ratio","sideClass","bubbleClass","fullDisplay","isGroup","getContentType","att","getDownloadUrl","getEntitySize","tree","innerRef","timestamp","IntlChatMessage","forwardRef","onChange","iconName","attrs","Chip","ChipInput","input","focused","handleTextInput","removeChipAt","handleChipCancel","handleFocusGained","handleFocusLost","handleKeyDown","placeholder","chips","prompt","sortedChips","sortChips","staticMembers","chipIndex","indexChips","index","keep","required","normal","filterFunc","onChipRemoved","onFocusLost","onEnter","avatarDisabled","invalid","autoFocus","tabIndex","noAvatar","ContactAction","handleClick","onAction","Contact","badge_you","badge_owner","showCheckmark","contactNodes","contactsCount","showMode","filter","filterOn","toLowerCase","isChannelTopicName","isGroupTopicName","selected","previewIsResponse","latestMessage","_status","showUnread","showOnline","noScroll","__html","emptyListMessage","UnreadBadge","onSelected","marker","small","clear_messages","clear_for_all","delete","delete_for_all","send_retry","mute","unmute","forward","topic_delete","topic_delete_warning","delete_messages_warning","unblock","topic_block_warning","member_delete","unarchive","clear_messages_warning","handlePageClick","handleEscapeKey","MenuItems","errorHandler","deleteMessages","retryMessage","replyToMessage","topicPermissionSetter","onTopicRemoved","contains","hide","keyCode","hard","cancelSend","delMessagesEdits","flushMessage","menu","hSize","vSize","bounds","right","clickAt","bottom","position","DEFAULT_MAX_ZOOM","panX","panY","originX","originY","zoom","minZoom","maxZoom","overlay","cutout","boundingBox","imageWidth","imageHeight","mouseX","mouseY","prevDistance","cutoutRect","bBoxRect","initScaling","onZoom","handleZoom","mouseDown","mouseUp","mouseMove","mouseTouch","positionAll","translate","passive","checkBound","currPan","delta","nextDiff","imgRect","imgLeft","imgRight","coLeft","coRight","imgTop","imgBottom","coTop","coBottom","touches","dX","dY","touch0","touch1","distance","sqrt","t3d","orig","transform","transformOrigin","iconFromMime","mimeToIcon","default","handleSendDoc","onSendMessage","onCancelReply","show","onClearError","icons","whiteSpace","handleClose","handleContactSelected","not_found_placeholder","contacts_not_found_short","indexMembers","keepInitialMembers","requiredMember","contactFilter","noContactsMessage","selectedContacts","handleMemberRemoved","handleContactFilter","m","present","keepInitial","stat","sel","splice","doContactFiltering","instance","keys","k","usersOnline","totalCount","countToShow","some","overflow","changed","handleHostNameChange","handleEditingFinished","onServerAddressChange","hostOptions","handleSendImage","assignWidth","maxlength","initialValue","handeTextChange","handleStartEditing","handlePasswordFinished","newValue","focus","checkValidity","onFinished","spanText","spanClass","multiline","element","rows","onKeyDown","onBlur","autoComplete","videoRef","handleButtonAction","isvideo","padding","iconColor","letter","charAt","large","clear","centered","MenuContacts","onNewTopic","MenuStart","date","invalid_id","groupId","prefix","TagManager","newAvatar","newAvatarMime","handleFieldEdit","handleAvatarCropped","handleAvatarCropCancel","uploadAvatar","handleTagsChanged","handleChannelToggle","readyToUpload","joiner","writer","preser","approver","before","skip","compare","modeTitle","compareTitle","message_sending","message_sending_failed","message_edited_marker","timeStyle","handleSearchChange","handleSearch","handleClear","AudioRecorder","messaging_disabled","type_new_message","add_image_caption","icon_title_record_voice","icon_title_attach_file","icon_title_add_image","icon_title_send","audioRec","audioAvailable","keypressTimestamp","handlePasteEvent","handleAttachImage","handleAttachAudio","handleSend","handleMessageTyping","handleDropAttach","formatReply","messageEditArea","getComputedStyle","getPropertyValue","initMessage","setSelectionRange","onAttachImage","onAttachFile","onAttachAudio","acceptBlank","noInput","shiftKey","onKeyPress","messagePrompt","sendIcon","audioEnabled","attachImage","click","display","tagInput","activated","handleTagInput","handleAddTag","handleRemoveTag","last","tag","maxTagCount","onTagsChanged","minTagLength","maxTagLength","add_tags_prompt","previousOnTags","tnNewTags","handleFullNameUpdate","handleImageUpdated","handlePrivateUpdate","handleDescriptionUpdate","du","onUpdateTags","full_name_placeholder","group_name_placeholder","private_placeholder","title_tag_manager","delete_messages","leave_chat","leave_chat_warning","block_contact","block_contact_warning","report_chat","report_chat_warning","other_user","handleDeleteTopic","handleDeleteMessages","handleLeave","handleBlock","handleReport","onDeleteTopic","onLaunchPermissionsEditor","unrecognized_video_format","handleSendVideo","videoWidth","videoHeight","controlist","autoPlay","inputRef","visible","handleVisibility","activeElement","createRoot","IntlProvider","measurementId","script","async","prepend","dataLayer","gtag","arguments","messageLoader","hl","languages","normalized","baseLanguage","htmlLang","setAttribute","root"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"index.dev.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8BAA8B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAM;AACrB,eAAe,qBAAM;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,EAAE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,YAAY;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA,wCAAwC,MAAM;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,QAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA,2CAA2C,QAAQ,wEAAwE,KAAK;;AAEhI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,qBAAM;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,MAAM;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,iBAAiB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,aAAa,GAAG,KAAK;AACjD;AACA;AACA;AACA,+BAA+B,iBAAiB,IAAI,SAAS,GAAG,SAAS;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,IAAI;AACvD,KAAK;AACL;AACA,mBAAmB,MAAM,IAAI;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,GAAG;AACf;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,aAAa,WAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,yBAAyB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B,6BAA6B,QAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ,UAAU,SAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,EAAE;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEm8B;AACn8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtjE+C;AAGxC,MAAMC,QAAQ,GAAG,YAAY,IAAID,wDAAe,IAAI,MAAM,CAAC;AAG3D,MAAME,OAAO,GAAG,kCAAkC;AAGlD,MAAMC,WAAW,GAAG;EAACC,MAAM,EAAE,eAAe;EAAEC,KAAK,EAAE;AAAgB,CAAC;AAGtE,MAAMC,YAAY,GAAGH,WAAW,CAACC,MAAM;AAGvC,MAAMG,eAAe,GAAG,IAAI;AAG5B,MAAMC,cAAc,GAAG,KAAK;AAE5B,MAAMC,UAAU,GAAG,KAAK;AAGxB,MAAMC,cAAc,GAAG,CAAC;AAExB,MAAMC,cAAc,GAAG,EAAE;AAEzB,MAAMC,aAAa,GAAG,EAAE;AAGxB,MAAMC,uBAAuB,GAAG,OAAO;AAEvC,MAAMC,mBAAmB,GAAG,SAAS;AAErC,MAAMC,mBAAmB,GAAG,IAAI;AAGhC,MAAMC,cAAc,GAAG,GAAG;AAI1B,MAAMC,gBAAgB,GAAG,GAAG;AAE5B,MAAMC,QAAQ,GAAG,EAAE;AAInB,MAAMC,WAAW,GAAG,GAAG;AAGvB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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,gBAAgB,sCAAsC,SAAS;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,cAAc;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,SAAS;AAClE;AACA,uEAAuE,SAAS;AAChF,0EAA0E,SAAS;AACnF,sEAAsE,SAAS;AAC/E;AACA,6EAA6E,SAAS;AACtF;AACA;AACA,iGAAiG,sBAAsB;AACvH,oGAAoG,sBAAsB;AAC1H,oGAAoG,sBAAsB;AAC1H,2GAA2G,sBAAsB;AACjI;AACA,0BAA0B,wDAAY;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,uCAAuC;AACvC;AACA;AACA;AACA;AACA,wCAAwC,0DAAS;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,qBAAqB;AACxG;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,sBAAsB;AACtB;AACA,mCAAmC,iEAAiE;AACpG;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,0BAA0B,mEAAmB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yDAAS;AACrB,YAAY,yDAAS;AACrB;AACA;AACA;AACA,uFAAuF,eAAe;AACtG;AACA;AACA,0BAA0B,mEAAkB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iCAAiC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,eAAe;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA,2CAA2C,QAAQ,kBAAkB,QAAQ;AAC7E;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA,2BAA2B,0DAAS,IAAI,QAAQ,oBAAoB,kBAAkB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,mEAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,6DAAa;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2CAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,yDAAa;AACtC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,yDAAa;AACtC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS,GAAG,kBAAkB;AAC5C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,aAAa;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kCAAkC;AAClD,6BAA6B,6EAA6B,kBAAkB,0CAA0C;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oEAAoB;AACjC;AACA;AACA;AACA,mBAAmB,yEAAyB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,6EAA6B;AACxC;AACA,qBAAqB,yCAAyC;AAC9D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0DAAS;AACpC,2BAA2B,0DAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE2R;AAC3R;;;;;;;;;;;;;;;;;;ACp6B0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,oDAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,WAAW;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB,eAAe,UAAU;AAC1F;AACA;AACA,yCAAyC,WAAW;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,wCAAwC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,gBAAgB,eAAe;AAC/B;AACA;AACA,2BAA2B,UAAU,GAAG,qBAAqB;AAC7D;AACA;AACA,qCAAqC,WAAW;AAChD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kCAAkC;AAC/D;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4GAA4G;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,gBAAgB,mCAAmC,UAAU;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEmD;AACnD;;;;;;;;;;;;;;;;;;;;;;;ACxZ0F;AAC1C;AACa;AAChC;;AAE7B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,QAAQ;AACrC;AACA;AACA,gDAAgD;AAChD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iHAAiH,WAAW;AAC5H;AACA;AACA,yDAAyD,cAAc,4BAA4B,cAAc,cAAc,GAAG,eAAe;AACjJ;AACA;AACA;AACA,0BAA0B,wDAAY;AACtC;AACA;AACA,6BAA6B,yDAAa;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,WAAW;AAC/C,cAAc,sBAAsB,YAAY,UAAU;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,sBAAsB,QAAQ;AAC9B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,yCAAyC,cAAc;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,uBAAuB,EAAE,aAAa;AACpD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,qCAAqC,IAAI,KAAK;AACzF;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,GAAG;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,kBAAkB,GAAG,gBAAgB;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,UAAU;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2CAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yCAAyC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,qCAAqC;AAC/E;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,KAAK;AACxD,cAAc,oCAAoC,GAAG,IAAI;AACzD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,eAAe,aAAa,oDAAoD;AACjI;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,uEAAuE,wBAAwB,WAAW;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,wBAAwB,aAAa,oDAAoD;AACpK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,eAAe,gCAAgC;AACxF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yCAAyC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,KAAK;AAC7C,cAAc,oCAAoC,GAAG,IAAI;AACzD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD,IAAI,iCAAiC;AACrC,qBAAqB,iCAAiC;AACtD;AACA;AACA;AACA,gCAAgC,qDAAM;AACtC,8BAA8B,2DAAY;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,2DAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,2DAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iEAAkB,KAAK,0DAAS;AACpC,IAAI,iEAAkB,KAAK,0DAAS;AACpC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,8DAAe;AACf;AACA,8DAAe;;AAE+D;AAC9E;;;;;;;;;;;;;;;;;;ACjoCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4BAA4B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,KAAK,cAAc;AACnD;AACA;AACA,sFAAsF,QAAQ;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,IAAI;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAE4D;AAC5D;;;;;;;;;;;;;;;;;;;;;;;;AC1NiC;AACe;AACT;AAC+F;AAC5C;;AAE1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sCAAsC;;AAEvC;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kCAAkC;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,2CAAM;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,UAAU,6CAAQ;AAClB,UAAU,6CAAQ;AAClB,UAAU,6CAAQ;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2CAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iHAAiH,WAAW;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA,gJAAgJ,qBAAqB;AACrK,+HAA+H,WAAW;AAC1I;AACA;AACA,yBAAyB,WAAW;AACpC,wHAAwH,WAAW;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,wDAAY;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,4CAA4C,GAAG,mBAAmB;AAC1G;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,4CAA4C,GAAG,MAAM;AAC7F;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,uBAAuB,WAAW;AAClC,cAAc,SAAS,YAAY,UAAU;AAC7C;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA,qDAAqD,UAAU;AAC/D,KAAK;AACL;AACA,mBAAmB,kCAAkC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,mBAAmB,6CAA6C;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iEAAkB,KAAK,0DAAS;AACpC,IAAI,iEAAkB,KAAK,0DAAS;AACpC,IAAI,8DAAe;AACnB;AACA,IAAI,8DAAe;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,yEAAyB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,oEAAoB;AAC5B,QAAQ,iEAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,qDAAM;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,WAAW,2DAAY,CAAC,kEAAkB;AAC1C;AACA;AACA,mBAAmB,iBAAiB;AACpC,gFAAgF;AAChF;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kEAAkB;AAClC;AACA;AACA;AACA,wDAAwD,iBAAiB;AACzE,QAAQ,iBAAiB;AACzB;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kEAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kEAAkB;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEoH;AACpH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjtCgD;AAClB;;AAE9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAAe;AACf;;;;;;;;;;;;;;;;;;;;ACvBoC;AACpC;;;;;;;;;;;;;;;;;;;ACDmE;AACN;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,yCAAyC,IAAI;AAC9E;AACA,wBAAwB,qDAAI;AAC5B;AACA;AACA,oBAAoB,qDAAI,sDAAsD,qDAAI;AAClF,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,UAAU,IAAI;AACxC;AACA;AACA;AACA,WAAW,qDAAI;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAY;AACZ;AACA;AACA;AACA,CAAC;;AAE2B;;;;;;;;;;;;;;;;;;;ACvF5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEqG;;;;;;;UCxLrG;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;;;;WCzBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,sDAAsD;WACtD,sCAAsC,iEAAiE;WACvG;WACA;WACA;WACA;WACA;WACA;;;;;WCzBA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;;;;;WCRA;WACA;WACA;WACA;WACA;;;;;WCJA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA,CAAC;;;;;WCPD;;;;;WCAA;WACA;WACA;WACA;WACA,uBAAuB,4BAA4B;WACnD;WACA;WACA;WACA,iBAAiB,oBAAoB;WACrC;WACA,mGAAmG,YAAY;WAC/G;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;W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","sources":["webpack://tinode-webapp/./node_modules/@firebase/util/dist/index.esm2017.js","webpack://tinode-webapp/./src/config.js","webpack://tinode-webapp/./src/constants.js","webpack://tinode-webapp/./src/lib/blob-helpers.js","webpack://tinode-webapp/./src/lib/formatters.js","webpack://tinode-webapp/./src/lib/host-name.js","webpack://tinode-webapp/./src/lib/local-storage.js","webpack://tinode-webapp/./src/lib/navigation.js","webpack://tinode-webapp/./src/lib/strformat.js","webpack://tinode-webapp/./src/lib/utils.js","webpack://tinode-webapp/./src/version.js","webpack://tinode-webapp/./src/views/acc-notifications-view.jsx","webpack://tinode-webapp/./src/views/acc-security-view.jsx","webpack://tinode-webapp/./src/views/acc-support-view.jsx","webpack://tinode-webapp/./src/views/contacts-view.jsx","webpack://tinode-webapp/./src/views/info-view.jsx","webpack://tinode-webapp/./src/views/login-view.jsx","webpack://tinode-webapp/./src/views/logo-view.jsx","webpack://tinode-webapp/./src/views/messages-view.jsx","webpack://tinode-webapp/./src/views/new-topic-view.jsx","webpack://tinode-webapp/./src/views/settings-view.jsx","webpack://tinode-webapp/./src/views/sidepanel-view.jsx","webpack://tinode-webapp/./src/views/tinode-web.jsx","webpack://tinode-webapp/./src/views/topic-common-view.jsx","webpack://tinode-webapp/./src/views/validation-view.jsx","webpack://tinode-webapp/./src/widgets/alert.jsx","webpack://tinode-webapp/./src/widgets/attachment.jsx","webpack://tinode-webapp/./src/widgets/audio-player.jsx","webpack://tinode-webapp/./src/widgets/avatar-crop.jsx","webpack://tinode-webapp/./src/widgets/avatar-upload.jsx","webpack://tinode-webapp/./src/widgets/badge-list.jsx","webpack://tinode-webapp/./src/widgets/button-back.jsx","webpack://tinode-webapp/./src/widgets/call-incoming.jsx","webpack://tinode-webapp/./src/widgets/call-message.jsx","webpack://tinode-webapp/./src/widgets/call-panel.jsx","webpack://tinode-webapp/./src/widgets/call-status.jsx","webpack://tinode-webapp/./src/widgets/chat-message.jsx","webpack://tinode-webapp/./src/widgets/checkbox.jsx","webpack://tinode-webapp/./src/widgets/chip-input.jsx","webpack://tinode-webapp/./src/widgets/chip.jsx","webpack://tinode-webapp/./src/widgets/contact-action.jsx","webpack://tinode-webapp/./src/widgets/contact-badges.jsx","webpack://tinode-webapp/./src/widgets/contact-list.jsx","webpack://tinode-webapp/./src/widgets/contact.jsx","webpack://tinode-webapp/./src/widgets/context-menu.jsx","webpack://tinode-webapp/./src/widgets/cropper.jsx","webpack://tinode-webapp/./src/widgets/doc-preview.jsx","webpack://tinode-webapp/./src/widgets/error-panel.jsx","webpack://tinode-webapp/./src/widgets/file-progress.jsx","webpack://tinode-webapp/./src/widgets/forward-dialog.jsx","webpack://tinode-webapp/./src/widgets/group-manager.jsx","webpack://tinode-webapp/./src/widgets/group-subs.jsx","webpack://tinode-webapp/./src/widgets/host-selector.jsx","webpack://tinode-webapp/./src/widgets/image-preview.jsx","webpack://tinode-webapp/./src/widgets/in-place-edit.jsx","webpack://tinode-webapp/./src/widgets/inline-video.jsx","webpack://tinode-webapp/./src/widgets/invitation.jsx","webpack://tinode-webapp/./src/widgets/lazy-image.jsx","webpack://tinode-webapp/./src/widgets/letter-tile.jsx","webpack://tinode-webapp/./src/widgets/load-spinner.jsx","webpack://tinode-webapp/./src/widgets/menu-cancel.jsx","webpack://tinode-webapp/./src/widgets/menu-contacts.jsx","webpack://tinode-webapp/./src/widgets/menu-start.jsx","webpack://tinode-webapp/./src/widgets/meta-message.jsx","webpack://tinode-webapp/./src/widgets/new-topic-by-id.jsx","webpack://tinode-webapp/./src/widgets/new-topic-group.jsx","webpack://tinode-webapp/./src/widgets/permissions-editor.jsx","webpack://tinode-webapp/./src/widgets/received-marker.jsx","webpack://tinode-webapp/./src/widgets/search-contacts.jsx","webpack://tinode-webapp/./src/widgets/send-message.jsx","webpack://tinode-webapp/./src/widgets/side-navbar.jsx","webpack://tinode-webapp/./src/widgets/tag-manager.jsx","webpack://tinode-webapp/./src/widgets/topic-desc-edit.jsx","webpack://tinode-webapp/./src/widgets/topic-security.jsx","webpack://tinode-webapp/./src/widgets/unread-badge.jsx","webpack://tinode-webapp/./src/widgets/uploading-image.jsx","webpack://tinode-webapp/./src/widgets/video-preview.jsx","webpack://tinode-webapp/./src/widgets/visible-password.jsx","webpack://tinode-webapp/./node_modules/react-dom/client.js","webpack://tinode-webapp/external var \"React\"","webpack://tinode-webapp/external var \"ReactDOM\"","webpack://tinode-webapp/external var \"ReactIntl\"","webpack://tinode-webapp/external var \"Tinode\"","webpack://tinode-webapp/./node_modules/@firebase/app/dist/esm/index.esm2017.js","webpack://tinode-webapp/./node_modules/@firebase/component/dist/esm/index.esm2017.js","webpack://tinode-webapp/./node_modules/@firebase/installations/dist/esm/index.esm2017.js","webpack://tinode-webapp/./node_modules/@firebase/logger/dist/esm/index.esm2017.js","webpack://tinode-webapp/./node_modules/@firebase/messaging/dist/esm/index.esm2017.js","webpack://tinode-webapp/./node_modules/firebase/app/dist/esm/index.esm.js","webpack://tinode-webapp/./node_modules/firebase/messaging/dist/esm/index.esm.js","webpack://tinode-webapp/./node_modules/idb/build/index.js","webpack://tinode-webapp/./node_modules/idb/build/wrap-idb-value.js","webpack://tinode-webapp/webpack/bootstrap","webpack://tinode-webapp/webpack/runtime/compat get default export","webpack://tinode-webapp/webpack/runtime/create fake namespace object","webpack://tinode-webapp/webpack/runtime/define property getters","webpack://tinode-webapp/webpack/runtime/ensure chunk","webpack://tinode-webapp/webpack/runtime/get javascript chunk filename","webpack://tinode-webapp/webpack/runtime/global","webpack://tinode-webapp/webpack/runtime/hasOwnProperty shorthand","webpack://tinode-webapp/webpack/runtime/load script","webpack://tinode-webapp/webpack/runtime/make namespace object","webpack://tinode-webapp/webpack/runtime/publicPath","webpack://tinode-webapp/webpack/runtime/jsonp chunk loading","webpack://tinode-webapp/./src/index.js"],"sourcesContent":["/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview Firebase constants. Some of these (@defines) can be overridden at compile-time.\r\n */\r\nconst CONSTANTS = {\r\n /**\r\n * @define {boolean} Whether this is the client Node.js SDK.\r\n */\r\n NODE_CLIENT: false,\r\n /**\r\n * @define {boolean} Whether this is the Admin Node.js SDK.\r\n */\r\n NODE_ADMIN: false,\r\n /**\r\n * Firebase SDK Version\r\n */\r\n SDK_VERSION: '${JSCORE_VERSION}'\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Throws an error if the provided assertion is falsy\r\n */\r\nconst assert = function (assertion, message) {\r\n if (!assertion) {\r\n throw assertionError(message);\r\n }\r\n};\r\n/**\r\n * Returns an Error object suitable for throwing.\r\n */\r\nconst assertionError = function (message) {\r\n return new Error('Firebase Database (' +\r\n CONSTANTS.SDK_VERSION +\r\n ') INTERNAL ASSERT FAILED: ' +\r\n message);\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst stringToByteArray$1 = function (str) {\r\n // TODO(user): Use native implementations if/when available\r\n const out = [];\r\n let p = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n let c = str.charCodeAt(i);\r\n if (c < 128) {\r\n out[p++] = c;\r\n }\r\n else if (c < 2048) {\r\n out[p++] = (c >> 6) | 192;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else if ((c & 0xfc00) === 0xd800 &&\r\n i + 1 < str.length &&\r\n (str.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\r\n // Surrogate Pair\r\n c = 0x10000 + ((c & 0x03ff) << 10) + (str.charCodeAt(++i) & 0x03ff);\r\n out[p++] = (c >> 18) | 240;\r\n out[p++] = ((c >> 12) & 63) | 128;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else {\r\n out[p++] = (c >> 12) | 224;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n }\r\n return out;\r\n};\r\n/**\r\n * Turns an array of numbers into the string given by the concatenation of the\r\n * characters to which the numbers correspond.\r\n * @param bytes Array of numbers representing characters.\r\n * @return Stringification of the array.\r\n */\r\nconst byteArrayToString = function (bytes) {\r\n // TODO(user): Use native implementations if/when available\r\n const out = [];\r\n let pos = 0, c = 0;\r\n while (pos < bytes.length) {\r\n const c1 = bytes[pos++];\r\n if (c1 < 128) {\r\n out[c++] = String.fromCharCode(c1);\r\n }\r\n else if (c1 > 191 && c1 < 224) {\r\n const c2 = bytes[pos++];\r\n out[c++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));\r\n }\r\n else if (c1 > 239 && c1 < 365) {\r\n // Surrogate Pair\r\n const c2 = bytes[pos++];\r\n const c3 = bytes[pos++];\r\n const c4 = bytes[pos++];\r\n const u = (((c1 & 7) << 18) | ((c2 & 63) << 12) | ((c3 & 63) << 6) | (c4 & 63)) -\r\n 0x10000;\r\n out[c++] = String.fromCharCode(0xd800 + (u >> 10));\r\n out[c++] = String.fromCharCode(0xdc00 + (u & 1023));\r\n }\r\n else {\r\n const c2 = bytes[pos++];\r\n const c3 = bytes[pos++];\r\n out[c++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\r\n }\r\n }\r\n return out.join('');\r\n};\r\n// We define it as an object literal instead of a class because a class compiled down to es5 can't\r\n// be treeshaked. https://github.com/rollup/rollup/issues/1691\r\n// Static lookup maps, lazily populated by init_()\r\nconst base64 = {\r\n /**\r\n * Maps bytes to characters.\r\n */\r\n byteToCharMap_: null,\r\n /**\r\n * Maps characters to bytes.\r\n */\r\n charToByteMap_: null,\r\n /**\r\n * Maps bytes to websafe characters.\r\n * @private\r\n */\r\n byteToCharMapWebSafe_: null,\r\n /**\r\n * Maps websafe characters to bytes.\r\n * @private\r\n */\r\n charToByteMapWebSafe_: null,\r\n /**\r\n * Our default alphabet, shared between\r\n * ENCODED_VALS and ENCODED_VALS_WEBSAFE\r\n */\r\n ENCODED_VALS_BASE: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789',\r\n /**\r\n * Our default alphabet. Value 64 (=) is special; it means \"nothing.\"\r\n */\r\n get ENCODED_VALS() {\r\n return this.ENCODED_VALS_BASE + '+/=';\r\n },\r\n /**\r\n * Our websafe alphabet.\r\n */\r\n get ENCODED_VALS_WEBSAFE() {\r\n return this.ENCODED_VALS_BASE + '-_.';\r\n },\r\n /**\r\n * Whether this browser supports the atob and btoa functions. This extension\r\n * started at Mozilla but is now implemented by many browsers. We use the\r\n * ASSUME_* variables to avoid pulling in the full useragent detection library\r\n * but still allowing the standard per-browser compilations.\r\n *\r\n */\r\n HAS_NATIVE_SUPPORT: typeof atob === 'function',\r\n /**\r\n * Base64-encode an array of bytes.\r\n *\r\n * @param input An array of bytes (numbers with\r\n * value in [0, 255]) to encode.\r\n * @param webSafe Boolean indicating we should use the\r\n * alternative alphabet.\r\n * @return The base64 encoded string.\r\n */\r\n encodeByteArray(input, webSafe) {\r\n if (!Array.isArray(input)) {\r\n throw Error('encodeByteArray takes an array as a parameter');\r\n }\r\n this.init_();\r\n const byteToCharMap = webSafe\r\n ? this.byteToCharMapWebSafe_\r\n : this.byteToCharMap_;\r\n const output = [];\r\n for (let i = 0; i < input.length; i += 3) {\r\n const byte1 = input[i];\r\n const haveByte2 = i + 1 < input.length;\r\n const byte2 = haveByte2 ? input[i + 1] : 0;\r\n const haveByte3 = i + 2 < input.length;\r\n const byte3 = haveByte3 ? input[i + 2] : 0;\r\n const outByte1 = byte1 >> 2;\r\n const outByte2 = ((byte1 & 0x03) << 4) | (byte2 >> 4);\r\n let outByte3 = ((byte2 & 0x0f) << 2) | (byte3 >> 6);\r\n let outByte4 = byte3 & 0x3f;\r\n if (!haveByte3) {\r\n outByte4 = 64;\r\n if (!haveByte2) {\r\n outByte3 = 64;\r\n }\r\n }\r\n output.push(byteToCharMap[outByte1], byteToCharMap[outByte2], byteToCharMap[outByte3], byteToCharMap[outByte4]);\r\n }\r\n return output.join('');\r\n },\r\n /**\r\n * Base64-encode a string.\r\n *\r\n * @param input A string to encode.\r\n * @param webSafe If true, we should use the\r\n * alternative alphabet.\r\n * @return The base64 encoded string.\r\n */\r\n encodeString(input, webSafe) {\r\n // Shortcut for Mozilla browsers that implement\r\n // a native base64 encoder in the form of \"btoa/atob\"\r\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\r\n return btoa(input);\r\n }\r\n return this.encodeByteArray(stringToByteArray$1(input), webSafe);\r\n },\r\n /**\r\n * Base64-decode a string.\r\n *\r\n * @param input to decode.\r\n * @param webSafe True if we should use the\r\n * alternative alphabet.\r\n * @return string representing the decoded value.\r\n */\r\n decodeString(input, webSafe) {\r\n // Shortcut for Mozilla browsers that implement\r\n // a native base64 encoder in the form of \"btoa/atob\"\r\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\r\n return atob(input);\r\n }\r\n return byteArrayToString(this.decodeStringToByteArray(input, webSafe));\r\n },\r\n /**\r\n * Base64-decode a string.\r\n *\r\n * In base-64 decoding, groups of four characters are converted into three\r\n * bytes. If the encoder did not apply padding, the input length may not\r\n * be a multiple of 4.\r\n *\r\n * In this case, the last group will have fewer than 4 characters, and\r\n * padding will be inferred. If the group has one or two characters, it decodes\r\n * to one byte. If the group has three characters, it decodes to two bytes.\r\n *\r\n * @param input Input to decode.\r\n * @param webSafe True if we should use the web-safe alphabet.\r\n * @return bytes representing the decoded value.\r\n */\r\n decodeStringToByteArray(input, webSafe) {\r\n this.init_();\r\n const charToByteMap = webSafe\r\n ? this.charToByteMapWebSafe_\r\n : this.charToByteMap_;\r\n const output = [];\r\n for (let i = 0; i < input.length;) {\r\n const byte1 = charToByteMap[input.charAt(i++)];\r\n const haveByte2 = i < input.length;\r\n const byte2 = haveByte2 ? charToByteMap[input.charAt(i)] : 0;\r\n ++i;\r\n const haveByte3 = i < input.length;\r\n const byte3 = haveByte3 ? charToByteMap[input.charAt(i)] : 64;\r\n ++i;\r\n const haveByte4 = i < input.length;\r\n const byte4 = haveByte4 ? charToByteMap[input.charAt(i)] : 64;\r\n ++i;\r\n if (byte1 == null || byte2 == null || byte3 == null || byte4 == null) {\r\n throw Error();\r\n }\r\n const outByte1 = (byte1 << 2) | (byte2 >> 4);\r\n output.push(outByte1);\r\n if (byte3 !== 64) {\r\n const outByte2 = ((byte2 << 4) & 0xf0) | (byte3 >> 2);\r\n output.push(outByte2);\r\n if (byte4 !== 64) {\r\n const outByte3 = ((byte3 << 6) & 0xc0) | byte4;\r\n output.push(outByte3);\r\n }\r\n }\r\n }\r\n return output;\r\n },\r\n /**\r\n * Lazy static initialization function. Called before\r\n * accessing any of the static map variables.\r\n * @private\r\n */\r\n init_() {\r\n if (!this.byteToCharMap_) {\r\n this.byteToCharMap_ = {};\r\n this.charToByteMap_ = {};\r\n this.byteToCharMapWebSafe_ = {};\r\n this.charToByteMapWebSafe_ = {};\r\n // We want quick mappings back and forth, so we precompute two maps.\r\n for (let i = 0; i < this.ENCODED_VALS.length; i++) {\r\n this.byteToCharMap_[i] = this.ENCODED_VALS.charAt(i);\r\n this.charToByteMap_[this.byteToCharMap_[i]] = i;\r\n this.byteToCharMapWebSafe_[i] = this.ENCODED_VALS_WEBSAFE.charAt(i);\r\n this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[i]] = i;\r\n // Be forgiving when decoding and correctly decode both encodings.\r\n if (i >= this.ENCODED_VALS_BASE.length) {\r\n this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(i)] = i;\r\n this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(i)] = i;\r\n }\r\n }\r\n }\r\n }\r\n};\r\n/**\r\n * URL-safe base64 encoding\r\n */\r\nconst base64Encode = function (str) {\r\n const utf8Bytes = stringToByteArray$1(str);\r\n return base64.encodeByteArray(utf8Bytes, true);\r\n};\r\n/**\r\n * URL-safe base64 encoding (without \".\" padding in the end).\r\n * e.g. Used in JSON Web Token (JWT) parts.\r\n */\r\nconst base64urlEncodeWithoutPadding = function (str) {\r\n // Use base64url encoding and remove padding in the end (dot characters).\r\n return base64Encode(str).replace(/\\./g, '');\r\n};\r\n/**\r\n * URL-safe base64 decoding\r\n *\r\n * NOTE: DO NOT use the global atob() function - it does NOT support the\r\n * base64Url variant encoding.\r\n *\r\n * @param str To be decoded\r\n * @return Decoded result, if possible\r\n */\r\nconst base64Decode = function (str) {\r\n try {\r\n return base64.decodeString(str, true);\r\n }\r\n catch (e) {\r\n console.error('base64Decode failed: ', e);\r\n }\r\n return null;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Do a deep-copy of basic JavaScript Objects or Arrays.\r\n */\r\nfunction deepCopy(value) {\r\n return deepExtend(undefined, value);\r\n}\r\n/**\r\n * Copy properties from source to target (recursively allows extension\r\n * of Objects and Arrays). Scalar values in the target are over-written.\r\n * If target is undefined, an object of the appropriate type will be created\r\n * (and returned).\r\n *\r\n * We recursively copy all child properties of plain Objects in the source- so\r\n * that namespace- like dictionaries are merged.\r\n *\r\n * Note that the target can be a function, in which case the properties in\r\n * the source Object are copied onto it as static properties of the Function.\r\n *\r\n * Note: we don't merge __proto__ to prevent prototype pollution\r\n */\r\nfunction deepExtend(target, source) {\r\n if (!(source instanceof Object)) {\r\n return source;\r\n }\r\n switch (source.constructor) {\r\n case Date:\r\n // Treat Dates like scalars; if the target date object had any child\r\n // properties - they will be lost!\r\n const dateValue = source;\r\n return new Date(dateValue.getTime());\r\n case Object:\r\n if (target === undefined) {\r\n target = {};\r\n }\r\n break;\r\n case Array:\r\n // Always copy the array source and overwrite the target.\r\n target = [];\r\n break;\r\n default:\r\n // Not a plain Object - treat it as a scalar.\r\n return source;\r\n }\r\n for (const prop in source) {\r\n // use isValidKey to guard against prototype pollution. See https://snyk.io/vuln/SNYK-JS-LODASH-450202\r\n if (!source.hasOwnProperty(prop) || !isValidKey(prop)) {\r\n continue;\r\n }\r\n target[prop] = deepExtend(target[prop], source[prop]);\r\n }\r\n return target;\r\n}\r\nfunction isValidKey(key) {\r\n return key !== '__proto__';\r\n}\n\n/**\r\n * @license\r\n * Copyright 2022 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Polyfill for `globalThis` object.\r\n * @returns the `globalThis` object for the given environment.\r\n * @public\r\n */\r\nfunction getGlobal() {\r\n if (typeof self !== 'undefined') {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined') {\r\n return window;\r\n }\r\n if (typeof global !== 'undefined') {\r\n return global;\r\n }\r\n throw new Error('Unable to locate global object.');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2022 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst getDefaultsFromGlobal = () => getGlobal().__FIREBASE_DEFAULTS__;\r\n/**\r\n * Attempt to read defaults from a JSON string provided to\r\n * process(.)env(.)__FIREBASE_DEFAULTS__ or a JSON file whose path is in\r\n * process(.)env(.)__FIREBASE_DEFAULTS_PATH__\r\n * The dots are in parens because certain compilers (Vite?) cannot\r\n * handle seeing that variable in comments.\r\n * See https://github.com/firebase/firebase-js-sdk/issues/6838\r\n */\r\nconst getDefaultsFromEnvVariable = () => {\r\n if (typeof process === 'undefined' || typeof process.env === 'undefined') {\r\n return;\r\n }\r\n const defaultsJsonString = process.env.__FIREBASE_DEFAULTS__;\r\n if (defaultsJsonString) {\r\n return JSON.parse(defaultsJsonString);\r\n }\r\n};\r\nconst getDefaultsFromCookie = () => {\r\n if (typeof document === 'undefined') {\r\n return;\r\n }\r\n let match;\r\n try {\r\n match = document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/);\r\n }\r\n catch (e) {\r\n // Some environments such as Angular Universal SSR have a\r\n // `document` object but error on accessing `document.cookie`.\r\n return;\r\n }\r\n const decoded = match && base64Decode(match[1]);\r\n return decoded && JSON.parse(decoded);\r\n};\r\n/**\r\n * Get the __FIREBASE_DEFAULTS__ object. It checks in order:\r\n * (1) if such an object exists as a property of `globalThis`\r\n * (2) if such an object was provided on a shell environment variable\r\n * (3) if such an object exists in a cookie\r\n * @public\r\n */\r\nconst getDefaults = () => {\r\n try {\r\n return (getDefaultsFromGlobal() ||\r\n getDefaultsFromEnvVariable() ||\r\n getDefaultsFromCookie());\r\n }\r\n catch (e) {\r\n /**\r\n * Catch-all for being unable to get __FIREBASE_DEFAULTS__ due\r\n * to any environment case we have not accounted for. Log to\r\n * info instead of swallowing so we can find these unknown cases\r\n * and add paths for them if needed.\r\n */\r\n console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`);\r\n return;\r\n }\r\n};\r\n/**\r\n * Returns emulator host stored in the __FIREBASE_DEFAULTS__ object\r\n * for the given product.\r\n * @returns a URL host formatted like `127.0.0.1:9999` or `[::1]:4000` if available\r\n * @public\r\n */\r\nconst getDefaultEmulatorHost = (productName) => { var _a, _b; return (_b = (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a.emulatorHosts) === null || _b === void 0 ? void 0 : _b[productName]; };\r\n/**\r\n * Returns emulator hostname and port stored in the __FIREBASE_DEFAULTS__ object\r\n * for the given product.\r\n * @returns a pair of hostname and port like `[\"::1\", 4000]` if available\r\n * @public\r\n */\r\nconst getDefaultEmulatorHostnameAndPort = (productName) => {\r\n const host = getDefaultEmulatorHost(productName);\r\n if (!host) {\r\n return undefined;\r\n }\r\n const separatorIndex = host.lastIndexOf(':'); // Finding the last since IPv6 addr also has colons.\r\n if (separatorIndex <= 0 || separatorIndex + 1 === host.length) {\r\n throw new Error(`Invalid host ${host} with no separate hostname and port!`);\r\n }\r\n // eslint-disable-next-line no-restricted-globals\r\n const port = parseInt(host.substring(separatorIndex + 1), 10);\r\n if (host[0] === '[') {\r\n // Bracket-quoted `[ipv6addr]:port` => return \"ipv6addr\" (without brackets).\r\n return [host.substring(1, separatorIndex - 1), port];\r\n }\r\n else {\r\n return [host.substring(0, separatorIndex), port];\r\n }\r\n};\r\n/**\r\n * Returns Firebase app config stored in the __FIREBASE_DEFAULTS__ object.\r\n * @public\r\n */\r\nconst getDefaultAppConfig = () => { var _a; return (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a.config; };\r\n/**\r\n * Returns an experimental setting on the __FIREBASE_DEFAULTS__ object (properties\r\n * prefixed by \"_\")\r\n * @public\r\n */\r\nconst getExperimentalSetting = (name) => { var _a; return (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a[`_${name}`]; };\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nclass Deferred {\r\n constructor() {\r\n this.reject = () => { };\r\n this.resolve = () => { };\r\n this.promise = new Promise((resolve, reject) => {\r\n this.resolve = resolve;\r\n this.reject = reject;\r\n });\r\n }\r\n /**\r\n * Our API internals are not promiseified and cannot because our callback APIs have subtle expectations around\r\n * invoking promises inline, which Promises are forbidden to do. This method accepts an optional node-style callback\r\n * and returns a node-style callback which will resolve or reject the Deferred's promise.\r\n */\r\n wrapCallback(callback) {\r\n return (error, value) => {\r\n if (error) {\r\n this.reject(error);\r\n }\r\n else {\r\n this.resolve(value);\r\n }\r\n if (typeof callback === 'function') {\r\n // Attaching noop handler just in case developer wasn't expecting\r\n // promises\r\n this.promise.catch(() => { });\r\n // Some of our callbacks don't expect a value and our own tests\r\n // assert that the parameter length is 1\r\n if (callback.length === 1) {\r\n callback(error);\r\n }\r\n else {\r\n callback(error, value);\r\n }\r\n }\r\n };\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction createMockUserToken(token, projectId) {\r\n if (token.uid) {\r\n throw new Error('The \"uid\" field is no longer supported by mockUserToken. Please use \"sub\" instead for Firebase Auth User ID.');\r\n }\r\n // Unsecured JWTs use \"none\" as the algorithm.\r\n const header = {\r\n alg: 'none',\r\n type: 'JWT'\r\n };\r\n const project = projectId || 'demo-project';\r\n const iat = token.iat || 0;\r\n const sub = token.sub || token.user_id;\r\n if (!sub) {\r\n throw new Error(\"mockUserToken must contain 'sub' or 'user_id' field!\");\r\n }\r\n const payload = Object.assign({ \r\n // Set all required fields to decent defaults\r\n iss: `https://securetoken.google.com/${project}`, aud: project, iat, exp: iat + 3600, auth_time: iat, sub, user_id: sub, firebase: {\r\n sign_in_provider: 'custom',\r\n identities: {}\r\n } }, token);\r\n // Unsecured JWTs use the empty string as a signature.\r\n const signature = '';\r\n return [\r\n base64urlEncodeWithoutPadding(JSON.stringify(header)),\r\n base64urlEncodeWithoutPadding(JSON.stringify(payload)),\r\n signature\r\n ].join('.');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns navigator.userAgent string or '' if it's not defined.\r\n * @return user agent string\r\n */\r\nfunction getUA() {\r\n if (typeof navigator !== 'undefined' &&\r\n typeof navigator['userAgent'] === 'string') {\r\n return navigator['userAgent'];\r\n }\r\n else {\r\n return '';\r\n }\r\n}\r\n/**\r\n * Detect Cordova / PhoneGap / Ionic frameworks on a mobile device.\r\n *\r\n * Deliberately does not rely on checking `file://` URLs (as this fails PhoneGap\r\n * in the Ripple emulator) nor Cordova `onDeviceReady`, which would normally\r\n * wait for a callback.\r\n */\r\nfunction isMobileCordova() {\r\n return (typeof window !== 'undefined' &&\r\n // @ts-ignore Setting up an broadly applicable index signature for Window\r\n // just to deal with this case would probably be a bad idea.\r\n !!(window['cordova'] || window['phonegap'] || window['PhoneGap']) &&\r\n /ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(getUA()));\r\n}\r\n/**\r\n * Detect Node.js.\r\n *\r\n * @return true if Node.js environment is detected or specified.\r\n */\r\n// Node detection logic from: https://github.com/iliakan/detect-node/\r\nfunction isNode() {\r\n var _a;\r\n const forceEnvironment = (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a.forceEnvironment;\r\n if (forceEnvironment === 'node') {\r\n return true;\r\n }\r\n else if (forceEnvironment === 'browser') {\r\n return false;\r\n }\r\n try {\r\n return (Object.prototype.toString.call(global.process) === '[object process]');\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n}\r\n/**\r\n * Detect Browser Environment\r\n */\r\nfunction isBrowser() {\r\n return typeof self === 'object' && self.self === self;\r\n}\r\nfunction isBrowserExtension() {\r\n const runtime = typeof chrome === 'object'\r\n ? chrome.runtime\r\n : typeof browser === 'object'\r\n ? browser.runtime\r\n : undefined;\r\n return typeof runtime === 'object' && runtime.id !== undefined;\r\n}\r\n/**\r\n * Detect React Native.\r\n *\r\n * @return true if ReactNative environment is detected.\r\n */\r\nfunction isReactNative() {\r\n return (typeof navigator === 'object' && navigator['product'] === 'ReactNative');\r\n}\r\n/** Detects Electron apps. */\r\nfunction isElectron() {\r\n return getUA().indexOf('Electron/') >= 0;\r\n}\r\n/** Detects Internet Explorer. */\r\nfunction isIE() {\r\n const ua = getUA();\r\n return ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\r\n}\r\n/** Detects Universal Windows Platform apps. */\r\nfunction isUWP() {\r\n return getUA().indexOf('MSAppHost/') >= 0;\r\n}\r\n/**\r\n * Detect whether the current SDK build is the Node version.\r\n *\r\n * @return true if it's the Node SDK build.\r\n */\r\nfunction isNodeSdk() {\r\n return CONSTANTS.NODE_CLIENT === true || CONSTANTS.NODE_ADMIN === true;\r\n}\r\n/** Returns true if we are running in Safari. */\r\nfunction isSafari() {\r\n return (!isNode() &&\r\n navigator.userAgent.includes('Safari') &&\r\n !navigator.userAgent.includes('Chrome'));\r\n}\r\n/**\r\n * This method checks if indexedDB is supported by current browser/service worker context\r\n * @return true if indexedDB is supported by current browser/service worker context\r\n */\r\nfunction isIndexedDBAvailable() {\r\n try {\r\n return typeof indexedDB === 'object';\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n}\r\n/**\r\n * This method validates browser/sw context for indexedDB by opening a dummy indexedDB database and reject\r\n * if errors occur during the database open operation.\r\n *\r\n * @throws exception if current browser/sw context can't run idb.open (ex: Safari iframe, Firefox\r\n * private browsing)\r\n */\r\nfunction validateIndexedDBOpenable() {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n let preExist = true;\r\n const DB_CHECK_NAME = 'validate-browser-context-for-indexeddb-analytics-module';\r\n const request = self.indexedDB.open(DB_CHECK_NAME);\r\n request.onsuccess = () => {\r\n request.result.close();\r\n // delete database only when it doesn't pre-exist\r\n if (!preExist) {\r\n self.indexedDB.deleteDatabase(DB_CHECK_NAME);\r\n }\r\n resolve(true);\r\n };\r\n request.onupgradeneeded = () => {\r\n preExist = false;\r\n };\r\n request.onerror = () => {\r\n var _a;\r\n reject(((_a = request.error) === null || _a === void 0 ? void 0 : _a.message) || '');\r\n };\r\n }\r\n catch (error) {\r\n reject(error);\r\n }\r\n });\r\n}\r\n/**\r\n *\r\n * This method checks whether cookie is enabled within current browser\r\n * @return true if cookie is enabled within current browser\r\n */\r\nfunction areCookiesEnabled() {\r\n if (typeof navigator === 'undefined' || !navigator.cookieEnabled) {\r\n return false;\r\n }\r\n return true;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview Standardized Firebase Error.\r\n *\r\n * Usage:\r\n *\r\n * // Typescript string literals for type-safe codes\r\n * type Err =\r\n * 'unknown' |\r\n * 'object-not-found'\r\n * ;\r\n *\r\n * // Closure enum for type-safe error codes\r\n * // at-enum {string}\r\n * var Err = {\r\n * UNKNOWN: 'unknown',\r\n * OBJECT_NOT_FOUND: 'object-not-found',\r\n * }\r\n *\r\n * let errors: Map = {\r\n * 'generic-error': \"Unknown error\",\r\n * 'file-not-found': \"Could not find file: {$file}\",\r\n * };\r\n *\r\n * // Type-safe function - must pass a valid error code as param.\r\n * let error = new ErrorFactory('service', 'Service', errors);\r\n *\r\n * ...\r\n * throw error.create(Err.GENERIC);\r\n * ...\r\n * throw error.create(Err.FILE_NOT_FOUND, {'file': fileName});\r\n * ...\r\n * // Service: Could not file file: foo.txt (service/file-not-found).\r\n *\r\n * catch (e) {\r\n * assert(e.message === \"Could not find file: foo.txt.\");\r\n * if ((e as FirebaseError)?.code === 'service/file-not-found') {\r\n * console.log(\"Could not read file: \" + e['file']);\r\n * }\r\n * }\r\n */\r\nconst ERROR_NAME = 'FirebaseError';\r\n// Based on code from:\r\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Custom_Error_Types\r\nclass FirebaseError extends Error {\r\n constructor(\r\n /** The error code for this error. */\r\n code, message, \r\n /** Custom data for this error. */\r\n customData) {\r\n super(message);\r\n this.code = code;\r\n this.customData = customData;\r\n /** The custom name for all FirebaseErrors. */\r\n this.name = ERROR_NAME;\r\n // Fix For ES5\r\n // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\r\n Object.setPrototypeOf(this, FirebaseError.prototype);\r\n // Maintains proper stack trace for where our error was thrown.\r\n // Only available on V8.\r\n if (Error.captureStackTrace) {\r\n Error.captureStackTrace(this, ErrorFactory.prototype.create);\r\n }\r\n }\r\n}\r\nclass ErrorFactory {\r\n constructor(service, serviceName, errors) {\r\n this.service = service;\r\n this.serviceName = serviceName;\r\n this.errors = errors;\r\n }\r\n create(code, ...data) {\r\n const customData = data[0] || {};\r\n const fullCode = `${this.service}/${code}`;\r\n const template = this.errors[code];\r\n const message = template ? replaceTemplate(template, customData) : 'Error';\r\n // Service Name: Error message (service/code).\r\n const fullMessage = `${this.serviceName}: ${message} (${fullCode}).`;\r\n const error = new FirebaseError(fullCode, fullMessage, customData);\r\n return error;\r\n }\r\n}\r\nfunction replaceTemplate(template, data) {\r\n return template.replace(PATTERN, (_, key) => {\r\n const value = data[key];\r\n return value != null ? String(value) : `<${key}?>`;\r\n });\r\n}\r\nconst PATTERN = /\\{\\$([^}]+)}/g;\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Evaluates a JSON string into a javascript object.\r\n *\r\n * @param {string} str A string containing JSON.\r\n * @return {*} The javascript object representing the specified JSON.\r\n */\r\nfunction jsonEval(str) {\r\n return JSON.parse(str);\r\n}\r\n/**\r\n * Returns JSON representing a javascript object.\r\n * @param {*} data Javascript object to be stringified.\r\n * @return {string} The JSON contents of the object.\r\n */\r\nfunction stringify(data) {\r\n return JSON.stringify(data);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Decodes a Firebase auth. token into constituent parts.\r\n *\r\n * Notes:\r\n * - May return with invalid / incomplete claims if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst decode = function (token) {\r\n let header = {}, claims = {}, data = {}, signature = '';\r\n try {\r\n const parts = token.split('.');\r\n header = jsonEval(base64Decode(parts[0]) || '');\r\n claims = jsonEval(base64Decode(parts[1]) || '');\r\n signature = parts[2];\r\n data = claims['d'] || {};\r\n delete claims['d'];\r\n }\r\n catch (e) { }\r\n return {\r\n header,\r\n claims,\r\n data,\r\n signature\r\n };\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its time-based claims. Will return true if the\r\n * token is within the time window authorized by the 'nbf' (not-before) and 'iat' (issued-at) claims.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst isValidTimestamp = function (token) {\r\n const claims = decode(token).claims;\r\n const now = Math.floor(new Date().getTime() / 1000);\r\n let validSince = 0, validUntil = 0;\r\n if (typeof claims === 'object') {\r\n if (claims.hasOwnProperty('nbf')) {\r\n validSince = claims['nbf'];\r\n }\r\n else if (claims.hasOwnProperty('iat')) {\r\n validSince = claims['iat'];\r\n }\r\n if (claims.hasOwnProperty('exp')) {\r\n validUntil = claims['exp'];\r\n }\r\n else {\r\n // token will expire after 24h by default\r\n validUntil = validSince + 86400;\r\n }\r\n }\r\n return (!!now &&\r\n !!validSince &&\r\n !!validUntil &&\r\n now >= validSince &&\r\n now <= validUntil);\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and returns its issued at time if valid, null otherwise.\r\n *\r\n * Notes:\r\n * - May return null if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst issuedAtTime = function (token) {\r\n const claims = decode(token).claims;\r\n if (typeof claims === 'object' && claims.hasOwnProperty('iat')) {\r\n return claims['iat'];\r\n }\r\n return null;\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its format. Expects a valid issued-at time.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst isValidFormat = function (token) {\r\n const decoded = decode(token), claims = decoded.claims;\r\n return !!claims && typeof claims === 'object' && claims.hasOwnProperty('iat');\r\n};\r\n/**\r\n * Attempts to peer into an auth token and determine if it's an admin auth token by looking at the claims portion.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst isAdmin = function (token) {\r\n const claims = decode(token).claims;\r\n return typeof claims === 'object' && claims['admin'] === true;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction contains(obj, key) {\r\n return Object.prototype.hasOwnProperty.call(obj, key);\r\n}\r\nfunction safeGet(obj, key) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n return obj[key];\r\n }\r\n else {\r\n return undefined;\r\n }\r\n}\r\nfunction isEmpty(obj) {\r\n for (const key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction map(obj, fn, contextObj) {\r\n const res = {};\r\n for (const key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n res[key] = fn.call(contextObj, obj[key], key, obj);\r\n }\r\n }\r\n return res;\r\n}\r\n/**\r\n * Deep equal two objects. Support Arrays and Objects.\r\n */\r\nfunction deepEqual(a, b) {\r\n if (a === b) {\r\n return true;\r\n }\r\n const aKeys = Object.keys(a);\r\n const bKeys = Object.keys(b);\r\n for (const k of aKeys) {\r\n if (!bKeys.includes(k)) {\r\n return false;\r\n }\r\n const aProp = a[k];\r\n const bProp = b[k];\r\n if (isObject(aProp) && isObject(bProp)) {\r\n if (!deepEqual(aProp, bProp)) {\r\n return false;\r\n }\r\n }\r\n else if (aProp !== bProp) {\r\n return false;\r\n }\r\n }\r\n for (const k of bKeys) {\r\n if (!aKeys.includes(k)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction isObject(thing) {\r\n return thing !== null && typeof thing === 'object';\r\n}\n\n/**\r\n * @license\r\n * Copyright 2022 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Rejects if the given promise doesn't resolve in timeInMS milliseconds.\r\n * @internal\r\n */\r\nfunction promiseWithTimeout(promise, timeInMS = 2000) {\r\n const deferredPromise = new Deferred();\r\n setTimeout(() => deferredPromise.reject('timeout!'), timeInMS);\r\n promise.then(deferredPromise.resolve, deferredPromise.reject);\r\n return deferredPromise.promise;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns a querystring-formatted string (e.g. &arg=val&arg2=val2) from a\r\n * params object (e.g. {arg: 'val', arg2: 'val2'})\r\n * Note: You must prepend it with ? when adding it to a URL.\r\n */\r\nfunction querystring(querystringParams) {\r\n const params = [];\r\n for (const [key, value] of Object.entries(querystringParams)) {\r\n if (Array.isArray(value)) {\r\n value.forEach(arrayVal => {\r\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(arrayVal));\r\n });\r\n }\r\n else {\r\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));\r\n }\r\n }\r\n return params.length ? '&' + params.join('&') : '';\r\n}\r\n/**\r\n * Decodes a querystring (e.g. ?arg=val&arg2=val2) into a params object\r\n * (e.g. {arg: 'val', arg2: 'val2'})\r\n */\r\nfunction querystringDecode(querystring) {\r\n const obj = {};\r\n const tokens = querystring.replace(/^\\?/, '').split('&');\r\n tokens.forEach(token => {\r\n if (token) {\r\n const [key, value] = token.split('=');\r\n obj[decodeURIComponent(key)] = decodeURIComponent(value);\r\n }\r\n });\r\n return obj;\r\n}\r\n/**\r\n * Extract the query string part of a URL, including the leading question mark (if present).\r\n */\r\nfunction extractQuerystring(url) {\r\n const queryStart = url.indexOf('?');\r\n if (!queryStart) {\r\n return '';\r\n }\r\n const fragmentStart = url.indexOf('#', queryStart);\r\n return url.substring(queryStart, fragmentStart > 0 ? fragmentStart : undefined);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview SHA-1 cryptographic hash.\r\n * Variable names follow the notation in FIPS PUB 180-3:\r\n * http://csrc.nist.gov/publications/fips/fips180-3/fips180-3_final.pdf.\r\n *\r\n * Usage:\r\n * var sha1 = new sha1();\r\n * sha1.update(bytes);\r\n * var hash = sha1.digest();\r\n *\r\n * Performance:\r\n * Chrome 23: ~400 Mbit/s\r\n * Firefox 16: ~250 Mbit/s\r\n *\r\n */\r\n/**\r\n * SHA-1 cryptographic hash constructor.\r\n *\r\n * The properties declared here are discussed in the above algorithm document.\r\n * @constructor\r\n * @final\r\n * @struct\r\n */\r\nclass Sha1 {\r\n constructor() {\r\n /**\r\n * Holds the previous values of accumulated variables a-e in the compress_\r\n * function.\r\n * @private\r\n */\r\n this.chain_ = [];\r\n /**\r\n * A buffer holding the partially computed hash result.\r\n * @private\r\n */\r\n this.buf_ = [];\r\n /**\r\n * An array of 80 bytes, each a part of the message to be hashed. Referred to\r\n * as the message schedule in the docs.\r\n * @private\r\n */\r\n this.W_ = [];\r\n /**\r\n * Contains data needed to pad messages less than 64 bytes.\r\n * @private\r\n */\r\n this.pad_ = [];\r\n /**\r\n * @private {number}\r\n */\r\n this.inbuf_ = 0;\r\n /**\r\n * @private {number}\r\n */\r\n this.total_ = 0;\r\n this.blockSize = 512 / 8;\r\n this.pad_[0] = 128;\r\n for (let i = 1; i < this.blockSize; ++i) {\r\n this.pad_[i] = 0;\r\n }\r\n this.reset();\r\n }\r\n reset() {\r\n this.chain_[0] = 0x67452301;\r\n this.chain_[1] = 0xefcdab89;\r\n this.chain_[2] = 0x98badcfe;\r\n this.chain_[3] = 0x10325476;\r\n this.chain_[4] = 0xc3d2e1f0;\r\n this.inbuf_ = 0;\r\n this.total_ = 0;\r\n }\r\n /**\r\n * Internal compress helper function.\r\n * @param buf Block to compress.\r\n * @param offset Offset of the block in the buffer.\r\n * @private\r\n */\r\n compress_(buf, offset) {\r\n if (!offset) {\r\n offset = 0;\r\n }\r\n const W = this.W_;\r\n // get 16 big endian words\r\n if (typeof buf === 'string') {\r\n for (let i = 0; i < 16; i++) {\r\n // TODO(user): [bug 8140122] Recent versions of Safari for Mac OS and iOS\r\n // have a bug that turns the post-increment ++ operator into pre-increment\r\n // during JIT compilation. We have code that depends heavily on SHA-1 for\r\n // correctness and which is affected by this bug, so I've removed all uses\r\n // of post-increment ++ in which the result value is used. We can revert\r\n // this change once the Safari bug\r\n // (https://bugs.webkit.org/show_bug.cgi?id=109036) has been fixed and\r\n // most clients have been updated.\r\n W[i] =\r\n (buf.charCodeAt(offset) << 24) |\r\n (buf.charCodeAt(offset + 1) << 16) |\r\n (buf.charCodeAt(offset + 2) << 8) |\r\n buf.charCodeAt(offset + 3);\r\n offset += 4;\r\n }\r\n }\r\n else {\r\n for (let i = 0; i < 16; i++) {\r\n W[i] =\r\n (buf[offset] << 24) |\r\n (buf[offset + 1] << 16) |\r\n (buf[offset + 2] << 8) |\r\n buf[offset + 3];\r\n offset += 4;\r\n }\r\n }\r\n // expand to 80 words\r\n for (let i = 16; i < 80; i++) {\r\n const t = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\r\n W[i] = ((t << 1) | (t >>> 31)) & 0xffffffff;\r\n }\r\n let a = this.chain_[0];\r\n let b = this.chain_[1];\r\n let c = this.chain_[2];\r\n let d = this.chain_[3];\r\n let e = this.chain_[4];\r\n let f, k;\r\n // TODO(user): Try to unroll this loop to speed up the computation.\r\n for (let i = 0; i < 80; i++) {\r\n if (i < 40) {\r\n if (i < 20) {\r\n f = d ^ (b & (c ^ d));\r\n k = 0x5a827999;\r\n }\r\n else {\r\n f = b ^ c ^ d;\r\n k = 0x6ed9eba1;\r\n }\r\n }\r\n else {\r\n if (i < 60) {\r\n f = (b & c) | (d & (b | c));\r\n k = 0x8f1bbcdc;\r\n }\r\n else {\r\n f = b ^ c ^ d;\r\n k = 0xca62c1d6;\r\n }\r\n }\r\n const t = (((a << 5) | (a >>> 27)) + f + e + k + W[i]) & 0xffffffff;\r\n e = d;\r\n d = c;\r\n c = ((b << 30) | (b >>> 2)) & 0xffffffff;\r\n b = a;\r\n a = t;\r\n }\r\n this.chain_[0] = (this.chain_[0] + a) & 0xffffffff;\r\n this.chain_[1] = (this.chain_[1] + b) & 0xffffffff;\r\n this.chain_[2] = (this.chain_[2] + c) & 0xffffffff;\r\n this.chain_[3] = (this.chain_[3] + d) & 0xffffffff;\r\n this.chain_[4] = (this.chain_[4] + e) & 0xffffffff;\r\n }\r\n update(bytes, length) {\r\n // TODO(johnlenz): tighten the function signature and remove this check\r\n if (bytes == null) {\r\n return;\r\n }\r\n if (length === undefined) {\r\n length = bytes.length;\r\n }\r\n const lengthMinusBlock = length - this.blockSize;\r\n let n = 0;\r\n // Using local instead of member variables gives ~5% speedup on Firefox 16.\r\n const buf = this.buf_;\r\n let inbuf = this.inbuf_;\r\n // The outer while loop should execute at most twice.\r\n while (n < length) {\r\n // When we have no data in the block to top up, we can directly process the\r\n // input buffer (assuming it contains sufficient data). This gives ~25%\r\n // speedup on Chrome 23 and ~15% speedup on Firefox 16, but requires that\r\n // the data is provided in large chunks (or in multiples of 64 bytes).\r\n if (inbuf === 0) {\r\n while (n <= lengthMinusBlock) {\r\n this.compress_(bytes, n);\r\n n += this.blockSize;\r\n }\r\n }\r\n if (typeof bytes === 'string') {\r\n while (n < length) {\r\n buf[inbuf] = bytes.charCodeAt(n);\r\n ++inbuf;\r\n ++n;\r\n if (inbuf === this.blockSize) {\r\n this.compress_(buf);\r\n inbuf = 0;\r\n // Jump to the outer loop so we use the full-block optimization.\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n while (n < length) {\r\n buf[inbuf] = bytes[n];\r\n ++inbuf;\r\n ++n;\r\n if (inbuf === this.blockSize) {\r\n this.compress_(buf);\r\n inbuf = 0;\r\n // Jump to the outer loop so we use the full-block optimization.\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n this.inbuf_ = inbuf;\r\n this.total_ += length;\r\n }\r\n /** @override */\r\n digest() {\r\n const digest = [];\r\n let totalBits = this.total_ * 8;\r\n // Add pad 0x80 0x00*.\r\n if (this.inbuf_ < 56) {\r\n this.update(this.pad_, 56 - this.inbuf_);\r\n }\r\n else {\r\n this.update(this.pad_, this.blockSize - (this.inbuf_ - 56));\r\n }\r\n // Add # bits.\r\n for (let i = this.blockSize - 1; i >= 56; i--) {\r\n this.buf_[i] = totalBits & 255;\r\n totalBits /= 256; // Don't use bit-shifting here!\r\n }\r\n this.compress_(this.buf_);\r\n let n = 0;\r\n for (let i = 0; i < 5; i++) {\r\n for (let j = 24; j >= 0; j -= 8) {\r\n digest[n] = (this.chain_[i] >> j) & 255;\r\n ++n;\r\n }\r\n }\r\n return digest;\r\n }\r\n}\n\n/**\r\n * Helper to make a Subscribe function (just like Promise helps make a\r\n * Thenable).\r\n *\r\n * @param executor Function which can make calls to a single Observer\r\n * as a proxy.\r\n * @param onNoObservers Callback when count of Observers goes to zero.\r\n */\r\nfunction createSubscribe(executor, onNoObservers) {\r\n const proxy = new ObserverProxy(executor, onNoObservers);\r\n return proxy.subscribe.bind(proxy);\r\n}\r\n/**\r\n * Implement fan-out for any number of Observers attached via a subscribe\r\n * function.\r\n */\r\nclass ObserverProxy {\r\n /**\r\n * @param executor Function which can make calls to a single Observer\r\n * as a proxy.\r\n * @param onNoObservers Callback when count of Observers goes to zero.\r\n */\r\n constructor(executor, onNoObservers) {\r\n this.observers = [];\r\n this.unsubscribes = [];\r\n this.observerCount = 0;\r\n // Micro-task scheduling by calling task.then().\r\n this.task = Promise.resolve();\r\n this.finalized = false;\r\n this.onNoObservers = onNoObservers;\r\n // Call the executor asynchronously so subscribers that are called\r\n // synchronously after the creation of the subscribe function\r\n // can still receive the very first value generated in the executor.\r\n this.task\r\n .then(() => {\r\n executor(this);\r\n })\r\n .catch(e => {\r\n this.error(e);\r\n });\r\n }\r\n next(value) {\r\n this.forEachObserver((observer) => {\r\n observer.next(value);\r\n });\r\n }\r\n error(error) {\r\n this.forEachObserver((observer) => {\r\n observer.error(error);\r\n });\r\n this.close(error);\r\n }\r\n complete() {\r\n this.forEachObserver((observer) => {\r\n observer.complete();\r\n });\r\n this.close();\r\n }\r\n /**\r\n * Subscribe function that can be used to add an Observer to the fan-out list.\r\n *\r\n * - We require that no event is sent to a subscriber sychronously to their\r\n * call to subscribe().\r\n */\r\n subscribe(nextOrObserver, error, complete) {\r\n let observer;\r\n if (nextOrObserver === undefined &&\r\n error === undefined &&\r\n complete === undefined) {\r\n throw new Error('Missing Observer.');\r\n }\r\n // Assemble an Observer object when passed as callback functions.\r\n if (implementsAnyMethods(nextOrObserver, [\r\n 'next',\r\n 'error',\r\n 'complete'\r\n ])) {\r\n observer = nextOrObserver;\r\n }\r\n else {\r\n observer = {\r\n next: nextOrObserver,\r\n error,\r\n complete\r\n };\r\n }\r\n if (observer.next === undefined) {\r\n observer.next = noop;\r\n }\r\n if (observer.error === undefined) {\r\n observer.error = noop;\r\n }\r\n if (observer.complete === undefined) {\r\n observer.complete = noop;\r\n }\r\n const unsub = this.unsubscribeOne.bind(this, this.observers.length);\r\n // Attempt to subscribe to a terminated Observable - we\r\n // just respond to the Observer with the final error or complete\r\n // event.\r\n if (this.finalized) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(() => {\r\n try {\r\n if (this.finalError) {\r\n observer.error(this.finalError);\r\n }\r\n else {\r\n observer.complete();\r\n }\r\n }\r\n catch (e) {\r\n // nothing\r\n }\r\n return;\r\n });\r\n }\r\n this.observers.push(observer);\r\n return unsub;\r\n }\r\n // Unsubscribe is synchronous - we guarantee that no events are sent to\r\n // any unsubscribed Observer.\r\n unsubscribeOne(i) {\r\n if (this.observers === undefined || this.observers[i] === undefined) {\r\n return;\r\n }\r\n delete this.observers[i];\r\n this.observerCount -= 1;\r\n if (this.observerCount === 0 && this.onNoObservers !== undefined) {\r\n this.onNoObservers(this);\r\n }\r\n }\r\n forEachObserver(fn) {\r\n if (this.finalized) {\r\n // Already closed by previous event....just eat the additional values.\r\n return;\r\n }\r\n // Since sendOne calls asynchronously - there is no chance that\r\n // this.observers will become undefined.\r\n for (let i = 0; i < this.observers.length; i++) {\r\n this.sendOne(i, fn);\r\n }\r\n }\r\n // Call the Observer via one of it's callback function. We are careful to\r\n // confirm that the observe has not been unsubscribed since this asynchronous\r\n // function had been queued.\r\n sendOne(i, fn) {\r\n // Execute the callback asynchronously\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(() => {\r\n if (this.observers !== undefined && this.observers[i] !== undefined) {\r\n try {\r\n fn(this.observers[i]);\r\n }\r\n catch (e) {\r\n // Ignore exceptions raised in Observers or missing methods of an\r\n // Observer.\r\n // Log error to console. b/31404806\r\n if (typeof console !== 'undefined' && console.error) {\r\n console.error(e);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n close(err) {\r\n if (this.finalized) {\r\n return;\r\n }\r\n this.finalized = true;\r\n if (err !== undefined) {\r\n this.finalError = err;\r\n }\r\n // Proxy is no longer needed - garbage collect references\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(() => {\r\n this.observers = undefined;\r\n this.onNoObservers = undefined;\r\n });\r\n }\r\n}\r\n/** Turn synchronous function into one called asynchronously. */\r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\nfunction async(fn, onError) {\r\n return (...args) => {\r\n Promise.resolve(true)\r\n .then(() => {\r\n fn(...args);\r\n })\r\n .catch((error) => {\r\n if (onError) {\r\n onError(error);\r\n }\r\n });\r\n };\r\n}\r\n/**\r\n * Return true if the object passed in implements any of the named methods.\r\n */\r\nfunction implementsAnyMethods(obj, methods) {\r\n if (typeof obj !== 'object' || obj === null) {\r\n return false;\r\n }\r\n for (const method of methods) {\r\n if (method in obj && typeof obj[method] === 'function') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction noop() {\r\n // do nothing\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Check to make sure the appropriate number of arguments are provided for a public function.\r\n * Throws an error if it fails.\r\n *\r\n * @param fnName The function name\r\n * @param minCount The minimum number of arguments to allow for the function call\r\n * @param maxCount The maximum number of argument to allow for the function call\r\n * @param argCount The actual number of arguments provided.\r\n */\r\nconst validateArgCount = function (fnName, minCount, maxCount, argCount) {\r\n let argError;\r\n if (argCount < minCount) {\r\n argError = 'at least ' + minCount;\r\n }\r\n else if (argCount > maxCount) {\r\n argError = maxCount === 0 ? 'none' : 'no more than ' + maxCount;\r\n }\r\n if (argError) {\r\n const error = fnName +\r\n ' failed: Was called with ' +\r\n argCount +\r\n (argCount === 1 ? ' argument.' : ' arguments.') +\r\n ' Expects ' +\r\n argError +\r\n '.';\r\n throw new Error(error);\r\n }\r\n};\r\n/**\r\n * Generates a string to prefix an error message about failed argument validation\r\n *\r\n * @param fnName The function name\r\n * @param argName The name of the argument\r\n * @return The prefix to add to the error thrown for validation.\r\n */\r\nfunction errorPrefix(fnName, argName) {\r\n return `${fnName} failed: ${argName} argument `;\r\n}\r\n/**\r\n * @param fnName\r\n * @param argumentNumber\r\n * @param namespace\r\n * @param optional\r\n */\r\nfunction validateNamespace(fnName, namespace, optional) {\r\n if (optional && !namespace) {\r\n return;\r\n }\r\n if (typeof namespace !== 'string') {\r\n //TODO: I should do more validation here. We only allow certain chars in namespaces.\r\n throw new Error(errorPrefix(fnName, 'namespace') + 'must be a valid firebase namespace.');\r\n }\r\n}\r\nfunction validateCallback(fnName, argumentName, \r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\ncallback, optional) {\r\n if (optional && !callback) {\r\n return;\r\n }\r\n if (typeof callback !== 'function') {\r\n throw new Error(errorPrefix(fnName, argumentName) + 'must be a valid function.');\r\n }\r\n}\r\nfunction validateContextObject(fnName, argumentName, context, optional) {\r\n if (optional && !context) {\r\n return;\r\n }\r\n if (typeof context !== 'object' || context === null) {\r\n throw new Error(errorPrefix(fnName, argumentName) + 'must be a valid context object.');\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// Code originally came from goog.crypt.stringToUtf8ByteArray, but for some reason they\r\n// automatically replaced '\\r\\n' with '\\n', and they didn't handle surrogate pairs,\r\n// so it's been modified.\r\n// Note that not all Unicode characters appear as single characters in JavaScript strings.\r\n// fromCharCode returns the UTF-16 encoding of a character - so some Unicode characters\r\n// use 2 characters in Javascript. All 4-byte UTF-8 characters begin with a first\r\n// character in the range 0xD800 - 0xDBFF (the first character of a so-called surrogate\r\n// pair).\r\n// See http://www.ecma-international.org/ecma-262/5.1/#sec-15.1.3\r\n/**\r\n * @param {string} str\r\n * @return {Array}\r\n */\r\nconst stringToByteArray = function (str) {\r\n const out = [];\r\n let p = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n let c = str.charCodeAt(i);\r\n // Is this the lead surrogate in a surrogate pair?\r\n if (c >= 0xd800 && c <= 0xdbff) {\r\n const high = c - 0xd800; // the high 10 bits.\r\n i++;\r\n assert(i < str.length, 'Surrogate pair missing trail surrogate.');\r\n const low = str.charCodeAt(i) - 0xdc00; // the low 10 bits.\r\n c = 0x10000 + (high << 10) + low;\r\n }\r\n if (c < 128) {\r\n out[p++] = c;\r\n }\r\n else if (c < 2048) {\r\n out[p++] = (c >> 6) | 192;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else if (c < 65536) {\r\n out[p++] = (c >> 12) | 224;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else {\r\n out[p++] = (c >> 18) | 240;\r\n out[p++] = ((c >> 12) & 63) | 128;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n }\r\n return out;\r\n};\r\n/**\r\n * Calculate length without actually converting; useful for doing cheaper validation.\r\n * @param {string} str\r\n * @return {number}\r\n */\r\nconst stringLength = function (str) {\r\n let p = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n const c = str.charCodeAt(i);\r\n if (c < 128) {\r\n p++;\r\n }\r\n else if (c < 2048) {\r\n p += 2;\r\n }\r\n else if (c >= 0xd800 && c <= 0xdbff) {\r\n // Lead surrogate of a surrogate pair. The pair together will take 4 bytes to represent.\r\n p += 4;\r\n i++; // skip trail surrogate.\r\n }\r\n else {\r\n p += 3;\r\n }\r\n }\r\n return p;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2022 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Copied from https://stackoverflow.com/a/2117523\r\n * Generates a new uuid.\r\n * @public\r\n */\r\nconst uuidv4 = function () {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\r\n const r = (Math.random() * 16) | 0, v = c === 'x' ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n};\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * The amount of milliseconds to exponentially increase.\r\n */\r\nconst DEFAULT_INTERVAL_MILLIS = 1000;\r\n/**\r\n * The factor to backoff by.\r\n * Should be a number greater than 1.\r\n */\r\nconst DEFAULT_BACKOFF_FACTOR = 2;\r\n/**\r\n * The maximum milliseconds to increase to.\r\n *\r\n *
Visible for testing\r\n */\r\nconst MAX_VALUE_MILLIS = 4 * 60 * 60 * 1000; // Four hours, like iOS and Android.\r\n/**\r\n * The percentage of backoff time to randomize by.\r\n * See\r\n * http://go/safe-client-behavior#step-1-determine-the-appropriate-retry-interval-to-handle-spike-traffic\r\n * for context.\r\n *\r\n *
Visible for testing\r\n */\r\nconst RANDOM_FACTOR = 0.5;\r\n/**\r\n * Based on the backoff method from\r\n * https://github.com/google/closure-library/blob/master/closure/goog/math/exponentialbackoff.js.\r\n * Extracted here so we don't need to pass metadata and a stateful ExponentialBackoff object around.\r\n */\r\nfunction calculateBackoffMillis(backoffCount, intervalMillis = DEFAULT_INTERVAL_MILLIS, backoffFactor = DEFAULT_BACKOFF_FACTOR) {\r\n // Calculates an exponentially increasing value.\r\n // Deviation: calculates value from count and a constant interval, so we only need to save value\r\n // and count to restore state.\r\n const currBaseValue = intervalMillis * Math.pow(backoffFactor, backoffCount);\r\n // A random \"fuzz\" to avoid waves of retries.\r\n // Deviation: randomFactor is required.\r\n const randomWait = Math.round(\r\n // A fraction of the backoff value to add/subtract.\r\n // Deviation: changes multiplication order to improve readability.\r\n RANDOM_FACTOR *\r\n currBaseValue *\r\n // A random float (rounded to int by Math.round above) in the range [-1, 1]. Determines\r\n // if we add or subtract.\r\n (Math.random() - 0.5) *\r\n 2);\r\n // Limits backoff to max to avoid effectively permanent backoff.\r\n return Math.min(MAX_VALUE_MILLIS, currBaseValue + randomWait);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Provide English ordinal letters after a number\r\n */\r\nfunction ordinal(i) {\r\n if (!Number.isFinite(i)) {\r\n return `${i}`;\r\n }\r\n return i + indicator(i);\r\n}\r\nfunction indicator(i) {\r\n i = Math.abs(i);\r\n const cent = i % 100;\r\n if (cent >= 10 && cent <= 20) {\r\n return 'th';\r\n }\r\n const dec = i % 10;\r\n if (dec === 1) {\r\n return 'st';\r\n }\r\n if (dec === 2) {\r\n return 'nd';\r\n }\r\n if (dec === 3) {\r\n return 'rd';\r\n }\r\n return 'th';\r\n}\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction getModularInstance(service) {\r\n if (service && service._delegate) {\r\n return service._delegate;\r\n }\r\n else {\r\n return service;\r\n }\r\n}\n\nexport { CONSTANTS, Deferred, ErrorFactory, FirebaseError, MAX_VALUE_MILLIS, RANDOM_FACTOR, Sha1, areCookiesEnabled, assert, assertionError, async, base64, base64Decode, base64Encode, base64urlEncodeWithoutPadding, calculateBackoffMillis, contains, createMockUserToken, createSubscribe, decode, deepCopy, deepEqual, deepExtend, errorPrefix, extractQuerystring, getDefaultAppConfig, getDefaultEmulatorHost, getDefaultEmulatorHostnameAndPort, getDefaults, getExperimentalSetting, getGlobal, getModularInstance, getUA, isAdmin, isBrowser, isBrowserExtension, isElectron, isEmpty, isIE, isIndexedDBAvailable, isMobileCordova, isNode, isNodeSdk, isReactNative, isSafari, isUWP, isValidFormat, isValidTimestamp, issuedAtTime, jsonEval, map, ordinal, promiseWithTimeout, querystring, querystringDecode, safeGet, stringLength, stringToByteArray, stringify, uuidv4, validateArgCount, validateCallback, validateContextObject, validateIndexedDBOpenable, validateNamespace };\n//# sourceMappingURL=index.esm2017.js.map\n","import { PACKAGE_VERSION } from './version.js';\n\n// Name of this application, used in the User-Agent.\nexport const APP_NAME = 'TinodeWeb/' + (PACKAGE_VERSION || '0.21');\n\n// API key. Use https://github.com/tinode/chat/tree/master/keygen to generate your own\nexport const API_KEY = 'AQEAAAABAAD_rAp4DJh05a1HAwFT3A6K';\n\n// The array of possible hosts to connect to.\nexport const KNOWN_HOSTS = {hosted: 'web.tinode.co', local: 'localhost:6060'};\n\n// Default host name and port to connect to.\nexport const DEFAULT_HOST = KNOWN_HOSTS.hosted;\n\n// Enable console logging.\nexport const LOGGING_ENABLED = true;\n\n// Minimum time between two keypress notifications, milliseconds.\nexport const KEYPRESS_DELAY = 3_000;\n// Delay before sending a read notification, milliseconds.\nexport const READ_DELAY = 1_500;\n\n// The default shortest allowed tag length. Matches the value on the server.\nexport const MIN_TAG_LENGTH = 2;\n// The default greatest allowed tag length. Matches the value on the server.\nexport const MAX_TAG_LENGTH = 96;\n// The default maximum number of tags allowed. Matches the value on the server.\nexport const MAX_TAG_COUNT = 16;\n\n// Access mode for P2P subscriptions initiated by the current user.\nexport const DEFAULT_P2P_ACCESS_MODE = 'JRWPS';\n// Access mode for new group topics created by the current user.\nexport const NEW_GRP_ACCESS_MODE = 'JRWPSAO';\n// Access mode for a channel.\nexport const CHANNEL_ACCESS_MODE = 'JR';\n\n// Access mode for no access.\nexport const NO_ACCESS_MODE = 'N';\n\n// Mediaquery breakpoint between desktop and mobile, in px. Should match the value\n// in @media (max-size: 640px) in base.css\nexport const MEDIA_BREAKPOINT = 640;\n// Size of css 'rem' unit in pixels. Default 1rem = 10pt = 13px.\nexport const REM_SIZE = 13;\n\n// Size of the avatar image: when image dimensions are greater or the image is not square, it's resized to\n// a square of this size or less.\nexport const AVATAR_SIZE = 384;\n\n// Maximum size of an avatar in bytes for sending in-band. Bigger avatars will be sent out of band (as uploads).\nexport const MAX_AVATAR_BYTES = 4096;\n\n// Size of the broken_image shown in MessagesView\nexport const BROKEN_IMAGE_SIZE = 32;\n\n// Size of video preview when dimensions are missing.\nexport const NO_DIMENSIONS_VIDEO = 128;\n\n// Number of chat messages to fetch in one call.\nexport const MESSAGES_PAGE = 24;\n\n// Default maximum in-band (included directly into the message) attachment size which fits into\n// a message of 256K in size. Used when the server-provided value is unavailable. The actual\n// binary size of the attachment should be smaller due to base64 encoding expansion and some overhead,\n// for instance 1024 bytes.\n// Increase this limit to a greater value in production, if desired. Also increase\n// max_message_size in the server config.\nexport const MAX_INBAND_ATTACHMENT_SIZE = 262_144;\n\n// Default absolute maximum attachment size to be used with the server = 8MB.\n// Used when the server-provided value is unavailable. Increase to something like 100MB in production.\nexport const MAX_EXTERN_ATTACHMENT_SIZE = 1 << 23;\n\n// Maximum allowed linear dimension (pixels) of an image sent inline. Larger images will be shrunk\n// to make the larger dimension fit under this size. You may want to adjust it to 1600 or\n// 2400 for production.\nexport const MAX_IMAGE_DIM = 1024;\n\n// Linear dimensions of image preview: shrink image under this size for previews.\nexport const IMAGE_PREVIEW_DIM = 64;\n\n// Linear dimensions of video screencapture: shrink image under this size for previews.\nexport const VIDEO_PREVIEW_DIM = 96;\n\n// Linear dimensions of image thumbnail: shrink image under this size for thumbnails in reply quote previews.\nexport const IMAGE_THUMBNAIL_DIM = 36;\n// Width of video thumbnail: allow it to be wider, but not taller. Use IMAGE_THUMBNAIL_DIM for height.\nexport const VIDEO_THUMBNAIL_WIDTH = 48;\n\n// Maximum number of online users to be shown in a topic title bar. Others will be\n// hidden under \"+X more\"\nexport const MAX_ONLINE_IN_TOPIC = 4;\n\n// Maximum length of user name, topic title, and private comment.\nexport const MAX_TITLE_LENGTH = 60;\n// Maximum length of topic description.\nexport const MAX_TOPIC_DESCRIPTION_LENGTH = 360;\n// Maximum length of user name when displaying a video call.\nexport const MAX_PEER_TITLE_LENGTH = 20;\n\n// Length of message previews in chat list, in characters.\nexport const MESSAGE_PREVIEW_LENGTH = 80;\n\n// Length of a quote in quoted reply (for outgoing messages).\nexport const QUOTED_REPLY_LENGTH = 30;\n// Length of a preview of a forwarded message.\nexport const FORWARDED_PREVIEW_LENGTH = 84;\n// Length of preview for a message being edited.\nexport const EDIT_PREVIEW_LENGTH = 48;\n\n// Minimum duration of an audio recording in milliseconds (2 sec).\nexport const MIN_DURATION = 2_000;\n// Maximum duration of an audio recording in milliseconds (10 min).\nexport const MAX_DURATION = 600_000;\n\n// Link for \"Contact Us\".\nexport const LINK_CONTACT_US = 'mailto:support@tinode.co';\n\n// Link to Privacy Policy.\nexport const LINK_PRIVACY_POLICY = 'https://tinode.co/privacy.html';\n\n// Link to Terms of Service.\nexport const LINK_TERMS_OF_SERVICE = 'https://tinode.co/terms.html';\n\n","// Video call states.\nexport const CALL_STATE_NONE = 0;\nexport const CALL_STATE_OUTGOING_INITATED = 1;\nexport const CALL_STATE_INCOMING_RECEIVED = 2;\nexport const CALL_STATE_IN_PROGRESS = 3;\n\n// Video call message headers representing call state.\nexport const CALL_HEAD_STARTED = 'started';\n","// File and image helper functions.\n\n// Supported image MIME types and corresponding file extensions.\nexport const SUPPORTED_IMAGE_FORMATS = ['image/jpeg', 'image/gif', 'image/png', 'image/svg', 'image/svg+xml'];\nexport const MIME_EXTENSIONS = ['jpg', 'gif', 'png', 'svg', 'svg'];\n\n// Get an URL from a theCard photo: either create a data: URL or return reference URL.\nexport function makeImageUrl(photo) {\n if (photo && typeof photo == 'object') {\n if (photo.ref) {\n return photo.ref\n }\n if (photo.data && photo.type) {\n const mime = photo.type.startsWith('image/') ? photo.type : ('image/' + photo.type);\n return 'data:' + mime + ';base64,' + photo.data;\n }\n }\n return null;\n}\n\n// Calculate linear dimensions for scaling image down to fit under a certain size.\n// Returns an object which contains destination sizes, source sizes, and offsets\n// into source (when making square images).\nexport function fitImageSize(width, height, maxWidth, maxHeight, forceSquare) {\n // Sanitize input\n width = width | 0;\n height = height | 0;\n maxWidth = maxWidth | 0;\n maxHeight = maxHeight | 0;\n\n if (width <= 0 || height <= 0 || maxWidth <= 0 || maxHeight <= 0) {\n return null;\n }\n\n if (forceSquare) {\n maxWidth = maxHeight = Math.min(maxWidth, maxHeight);\n }\n\n const scale = Math.min(\n Math.min(width, maxWidth) / width,\n Math.min(height, maxHeight) / height\n );\n\n const size = {\n dstWidth: (width * scale) | 0,\n dstHeight: (height * scale) | 0,\n };\n\n if (forceSquare) {\n // Also calculate parameters for making the image square.\n size.dstWidth = size.dstHeight = Math.min(size.dstWidth, size.dstHeight);\n size.srcWidth = size.srcHeight = Math.min(width, height);\n size.xoffset = ((width - size.srcWidth) / 2) | 0;\n size.yoffset = ((height - size.srcWidth) / 2) | 0;\n } else {\n size.xoffset = size.yoffset = 0;\n size.srcWidth = width;\n size.srcHeight = height;\n }\n return size;\n}\n\n// Ensure file's extension matches mime content type\nexport function fileNameForMime(fname, mime) {\n const idx = SUPPORTED_IMAGE_FORMATS.indexOf(mime);\n if (idx < 0 || !fname) {\n // Unknown mime or empty name.\n return fname;\n }\n const ext = MIME_EXTENSIONS[idx];\n\n const at = fname.lastIndexOf('.');\n if (at >= 0) {\n fname = fname.substring(0, at);\n }\n return fname + '.' + ext;\n}\n\n// Scale uploaded image to fit under certain dimensions and byte size, optionally constraining to a square.\n// Returns a promise which is resolven on success or rejected on failure.\nexport function imageScaled(fileOrBlob, maxWidth, maxHeight, maxSize, forceSquare) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = 'Anonymous';\n img.onerror = function(err) {\n reject(new Error(\"Image format unrecognized\"));\n }\n img.onload = async function() {\n // Once the image is loaded, the URL is no longer needed.\n URL.revokeObjectURL(img.src);\n\n // Calculate the desired image dimensions.\n const dim = fitImageSize(img.width, img.height, maxWidth, maxHeight, forceSquare);\n if (!dim) {\n reject(new Error(\"Invalid image\"));\n return;\n }\n let canvas = document.createElement('canvas');\n canvas.width = dim.dstWidth;\n canvas.height = dim.dstHeight;\n let ctx = canvas.getContext('2d');\n ctx.imageSmoothingEnabled = true;\n ctx.drawImage(img, dim.xoffset, dim.yoffset, dim.srcWidth, dim.srcHeight,\n 0, 0, dim.dstWidth, dim.dstHeight);\n\n const mime = SUPPORTED_IMAGE_FORMATS.includes(fileOrBlob.type) ? fileOrBlob.type : 'image/jpeg';\n // Generate blob to check size of the image.\n let blob = await new Promise(resolve => canvas.toBlob(resolve, mime));\n if (!blob) {\n reject(new Error(\"Unsupported image format\"));\n return;\n }\n // Ensure the image is not too large. Shrink the image keeping the aspect ratio.\n // Do nothing if maxsize is <= 0.\n while (maxSize > 0 && blob.length > maxSize) {\n dim.dstWidth = (dim.dstWidth * 0.70710678118) | 0;\n dim.dstHeight = (dim.dstHeight * 0.70710678118) | 0;\n canvas.width = dim.dstWidth;\n canvas.height = dim.dstHeight;\n ctx = canvas.getContext('2d');\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.drawImage(img, dim.xoffset, dim.yoffset, dim.srcWidth, dim.srcHeight,\n 0, 0, dim.dstWidth, dim.dstHeight);\n blob = await new Promise(resolve => canvas.toBlob(resolve, mime));\n }\n\n canvas = null;\n resolve({mime: mime, blob: blob, width: dim.dstWidth, height: dim.dstHeight, name: fileNameForMime(fileOrBlob.name, mime)});\n };\n img.src = URL.createObjectURL(fileOrBlob);\n });\n}\n\n// Scale and crop image according to specified dimensions.\n// The coordinates are in unscaled image pixels, i.e. cut the rectangle first then scale it.\n// returns a promise.\nexport function imageCrop(mime, objURL, left, top, width, height, scale) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = 'Anonymous';\n img.onerror = _ => {\n reject(new Error(\"Image format unrecognized\"));\n };\n img.onload = _ => {\n // Once the image is loaded, the URL is no longer needed.\n URL.revokeObjectURL(img.src);\n\n let canvas = document.createElement('canvas');\n canvas.width = width * scale;\n canvas.height = height * scale;\n let ctx = canvas.getContext('2d');\n ctx.imageSmoothingEnabled = true;\n ctx.drawImage(img, left, top, width, height, 0, 0, canvas.width, canvas.height);\n\n mime = SUPPORTED_IMAGE_FORMATS.includes(mime) ? mime : 'image/jpeg';\n // Generate blob to check size of the image.\n canvas.toBlob((blob) => {\n // Allow GC.\n canvas = null;\n if (blob) {\n resolve({mime: mime, blob: blob, width: width, height: height});\n } else {\n reject(new Error(\"Unsupported image format\"));\n }\n }, mime);\n };\n img.src = objURL;\n });\n}\n\n// Convert file to base64 string.\nexport function fileToBase64(file) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onerror = _ => {\n reject(reader.error);\n };\n reader.onload = _ => {\n resolve({mime: file.type, bits: reader.result.split(',')[1], name: file.name});\n };\n reader.readAsDataURL(file);\n });\n}\n\n// Convert Blob to base64 string. Returns a promise resolved with the base64 string and mime.\nexport function blobToBase64(blob) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onerror = _ => {\n reject(reader.error);\n };\n reader.onload = _ => {\n resolve({mime: blob.type, bits: reader.result.split(',')[1]});\n };\n reader.readAsDataURL(blob);\n });\n}\n\n// File pasted from the clipboard. It's either an inline image or a file attachment.\nexport function filePasted(event, onImageSuccess, onAttachmentSuccess, onError) {\n const items = (event.clipboardData || event.originalEvent.clipboardData || {}).items;\n if (!items || !items.length) {\n return false;\n }\n\n for (let i in items) {\n const item = items[i];\n if (item.kind === 'file') {\n const file = item.getAsFile();\n if (!file) {\n console.error(\"Failed to get file object from pasted file item\", item.kind, item.type);\n onError(\"Failed to get file object from pasted file item\");\n continue;\n }\n if (file.type && file.type.split('/')[0] == 'image') {\n onImageSuccess(file);\n } else {\n onAttachmentSuccess(file);\n }\n // Indicate that the pasted data contains a file.\n return true;\n }\n }\n // No file found.\n return false;\n}\n\n// Get mime type from data URL header.\nexport function getMimeType(header) {\n var mime = /^data:(image\\/[-+a-z0-9.]+);base64/.exec(header);\n return (mime && mime.length > 1) ? mime[1] : null;\n}\n\n// Given length of a binary object in bytes, calculate the length after\n// base64 encoding.\nexport function base64EncodedLen(n) {\n return Math.floor((n + 2) / 3) * 4;\n}\n\n// Given length of a base64-encoded object, calculate decoded size of the\n// pbject in bytes.\nexport function base64DecodedLen(n) {\n return Math.floor(n / 4) * 3;\n}\n\n// Re-encode string to standard base64 encoding with padding.\n// The string may be base64-URL encoded without the padding.\nexport function base64ReEncode(str) {\n if (str) {\n str = str.replace(/-/g, '+').replace(/_/g, '/');\n try {\n str = btoa(atob(str));\n } catch(err) {\n console.error(\"Failed to base64 re-encode string.\", err);\n str = null;\n }\n }\n return str;\n}\n\n// Convert a base64 encoded string with the provided mime type into a Blob.\nexport function base64ToBlob(str, mime) {\n if (!str) {\n return null;\n }\n\n try {\n // Make blob.\n const bin = atob(str);\n const length = bin.length;\n const buf = new ArrayBuffer(length);\n const arr = new Uint8Array(buf);\n for (let i = 0; i < length; i++) {\n arr[i] = bin.charCodeAt(i);\n }\n\n return new Blob([buf], { type: mime });\n } catch(err) {\n console.error(\"Failed to convert base64 to blob: \", err);\n }\n\n return null;\n}\n\nexport function intArrayToBase64(arr) {\n if (!Array.isArray(arr)) {\n return null;\n }\n try {\n let bin = '';\n new Uint8Array(arr).forEach(b => bin += String.fromCharCode(b));\n return window.btoa(bin);\n } catch (err) {}\n return null;\n}\n\nexport function base64ToIntArray(b64) {\n const arr = [];\n try {\n const bin = window.atob(b64);\n [...bin].forEach(c => {\n arr.push(c.charCodeAt(0));\n });\n return arr;\n } catch (err) {}\n return null;\n}\n","import React from 'react';\nimport { defineMessages } from 'react-intl';\n\nimport { Drafty } from 'tinode-sdk';\n\nimport AudioPlayer from '../widgets/audio-player.jsx'\nimport CallMessage from '../widgets/call-message.jsx'\nimport CallStatus from '../widgets/call-status.jsx';\nimport InlineVideo from '../widgets/inline-video.jsx';\nimport LazyImage from '../widgets/lazy-image.jsx'\nimport UploadingImage from '../widgets/uploading-image.jsx'\n\nimport { BROKEN_IMAGE_SIZE, IMAGE_THUMBNAIL_DIM, NO_DIMENSIONS_VIDEO, REM_SIZE, VIDEO_THUMBNAIL_WIDTH } from '../config.js';\nimport { base64ToBlob, blobToBase64, fitImageSize, imageScaled } from './blob-helpers.js';\nimport { idToColorClass, secondsToTime, shortenFileName } from './strformat.js';\nimport { cancelablePromise, sanitizeUrlForMime } from './utils.js';\n\nconst messages = defineMessages({\n drafty_form: {\n id: 'drafty_form',\n defaultMessage: 'Form: ',\n description: 'Comment for form in Drafty'\n },\n drafty_attachment: {\n id: 'drafty_attachment',\n defaultMessage: 'Attachment',\n description: 'Comment for attachment in Drafty'\n },\n drafty_image: {\n id: 'drafty_image',\n defaultMessage: 'Picture',\n description: 'Comment for embedded images in Drafty'\n },\n drafty_video: {\n id: 'drafty_video',\n defaultMessage: 'Video recording',\n description: 'Comment for videos embedded in Drafty'\n },\n drafty_unknown: {\n id: 'drafty_unknown',\n defaultMessage: 'Unsupported',\n description: 'Unsupported entity in drafty'\n }\n});\n\n// The main Drafty formatter: converts Drafty elements into React classes. 'this' is set by the caller.\n// 'this' must contain:\n// viewportWidth:\n// authorizeURL:\n// onImagePreview:\n// onVideoPreview:\n// onFormButtonClick:\n// onQuoteClick:\nexport function fullFormatter(style, data, values, key, stack) {\n if (stack.includes('QQ')) {\n return quoteFormatter.call(this, style, data, values, key);\n }\n\n if (!style) {\n // Unformatted.\n return values;\n }\n\n let el = Drafty.tagName(style);\n let attr = Drafty.attrValue(style, data) || {};\n attr.key = key;\n switch (style) {\n case 'AU':\n // Show audio player.\n if (attr.src) {\n attr.src = this.authorizeURL(sanitizeUrlForMime(attr.src, 'audio'));\n attr.duration = data.duration > 0 ? (data.duration | 0) : undefined;\n attr.preview = data.preview;\n attr.loading = 'lazy';\n }\n el = AudioPlayer;\n // Audio element cannot have content.\n values = null;\n break;\n case 'BR':\n values = null;\n break;\n case 'EX':\n // Ignore.\n break;\n case 'HL':\n // Highlighted text. Assign class name.\n attr.className = 'highlight';\n break;\n case 'HD':\n el = null;\n values = null;\n break;\n case 'IM':\n // Additional processing for images\n el = handleImageData.call(this, el, data, attr);\n // Image element cannot have content.\n values = null;\n break;\n case 'BN':\n // Button\n attr.onClick = this.onFormButtonClick;\n let inner = React.Children.map(values, (child) => {\n return typeof child == 'string' ? child : undefined;\n });\n if (!inner || inner.length == 0) {\n inner = [attr.name]\n }\n // Get text which will be sent back when the button is clicked.\n attr['data-title'] = inner.join('');\n break;\n case 'MN':\n // Mention\n attr.className = 'mention'\n if (data) {\n attr.className += ' ' + idToColorClass(data.val, false, true);\n }\n break;\n case 'FM':\n // Form\n attr.className = 'bot-form';\n break;\n case 'RW':\n // Form element formatting is dependent on element content.\n break;\n case 'QQ':\n // Quote/citation.\n attr.className = 'reply-quote'\n attr.onClick = this.onQuoteClick;\n break;\n case 'VC':\n el = CallMessage;\n // Video call messages do not have content.\n values = null;\n if (data) {\n attr.callState = data.state;\n attr.incoming = data.incoming;\n attr.duration = data.duration;\n }\n break;\n case 'VD':\n // Additional processing for videos.\n el = handleVideoData.call(this, el, data, attr);\n // Video element cannot have content.\n values = null;\n break;\n default:\n if (!el) {\n // Unknown element.\n el = React.Fragment;\n attr = {key: key};\n // Generate comment for unknown element.\n let body = values;\n if (!Array.isArray(values) || !values.join('').trim()) {\n body = [{this.formatMessage(messages.drafty_unknown)}];\n }\n values = [extension, ' '].concat(body);\n }\n break;\n }\n if (!el) {\n return values;\n }\n return React.createElement(el, attr, values);\n}\n\n// Additional processing of image data.\nfunction handleImageData(el, data, attr) {\n if (!data) {\n attr.src = 'img/broken_image.png';\n attr.style = {\n width: IMAGE_THUMBNAIL_DIM + 'px',\n height: IMAGE_THUMBNAIL_DIM + 'px',\n };\n return el;\n }\n\n attr.className = 'inline-image';\n const dim = fitImageSize(data.width, data.height,\n this.viewportWidth > 0 ? Math.min(this.viewportWidth - REM_SIZE * 6.5, REM_SIZE * 34.5) :\n REM_SIZE * 34.5, REM_SIZE * 24, false) ||\n {dstWidth: BROKEN_IMAGE_SIZE, dstHeight: BROKEN_IMAGE_SIZE};\n attr.style = {\n width: dim.dstWidth + 'px',\n height: dim.dstHeight + 'px',\n // Looks like a Chrome bug: broken image does not respect 'width' and 'height'.\n minWidth: dim.dstWidth + 'px',\n minHeight: dim.dstHeight + 'px'\n };\n if (!Drafty.isProcessing(data)) {\n attr.src = this.authorizeURL(sanitizeUrlForMime(attr.src, 'image'));\n attr.alt = data.name;\n if (attr.src) {\n if (Math.max(data.width || 0, data.height || 0) > IMAGE_THUMBNAIL_DIM) {\n // Allow previews for large enough images.\n attr.onClick = this.onImagePreview;\n attr.className += ' image-clickable';\n }\n attr.loading = 'lazy';\n } else {\n attr.src = null;\n }\n } else {\n // Use custom element instead of .\n el = UploadingImage;\n }\n\n return el;\n}\n\n// Additional processing of image data.\nfunction handleVideoData(el, data, attr) {\n if (!data) {\n attr.src = 'img/broken_video.png';\n attr.style = {\n width: IMAGE_THUMBNAIL_DIM + 'px',\n height: IMAGE_THUMBNAIL_DIM + 'px',\n };\n return el;\n }\n attr.className = 'inline-image';\n const dim = fitImageSize(data.width, data.height,\n this.viewportWidth > 0 ? Math.min(this.viewportWidth - REM_SIZE * 6.5, REM_SIZE * 34.5) :\n REM_SIZE * 34.5, REM_SIZE * 24, false) ||\n {dstWidth: NO_DIMENSIONS_VIDEO, dstHeight: NO_DIMENSIONS_VIDEO};\n attr.style = {\n width: dim.dstWidth + 'px',\n height: dim.dstHeight + 'px',\n // Looks like a Chrome bug: broken image does not respect 'width' and 'height'.\n minWidth: dim.dstWidth + 'px',\n minHeight: dim.dstHeight + 'px'\n };\n if (!Drafty.isProcessing(data)) {\n attr.src = this.authorizeURL(sanitizeUrlForMime(attr.src, 'image'));\n attr.alt = data.name;\n if (data.ref || data.val) {\n attr.onClick = this.onVideoPreview;\n attr.loading = 'lazy';\n } else {\n attr.src = null;\n }\n el = InlineVideo;\n } else {\n // Use custom element instead of .\n el = UploadingImage;\n }\n\n return el;\n}\n\n// Converts Drafty object into a one-line preview. 'this' is set by the caller.\n// 'this' must contain:\n// formatMessage: this.props.intl.formatMessage\n// messages: formatjs messages defined with defineMessages.\nexport function previewFormatter(style, data, values, key) {\n if (!style) {\n // Unformatted.\n return values;\n }\n\n let el = Drafty.tagName(style);\n const attr = { key: key };\n switch (style) {\n case 'AU':\n // Voicemail as '[mic] 0:00'.\n el = React.Fragment;\n values = [mic, ' ', secondsToTime(data.duration/1000)];\n break;\n case 'BR':\n // Replace new line with a space.\n el = React.Fragment;\n values = [' '];\n break;\n case 'HL':\n // Make highlight less prominent in preview.\n attr.className = 'highlight preview';\n break;\n case 'LN':\n case 'MN':\n // Disable links in previews.\n el = 'span';\n break;\n case 'IM':\n // Replace image with '[icon] Image'.\n el = React.Fragment;\n values = [photo, ' ', this.formatMessage(messages.drafty_image)];\n break;\n case 'BN':\n el = 'span';\n attr.className = 'flat-button faux';\n break;\n case 'FM':\n el = React.Fragment;\n values = [dashboard,\n this.formatMessage(messages.drafty_form)].concat(' ', values || []);\n break;\n case 'RW':\n el = React.Fragment;\n break;\n case 'EX':\n if (data) {\n if (data.mime == 'application/json') {\n // Ignore JSON attachments: they are form response payloads.\n return null;\n }\n // Clear payload.\n delete data.val;\n delete data.ref;\n }\n el = React.Fragment;\n values = [attachment, ' ', this.formatMessage(messages.drafty_attachment)];\n break;\n case 'VC':\n el = CallStatus;\n if (data) {\n attr.callState = data.state;\n attr.incoming = data.incoming;\n attr.duration = data.duration;\n }\n values = null;\n break;\n case 'QQ':\n case 'HD':\n el = null;\n values = null;\n break;\n case 'VD':\n // Replace image with '[icon] Video'.\n el = React.Fragment;\n values = [play_circle_outline, ' ', this.formatMessage(messages.drafty_video)];\n break;\n default:\n if (!el) {\n // Unknown element.\n el = React.Fragment;\n values = [extension, ' ', this.formatMessage(messages.drafty_unknown)];\n }\n break;\n }\n if (!el) {\n return values;\n }\n return React.createElement(el, attr, values);\n};\n\n// Converts Drafty object into a quoted reply; 'this' is set by the caller.\nfunction inlineImageAttr(attr, data) {\n attr.style = {\n width: IMAGE_THUMBNAIL_DIM + 'px',\n height: IMAGE_THUMBNAIL_DIM + 'px',\n maxWidth: IMAGE_THUMBNAIL_DIM + 'px',\n maxHeight: IMAGE_THUMBNAIL_DIM + 'px',\n }\n attr.className = 'inline-image';\n attr.alt = this.formatMessage(messages.drafty_image);\n if (!data) {\n attr.src = 'img/broken_image.png';\n } else {\n attr.src = attr.src || 'img/broken_image.png';\n }\n attr.title = attr.alt;\n return attr;\n}\n\n// Converts Drafty object into a quoted reply; 'this' is set by the caller.\nfunction inlineVideoAttr(attr, data) {\n const dim = fitImageSize(data.width, data.height, VIDEO_THUMBNAIL_WIDTH, IMAGE_THUMBNAIL_DIM);\n attr.style = {\n width: dim.width + 'px',\n height: dim.height + 'px',\n maxWidth: VIDEO_THUMBNAIL_WIDTH + 'px',\n maxHeight: IMAGE_THUMBNAIL_DIM + 'px',\n }\n attr.className = 'inline-image';\n attr.alt = this.formatMessage(messages.drafty_video);\n attr.title = attr.alt;\n if (!data) {\n attr.src = 'img/broken_video.png';\n } else {\n attr.src = attr.src || 'img/broken_video.png';\n }\n return attr;\n}\n\n// Displays a portion of Drafty within 'QQ' quotes. 'this' is set by the caller.\n// 'this' must contain:\n// formatMessage: this.props.intl.formatMessage\n// messages: formatjs messages defined with defineMessages.\n// authorizeURL: this.props.tinode.authorizeURL\n// onQuoteClick: this.handleQuoteClick (optional)\nfunction quoteFormatter(style, data, values, key) {\n if (['BR', 'EX', 'IM', 'MN', 'VD'].includes(style)) {\n let el = Drafty.tagName(style);\n let attr = Drafty.attrValue(style, data) || {};\n attr.key = key;\n switch(style) {\n case 'BR':\n values = null;\n break;\n case 'IM':\n attr = inlineImageAttr.call(this, attr, data);\n values = [React.createElement('img', attr, null), ' ', attr.alt];\n el = React.Fragment;\n // Fragment attributes.\n attr = {key: key};\n break;\n case 'VD':\n attr = inlineVideoAttr.call(this, attr, data);\n values = [React.createElement('img', attr, null), ' ', attr.alt];\n el = React.Fragment;\n // Fragment attributes.\n attr = {key: key};\n break;\n case 'MN':\n el = 'span';\n attr.className = 'mention'\n if (data) {\n attr.className += ' ' + idToColorClass(data.val, false, true);\n }\n break;\n case 'EX':\n let fname;\n if (data) {\n if (data.mime == 'application/json') {\n // Ignore JSON attachments: they are form response payloads.\n return null;\n }\n fname = data.name;\n // Clear payload.\n delete data.val;\n delete data.ref;\n }\n el = React.Fragment;\n values = [attachment,\n shortenFileName(fname, 16) || this.formatMessage(messages.drafty_attachment)];\n break;\n }\n return React.createElement(el, attr, values);\n }\n return previewFormatter.call(this, style, data, values, key);\n}\n\n// Create image thumbnail suitable for inclusion in a quote.\nfunction quoteImageOrVideo(data, isVideo) {\n let promise;\n let bits, ref, mime;\n if (isVideo) {\n bits = data.preview;\n mime = data.premime || 'image/jpeg';\n ref = data.preref;\n } else {\n bits = data.val;\n mime = data.mime;\n ref = data.ref;\n }\n // Get the blob from the image data.\n if (bits) {\n const blob = base64ToBlob(bits, mime);\n if (!blob) {\n throw new Error(\"Invalid image\");\n }\n promise = Promise.resolve(blob);\n } else if (ref) {\n promise = fetch(this.authorizeURL(sanitizeUrlForMime(ref, 'image')))\n .then(evt => {\n if (evt.ok) {\n return evt.blob();\n } else {\n throw new Error(`Image fetch unsuccessful: ${evt.status} ${evt.statusText}`);\n }\n });\n } else {\n throw new Error(\"Missing image data\");\n }\n\n // Scale the blob.\n return promise\n .then(blob => {\n // If it's an image, cut the square from the center of the image and shrink it.\n // If it's a video, allow it to be rectantular.\n return imageScaled(blob, isVideo ? VIDEO_THUMBNAIL_WIDTH : IMAGE_THUMBNAIL_DIM, IMAGE_THUMBNAIL_DIM, -1, !isVideo)\n }).then(scaled => {\n if (isVideo) {\n data.premime = scaled.mime;\n } else {\n data.mime = scaled.mime;\n }\n data.size = scaled.blob.size;\n data.width = scaled.width;\n data.height = scaled.height;\n delete data.ref;\n delete data.preref;\n // Keeping the original file name, if provided: ex.data.name;\n\n data.src = URL.createObjectURL(scaled.blob);\n return blobToBase64(scaled.blob);\n }).then(b64 => {\n if (isVideo) {\n data.preview = b64.bits;\n } else {\n data.val = b64.bits;\n }\n return data;\n }).catch(err => {\n delete data.val;\n delete data.preview;\n delete data.src;\n data.width = IMAGE_THUMBNAIL_DIM;\n data.height = IMAGE_THUMBNAIL_DIM;\n // Rethrow.\n throw err;\n });\n}\n\n// Create a preview of a reply.\nexport function replyFormatter(style, data, values, key, stack) {\n if (style == 'IM' || style == 'VD') {\n const isImage = style == 'IM';\n const attr = isImage ? inlineImageAttr.call(this, {key: key}, data) :\n inlineVideoAttr.call(this, {key: key}, data);\n\n let loadedPromise;\n try {\n loadedPromise = cancelablePromise(quoteImageOrVideo.call(this, data, style == 'VD'));\n } catch (error) {\n console.warn(\"Failed to quote image:\", error.message);\n loadedPromise = cancelablePromise(error);\n }\n attr.whenDone = loadedPromise;\n values = [React.createElement(LazyImage, attr, null), ' ', attr.alt];\n return React.createElement(React.Fragment, {key: key}, values);\n } else if (style == 'QQ') {\n if (stack.includes('QQ')) {\n // Quote inside quote when forwarding a message.\n return React.createElement('span', {key: key},\n [format_quote, ' ']);\n }\n\n const attr = Drafty.attrValue('QQ', data) || {};\n attr.key = key;\n attr.className = 'reply-quote'\n return React.createElement(Drafty.tagName('QQ'), attr, values);\n }\n return quoteFormatter.call(this, style, data, values, key);\n}\n","import { KNOWN_HOSTS, DEFAULT_HOST } from '../config.js';\n\n// Detect server address from the URL\nexport function detectServerAddress() {\n let host = DEFAULT_HOST;\n if (typeof window.location == 'object') {\n if (window.location.protocol == 'file:' || window.location.hostname == 'localhost') {\n host = KNOWN_HOSTS.local;\n } else if (window.location.hostname) {\n host = window.location.hostname + (window.location.port ? ':' + window.location.port : '');\n }\n }\n return host;\n}\n\n// Detect if the page is served over HTTPS.\nexport function isSecureConnection() {\n if (typeof window.location == 'object') {\n return window.location.protocol == 'https:';\n }\n return false;\n}\n\nexport function isLocalHost() {\n if (typeof window.location == 'object') {\n return window.location.hostname == 'localhost';\n }\n return false;\n}\n","// Helper functions for storing values in localStorage.\n// By default localStorage can store only strings, not objects or other types.\n\nexport default class LocalStorageUtil {\n // Replace old object with the new one.\n static setObject(key, value) {\n localStorage.setItem(key, JSON.stringify(value));\n }\n\n // Get stored object.\n static getObject(key) {\n const value = localStorage.getItem(key);\n return value && JSON.parse(value);\n }\n\n // Partially or wholly update stored object.\n static updateObject(key, value) {\n const oldVal = this.getObject(key);\n this.setObject(key, Object.assign(oldVal || {}, value));\n }\n\n // Just a wrapper.\n static removeItem(key) {\n localStorage.removeItem(key);\n }\n}\n","// Utility class for hash navigation.\n\nexport default class HashNavigation {\n // Parse hash as in http://www.example.com/path#hash as if it were\n // path and arguments.\n static parseUrlHash(hash) {\n // Split path from args, path -> parts[0], args->path[1]\n const parts = hash.split('?', 2);\n const params = {};\n let path = [];\n if (parts[0]) {\n path = parts[0].replace('#', '').split('/');\n }\n if (parts[1]) {\n parts[1].split('&').forEach((arg) => {\n // Can't use split() because the value may contain '='.\n const eq = arg.indexOf('=');\n if (eq > 0) {\n params[arg.slice(0, eq)] = decodeURIComponent(arg.slice(eq + 1));\n }\n });\n }\n return {path: path, params: params};\n }\n\n static navigateTo(url) {\n window.location.hash = url;\n }\n\n static composeUrlHash(path, params) {\n let url = path.join('/');\n const args = [];\n for (const key in params) {\n if (params.hasOwnProperty(key)) {\n args.push(key + '=' + encodeURIComponent(params[key]));\n }\n }\n if (args.length > 0) {\n url += '?' + args.join('&');\n }\n return url;\n }\n\n static addUrlParam(hash, key, value) {\n const parsed = HashNavigation.parseUrlHash(hash);\n parsed.params[key] = value;\n return HashNavigation.composeUrlHash(parsed.path, parsed.params);\n }\n\n static removeUrlParam(hash, key) {\n const parsed = HashNavigation.parseUrlHash(hash);\n delete parsed.params[key];\n return HashNavigation.composeUrlHash(parsed.path, parsed.params);\n }\n\n static setUrlSidePanel(hash, sidepanel) {\n const parsed = HashNavigation.parseUrlHash(hash);\n parsed.path[0] = sidepanel;\n return HashNavigation.composeUrlHash(parsed.path, parsed.params);\n }\n\n static setUrlInfoPanel(hash, infopanel) {\n const parsed = HashNavigation.parseUrlHash(hash);\n if (infopanel) {\n parsed.params.info = infopanel;\n } else {\n delete parsed.params.info;\n }\n return HashNavigation.composeUrlHash(parsed.path, parsed.params);\n }\n\n static setUrlTopic(hash, topic) {\n const parsed = HashNavigation.parseUrlHash(hash);\n parsed.path[1] = topic;\n // Close InfoView on topic change.\n delete parsed.params.info;\n return HashNavigation.composeUrlHash(parsed.path, parsed.params);\n }\n}\n","// Short representation of time in the past.\nexport function shortDateFormat(then, locale) {\n locale = locale || window.navigator.userLanguage || window.navigator.language;\n const now = new Date();\n if (then.getFullYear() == now.getFullYear()) {\n // Same year.\n if (then.getMonth() == now.getMonth() && then.getDate() == now.getDate()) {\n // Same month and day, show time only.\n return then.toLocaleTimeString(locale, {hour12: false, hour: '2-digit', minute: '2-digit'});\n }\n // Different month and/or day, show month day, time.\n return then.toLocaleDateString(locale,\n {hour12: false, month: 'short', day: 'numeric', hour: '2-digit', minute: '2-digit'});\n }\n // Different year: just show the date.\n return then.toLocaleDateString(locale, {year: 'numeric', month: 'short', day: 'numeric'});\n}\n\n// Representation a date relative to now.\nexport function relativeDateFormat(then, locale) {\n locale = locale || window.navigator.userLanguage || window.navigator.language;\n const now = new Date();\n const thenDays = Math.floor((then.getTime() - then.getTimezoneOffset() * 60_000) / 86_400_000);\n const nowDays = Math.floor((now.getTime() - now.getTimezoneOffset() * 60_000) / 86_400_000);\n const diff = thenDays - nowDays;\n if (Math.abs(diff) < 2) {\n // Today or yesterday.\n return new Intl.RelativeTimeFormat(locale, { numeric: 'auto' }).format(diff, 'day')\n }\n // More than two days: just show the date.\n return new Intl.DateTimeFormat(locale).format(then);\n}\n\n// Convert seconds to [hours:]minutes:seconds, i.e. 156 sec -> 2:36, 3756 sec -> 1:02:36.\n// If fixedMins is true, then minutes are represented by at least two digits.\nexport function secondsToTime(seconds, fixedMin) {\n if (typeof seconds != 'number') {\n return '';\n }\n\n let min = (Math.floor(seconds / 60) | 0) % 60;\n let hours = Math.floor(seconds / 36000) | 0;\n\n if (fixedMin || hours > 0) {\n min = min < 10 ? `0${min}` : min;\n }\n let sec = (seconds | 0) % 60;\n sec = sec < 10 ? `0${sec}` : sec;\n if (hours == 0) {\n return `${min}:${sec}`;\n }\n return `${hours}:${min}:${sec}`;\n}\n\n// Convert a number of bytes to human-readable format.\nexport function bytesToHumanSize(bytes) {\n if (!bytes || bytes == 0) {\n return '0 Bytes';\n }\n\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB'];\n const bucket = Math.min(Math.floor(Math.log2(bytes) / 10) | 0, sizes.length-1);\n const count = bytes / Math.pow(1024, bucket);\n const round = bucket > 0 ? (count < 3 ? 2 : (count < 30 ? 1 : 0)) : 0;\n return count.toFixed(round) + ' ' + sizes[bucket];\n}\n\n// Shorten a file name to be under maxLength by clipping out the middle.\nexport function shortenFileName(filename, maxLength) {\n if (typeof filename != 'string') {\n return filename;\n }\n return filename.length > maxLength ?\n filename.slice(0, maxLength/2 - 1) + '…' + filename.slice(1 - maxLength/2) : filename;\n}\n\n// Get 32 bit integer hash value for a string. Ideally it should produce the same value\n// as Java's String#hash().\nfunction stringToColorHash(value) {\n let hash = 0;\n value = '' + value;\n for (let i = 0; i < value.length; i++) {\n hash = ((hash << 5) - hash) + value.charCodeAt(i);\n hash = hash & hash; // Convert to 32bit integer\n }\n return hash;\n}\n\n// User avatar letter color id.\nexport function letterTileColorId(userId) {\n return Math.abs(stringToColorHash(userId)) % 16;\n}\n\n// Converts user or topic ID to a CSS color class. Ideally it should produce the same color value as Java version.\n// params:\n// - {string} id: user or topic ID\n// - {boolean} light: light or dark version of the color.\n// - {boolean} fg: foreground (text) or background color.\nexport function idToColorClass(id, light, fg) {\n return (light ? 'lt-' : 'dk-') + (fg ? 'fg-' : 'bg-') + letterTileColorId(id);\n}\n\n// Takes ISO Alpha-2 country code, like 'US' and converts it to a flag emoji.\nexport function flagEmoji(countryCode) {\n const codePoints = countryCode\n .toUpperCase()\n .split('')\n .map(char => 0x1F1A5 + char.charCodeAt());\n return String.fromCodePoint(...codePoints);\n}\n","// Odds and ends\n\nimport { Tinode } from 'tinode-sdk';\n\n// Make shortcut icon appear with a green dot + show unread count in title.\nexport function updateFavicon(count) {\n const oldIcon = document.getElementById('shortcut-icon');\n const head = document.head || document.getElementsByTagName('head')[0];\n const newIcon = document.createElement('link');\n newIcon.type = 'image/png';\n newIcon.id = 'shortcut-icon';\n newIcon.rel = 'shortcut icon';\n newIcon.href = 'img/logo32x32' + (count > 0 ? 'a' : '') + '.png';\n if (oldIcon) {\n head.removeChild(oldIcon);\n }\n head.appendChild(newIcon);\n\n document.title = (count > 0 ? '('+count+') ' : '') + 'Tinode';\n}\n\n// Create theCard which represents user's or topic's \"public\" info.\nexport function theCard(fn, imageUrl, imageMimeType, note) {\n let card = null;\n fn = fn && fn.trim();\n note = note && note.trim();\n\n if (fn) {\n card = {\n fn: fn\n };\n }\n\n if (typeof note == 'string') {\n card = card || {};\n card.note = note ? note : Tinode.DEL_CHAR;\n }\n\n if (imageUrl) {\n card = card || {};\n let mimeType = imageMimeType;\n // Is this a data URL \"data:[][;base64],\"?\n const matches = /^data:(image\\/[-a-z0-9+.]+)?(;base64)?,/i.exec(imageUrl);\n if (matches) {\n mimeType = matches[1];\n card.photo = {\n data: imageUrl.substring(imageUrl.indexOf(',') + 1),\n ref: Tinode.DEL_CHAR\n };\n } else {\n card.photo = {\n data: Tinode.DEL_CHAR,\n ref: imageUrl\n };\n }\n card.photo.type = (mimeType || 'image/jpeg').substring('image/'.length);\n }\n\n return card;\n}\n\n// Deep-shallow compare two arrays: shallow compare each element.\nexport function arrayEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (!Array.isArray(a) || !Array.isArray(b)) {\n return false;\n }\n\n // Compare lengths first.\n if (a.length != b.length) {\n return false;\n }\n // Order of elements is ignored.\n a.sort();\n b.sort();\n for (let i = 0, l = a.length; i < l; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\n\n// Checks (loosely) if the given string is a phone. If so, returns the phone number in a format\n// as close to E.164 as possible.\nexport function asPhone(val) {\n val = val.trim();\n if (/^(?:\\+?(\\d{1,3}))?[- (.]*(\\d{3})[- ).]*(\\d{3})[- .]*(\\d{2})[- .]*(\\d{2})?$/.test(val)) {\n return val.replace(/[- ().]*/, '');\n }\n return null;\n}\n\n// Checks (loosely) if the given string is an email. If so returns the email.\nexport function asEmail(val) {\n val = val.trim();\n if (/^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$/.test(val)) {\n return val;\n }\n return null;\n}\n\n// Checks if URL is a relative url, i.e. has no 'scheme://', including the case of missing scheme '//'.\n// The scheme is expected to be RFC-compliant, e.g. [a-z][a-z0-9+.-]*\n// example.html - ok\n// https:example.com - not ok.\n// http:/example.com - not ok.\n// ' ↲ https://example.com' - not ok. (↲ means carriage return)\nexport function isUrlRelative(url) {\n return url && !/^\\s*([a-z][a-z0-9+.-]*:|\\/\\/)/im.test(url);\n}\n\n// Ensure URL does not present an XSS risk. Optional allowedSchemes may contain an array of\n// strings with permitted URL schemes, such as ['ftp', 'ftps']; otherwise accept http and https only.\nexport function sanitizeUrl(url, allowedSchemes) {\n if (typeof url != 'string') {\n return url;\n }\n\n // Strip control characters and whitespace. They are not valid URL characters anyway.\n url = url.replace(/[^\\x20-\\x7E]/gmi, '').trim();\n\n // Relative URLs are safe.\n // Relative URL does not start with ':', abcd123: or '//'.\n if (!/^([a-z][a-z0-9+.-]*:|\\/\\/)/i.test(url)) {\n return url;\n }\n\n // Blob URLs are safe.\n if (/^blob:http/.test(url)) {\n return url;\n }\n\n // Absolute URL. Accept only safe schemes, or no scheme.\n const schemes = Array.isArray(allowedSchemes) ? allowedSchemes.join('|') : 'http|https';\n const re = new RegExp('^((' + schemes + '):|//)', 'i');\n if (!re.test(url)) {\n return null;\n }\n\n return url;\n}\n\n// Ensure URL is suitable as a source like field: the URL must be a relative URL or\n// have http:, https:, blob: or data: scheme.\n// In case of data: scheme, the URL must must be of the right MIME type such as 'data:{mimeMajor}/XXXX;base64,'.\nexport function sanitizeUrlForMime(url, mimeMajor) {\n if (!url) {\n return null;\n }\n\n const sanitizedUrl = sanitizeUrl(url);\n if (sanitizedUrl) {\n return sanitizedUrl;\n }\n\n // Is this a data: URL of the appropriate mime type?\n const re = new RegExp(`data:${mimeMajor}\\/[a-z0-9.-]+;base64,`, 'i');\n if (re.test(url.trim())) {\n return url;\n }\n\n return null;\n}\n\n// Given message's received status, return name and color of a delivery indicator icon.\nexport function deliveryMarker(received) {\n switch (received) {\n case Tinode.MESSAGE_STATUS_SENDING:\n return { name: 'access_time' }; // watch face\n case Tinode.MESSAGE_STATUS_FAILED:\n return { name: 'warning', color: 'danger-color' }; // yellow icon /!\\\n case Tinode.MESSAGE_STATUS_SENT:\n return { name: 'done' }; // checkmark\n case Tinode.MESSAGE_STATUS_RECEIVED:\n return { name: 'done_all' }; // double checkmark\n case Tinode.MESSAGE_STATUS_READ:\n return { name: 'done_all', color: 'blue' }; // blue double checkmark\n }\n return null;\n}\n\n// Wraps a promise to make it cancelable.\n// The parameter can be either a promise or an error. If it's an error, the wrapped promise is\n// created in a rejected state.\nexport function cancelablePromise(promise) {\n let hasCanceled = false;\n\n const wrappedPromise = promise instanceof Error ?\n Promise.reject(promise) :\n new Promise((resolve, reject) => {\n promise.then(\n result => hasCanceled ? reject({isCanceled: true}) : resolve(result),\n error => hasCanceled ? reject({isCanceled: true}) : reject(error)\n );\n });\n\n return {\n promise: wrappedPromise,\n cancel() {\n hasCanceled = true;\n },\n };\n};\n\n// Clips string to the specified length.\nexport function clipStr(str, length) {\n return str && str.substring(0, length);\n}\n","// This is a generated file. Don't edit.\n\nexport const PACKAGE_VERSION = \"0.21.0\";\n","// Edit account parameters.\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport CheckBox from '../widgets/checkbox.jsx';\n\nexport default class EditAccountView extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.handleCheckboxClick = this.handleCheckboxClick.bind(this);\n }\n\n handleCheckboxClick(what, checked) {\n if (what == 'sound') {\n this.props.onToggleMessageSounds(checked);\n } else if (what == 'alert') {\n this.props.onTogglePushNotifications(checked);\n } else if (what == 'incognito') {\n this.props.onToggleIncognitoMode(checked);\n }\n }\n\n render() {\n return (\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n );\n }\n};\n","// Edit account parameters.\nimport React from 'react';\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\n\nimport InPlaceEdit from '../widgets/in-place-edit.jsx';\nimport PermissionsEditor from '../widgets/permissions-editor.jsx';\n\nconst messages = defineMessages({\n delete_account: {\n id: 'delete_account',\n defaultMessage: 'Delete account',\n description: 'Title for delete account warning'\n },\n delete_account_warning: {\n id: 'delete_account_warning',\n defaultMessage: 'Are you sure you want to delete your account? It cannot be undone.',\n description: 'Warning message when deleting an account'\n }\n});\n\nclass AccSecurityView extends React.Component {\n constructor(props) {\n super(props);\n\n const me = this.props.tinode.getMeTopic();\n let blockedCount = 0;\n me.contacts((c) => {\n if (c.acs && !c.acs.isJoiner()) {\n blockedCount ++;\n }\n });\n const defacs = me.getDefaultAccess();\n this.state = {\n auth: defacs ? defacs.auth : null,\n anon: defacs ? defacs.anon : null,\n showPermissionEditorFor: undefined,\n blockedCount: blockedCount,\n };\n\n this.handlePasswordUpdate = this.handlePasswordUpdate.bind(this);\n this.handleLaunchPermissionsEditor = this.handleLaunchPermissionsEditor.bind(this);\n this.handleHidePermissionsEditor = this.handleHidePermissionsEditor.bind(this);\n this.handlePermissionsChanged = this.handlePermissionsChanged.bind(this);\n this.handleDeleteAccount = this.handleDeleteAccount.bind(this);\n }\n\n handlePasswordUpdate(pwd) {\n this.setState({password: pwd});\n this.props.onUpdatePassword(pwd);\n }\n\n handleLaunchPermissionsEditor(which) {\n this.setState({\n showPermissionEditorFor: which,\n editedPermissions: this.state[which]\n });\n }\n\n handleHidePermissionsEditor() {\n this.setState({showPermissionEditorFor: undefined});\n }\n\n handlePermissionsChanged(perm) {\n let defacs = {};\n defacs[this.state.showPermissionEditorFor] = perm;\n this.props.onUpdateAccountDesc('me', undefined, undefined, defacs);\n\n let newState = {showPermissionEditorFor: undefined};\n newState[this.state.showPermissionEditorFor] = perm;\n this.setState(newState);\n }\n\n handleDeleteAccount(e) {\n e.preventDefault();\n const {formatMessage} = this.props.intl;\n this.props.onShowAlert(\n formatMessage(messages.delete_account), // title\n formatMessage(messages.delete_account_warning), // content\n (_ => this.props.onDeleteAccount()), // onConfirm\n null, // use default text \"OK\"\n true, // Show Reject button\n null // use default text \"Cancel\"\n );\n }\n\n render() {\n return (\n <>{this.state.showPermissionEditorFor ?\n \n :\n
\n );\n }\n};\n","import React from 'react';\n\nimport LetterTile from './letter-tile.jsx';\nimport LoadSpinner from './load-spinner.jsx';\n\nimport { sanitizeUrlForMime } from '../lib/utils.js';\n\nimport { AVATAR_SIZE } from '../config.js';\n\nexport default class AvatarUpload extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n source: props.avatar\n };\n\n this.handleFileReceived = this.handleFileReceived.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.avatar != prevProps.avatar) {\n this.setState({source: this.props.avatar});\n }\n }\n\n handleFileReceived(e) {\n const image = e.target.files[0];\n this.props.onImageUpdated(image.type, URL.createObjectURL(image), image.name);\n // Clear the value so the same file can be uploaded again.\n e.target.value = '';\n }\n\n render() {\n // Randomize id value in case more than one AvatarUpload is shown\n // at the same time.\n const randId = 'file-input-avatar-' + ('' + Math.random()).substring(0, 4);\n const className = 'avatar-upload' + (this.props.readOnly ? ' read-only' : '');\n return (\n
\n );\n }\n};\n","// A panel included into a list of contacts with an action text.\nimport React from 'react';\nimport { injectIntl } from 'react-intl';\n\nclass ContactAction extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick(e) {\n e.preventDefault();\n e.stopPropagation();\n this.props.onAction(this.props.action);\n }\n\n render() {\n const {formatMessage} = this.props.intl;\n return (\n
\n );\n }\n};\n\nexport default injectIntl(Contact);\n","// Context Menu: popup/dropdown menu.\nimport React from 'react';\nimport { injectIntl, defineMessages } from 'react-intl';\n\nimport { REM_SIZE } from '../config.js';\n\nconst messages = defineMessages({\n info: {\n id: 'menu_item_info',\n defaultMessage: 'Info',\n description: 'Show extended topic information'\n },\n clear_messages: {\n id: 'menu_item_clear_messages',\n defaultMessage: 'Clear messages',\n description: 'Delete all messages'\n },\n clear_for_all: {\n id: 'menu_item_clear_messages_for_all',\n defaultMessage: 'Clear for All',\n description: 'Delete all message(s) for all members'\n },\n delete: {\n id: 'menu_item_delete',\n defaultMessage: 'Delete',\n description: 'Delete selected messages'\n },\n delete_for_all: {\n id: 'menu_item_delete_for_all',\n defaultMessage: 'Delete for All',\n description: 'Delete selected message(s) for all members'\n },\n send_retry: {\n id: 'menu_item_send_retry',\n defaultMessage: 'Retry',\n description: 'Retry sending message'\n },\n mute: {\n id: 'menu_item_mute',\n defaultMessage: 'Mute',\n description: 'Turn off notifications'\n },\n unmute: {\n id: 'menu_item_unmute',\n defaultMessage: 'Unmute',\n description: 'Turn notifications on'\n },\n reply: {\n id: 'menu_item_reply',\n defaultMessage: 'Reply',\n description: 'Reply to message'\n },\n forward: {\n id: 'menu_item_forward',\n defaultMessage: 'Forward',\n description: 'Forward message'\n },\n edit: {\n id: 'menu_item_edit',\n defaultMessage: 'Edit',\n description: 'Edit message'\n },\n topic_delete: {\n id: 'menu_item_delete_topic',\n defaultMessage: 'Delete',\n description: 'Delete entire topic'\n },\n topic_delete_warning: {\n id: 'topic_delete_warning',\n defaultMessage: 'Are you sure you want to delete this conversation? It cannot be undone.',\n description: 'Alert warning when deleting entire topic'\n },\n delete_messages_warning: {\n id: 'delete_messages_warning',\n defaultMessage: 'Are you sure you want to delete all messages for everyone? It cannot be undone.',\n description: 'Alert dialog warning when hard-deleting all messages.'\n },\n unblock: {\n id: 'menu_item_unblock',\n defaultMessage: 'Unblock',\n description: 'Unblock topic or user'\n },\n // Generic string suitable for either topic or user.\n block: {\n id: 'menu_item_block',\n defaultMessage: 'Block',\n description: 'Block topic or user'\n },\n topic_block_warning: {\n id: 'topic_block_warning',\n defaultMessage: 'Are you sure you want to block this conversation?',\n description: 'Alert warning when blocking a topic.'\n },\n member_delete: {\n id: 'menu_item_member_delete',\n defaultMessage: 'Remove',\n description: 'Remove user from topic'\n },\n archive: {\n id: 'menu_item_archive_topic',\n defaultMessage: 'Archive',\n description: 'Move topic from the list of active chats to archive'\n },\n unarchive: {\n id: 'menu_item_restore_topic',\n defaultMessage: 'Restore',\n description: 'Restore topic from archive'\n },\n edit_permissions: {\n id: 'menu_item_edit_permissions',\n defaultMessage: 'Edit permissions',\n description: 'Menu item [Edit permissions]'\n },\n clear_messages_warning: {\n id: 'clear_messages_warning',\n defaultMessage: 'Are you sure you want to clear all messages? It cannot be undone.',\n description: 'Alert dialog warning when deleting all messages.'\n },\n});\n\nclass ContextMenu extends React.Component {\n constructor(props) {\n super(props);\n\n this.selfRef = React.createRef();\n\n const {formatMessage} = props.intl;\n\n this.handlePageClick = this.handlePageClick.bind(this);\n this.handleEscapeKey = this.handleEscapeKey.bind(this);\n this.handleClick = this.handleClick.bind(this);\n\n // Preconfigured menu items.\n this.MenuItems = {\n 'topic_info': {\n id: 'topic_info',\n title: formatMessage(messages.info),\n handler: null\n },\n 'messages_clear': {\n id: 'messages_clear',\n title: formatMessage(messages.clear_messages),\n handler: (params, errorHandler) => {\n return props.onShowAlert(\n formatMessage(messages.clear_messages), // title\n formatMessage(messages.clear_messages_warning), // content\n (_ => { this.deleteMessages(true, false, params, errorHandler); }), // onConfirm\n null, // \"OK\"\n true, // Show Reject button\n null // \"Cancel\"\n );\n }\n },\n 'messages_clear_hard': {\n id: 'messages_clear_hard',\n title: formatMessage(messages.clear_for_all),\n handler: (params, errorHandler) => {\n return props.onShowAlert(\n formatMessage(messages.clear_for_all), // title\n formatMessage(messages.delete_messages_warning), // content\n (_ => { return this.deleteMessages(true, true, params, errorHandler); }),\n null, // \"OK\"\n true, // Show Reject button\n null // \"Cancel\"\n );\n }\n },\n 'message_delete': {\n id: 'message_delete',\n title: formatMessage(messages.delete),\n handler: (params, errorHandler) => {\n return this.deleteMessages(false, false, params, errorHandler);\n }\n },\n 'message_delete_hard': {\n id: 'message_delete_hard',\n title: formatMessage(messages.delete_for_all),\n handler: (params, errorHandler) => {\n return this.deleteMessages(false, true, params, errorHandler);\n }\n },\n 'menu_item_send_retry': {\n id: 'menu_item_send_retry',\n title: formatMessage(messages.send_retry),\n handler: (params, errorHandler) => {\n return this.retryMessage(params, errorHandler);\n }\n },\n 'menu_item_reply': {\n id: 'menu_item_reply',\n title: formatMessage(messages.reply),\n handler: (params, errorHandler) => {\n return this.replyToMessage(params, errorHandler);\n }\n },\n 'menu_item_forward': {\n id: 'menu_item_forward',\n title: formatMessage(messages.forward),\n handler: _ => {} /* the action is taken directly in tinode-web */\n },\n 'menu_item_edit': {\n id: 'menu_item_edit',\n title: formatMessage(messages.edit),\n handler: (params, errorHandler) => {\n return this.editMessage(params, errorHandler);\n }\n },\n 'topic_unmute': {\n id: 'topic_unmute',\n title: formatMessage(messages.unmute),\n handler: this.topicPermissionSetter.bind(this, '+P')\n },\n 'topic_mute': {\n id: 'topic_mute',\n title: formatMessage(messages.mute),\n handler: this.topicPermissionSetter.bind(this, '-P')\n },\n 'topic_unblock': {\n id: 'topic_unblock',\n title: formatMessage(messages.unblock),\n handler: this.topicPermissionSetter.bind(this, '+JP')\n },\n 'topic_block': {\n id: 'topic_block',\n title: formatMessage(messages.block),\n handler: (params, errorHandler) => {\n return props.onShowAlert(\n formatMessage(messages.block), // title\n formatMessage(messages.topic_block_warning), // content\n (_ => this.topicPermissionSetter('-JP', params, errorHandler).then(ctrl => {\n this.props.onTopicRemoved(params.topicName);\n return ctrl;\n })),\n null, // \"OK\"\n true, // Show Reject button\n null // \"Cancel\"\n );\n }\n },\n 'topic_delete': {\n id: 'topic_delete',\n title: formatMessage(messages.topic_delete),\n handler: (params, errorHandler) => {\n return props.onShowAlert(\n formatMessage(messages.topic_delete), // title\n formatMessage(messages.topic_delete_warning), // content\n (_ => {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic) {\n console.warn(\"Topic not found: \", params.topicName);\n return;\n }\n return topic.delTopic(true).catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }),\n null, // \"OK\"\n true, // Show Reject button\n null // \"Cancel\"\n );\n }\n },\n 'topic_archive': {\n id: 'topic_archive',\n title: formatMessage(messages.archive),\n handler: (params, errorHandler) => {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic) {\n console.warn(\"Topic not found: \", params.topicName);\n return;\n }\n return topic.archive(true).catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }\n },\n 'topic_restore': {\n id: 'topic_restore',\n title: formatMessage(messages.unarchive),\n handler: (params, errorHandler) => {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic) {\n console.warn(\"Topic not found: \", params.topicName);\n return;\n }\n return topic.archive(false).catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }\n },\n // menu_item_edit_permissions is defined elsewhere.\n 'permissions': {\n id: 'permissions',\n title: formatMessage(messages.edit_permissions),\n handler: null\n },\n 'member_delete': {\n id: 'member_delete',\n title: formatMessage(messages.member_delete),\n handler: (params, errorHandler) => {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic || !params.user) {\n console.warn(\"Topic or user not found: '\" + params.topicName + \"', '\" + params.user + \"'\");\n return;\n }\n return topic.delSubscription(params.user).catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }\n },\n 'member_mute': {\n id: 'member_mute',\n title: formatMessage(messages.mute),\n handler: this.topicPermissionSetter.bind(this, '-P')\n },\n 'member_unmute': {\n id: 'member_unmute',\n title: formatMessage(messages.unmute),\n handler: this.topicPermissionSetter.bind(this, '+P')\n },\n 'member_block': {\n id: 'member_block',\n title: formatMessage(messages.block),\n handler: this.topicPermissionSetter.bind(this, '-JP')\n },\n 'member_unblock': {\n id: 'member_unblock',\n title: formatMessage(messages.unblock),\n handler: this.topicPermissionSetter.bind(this, '+JP')\n },\n };\n }\n\n componentDidMount() {\n document.addEventListener('mousedown', this.handlePageClick, false);\n document.addEventListener('keyup', this.handleEscapeKey, false);\n }\n\n componentWillUnmount() {\n document.removeEventListener('mousedown', this.handlePageClick, false);\n document.removeEventListener('keyup', this.handleEscapeKey, false);\n }\n\n handlePageClick(e) {\n if (this.selfRef.current.contains(e.target)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n this.props.hide();\n }\n\n handleEscapeKey(e) {\n if (e.keyCode === 27) {\n this.props.hide();\n }\n }\n\n handleClick(e) {\n e.preventDefault();\n e.stopPropagation();\n this.props.hide();\n let item = this.props.items[e.currentTarget.dataset.id];\n if (typeof item == 'string') {\n item = this.MenuItems[item];\n }\n\n if (!item) {\n console.error(\"Invalid menu item ID\", e.currentTarget.dataset.id);\n } else {\n this.props.onAction(\n item.id,\n item.handler(this.props.params, this.props.onError),\n this.props.params);\n }\n }\n\n // Menu Actions\n\n deleteMessages(all, hard, params, errorHandler) {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic) {\n console.warn(\"Topic not found: \", params.topicName);\n return;\n }\n\n // We don't know if the message is still pending (e.g. attachment is being uploaded),\n // so try cancelling first. No harm if we can't cancel.\n // The message can be cancelled if transmission to the server has not\n // started yet or if the message send has failed.\n if (!all && topic.cancelSend(params.seq)) {\n return;\n }\n\n const promise = all ?\n topic.delMessagesAll(hard) :\n params.replace > 0 ?\n topic.delMessagesEdits(params.replace, hard) :\n topic.delMessagesList([params.seq], hard);\n\n return promise.catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }\n\n // Retries sending failed message.\n retryMessage(params, errorHandler) {\n const topic = this.props.tinode.getTopic(params.topicName);\n // Remove the existing message entry.\n if (!topic || !topic.flushMessage(params.seq)) {\n return;\n }\n const msg = topic.createMessage(params.content, false);\n return topic.publishDraft(msg).catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }\n\n // Function is used by context menu to set permissions.\n topicPermissionSetter(mode, params, errorHandler) {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic) {\n console.warn(\"Topic not found\", params.topicName);\n return;\n }\n\n let result = topic.updateMode(params.user, mode);\n if (errorHandler) {\n result = result.catch(err => errorHandler(err.message, 'err'));\n }\n return result;\n }\n\n replyToMessage(params, errorHandler) {\n params.pickReply(params.seq, params.content, params.userFrom, params.userName, errorHandler);\n }\n\n editMessage(params, errorHandler) {\n params.editMessage(params.replace || params.seq, params.content, errorHandler);\n }\n\n render() {\n const menu = [];\n let count = 0;\n this.props.items.map((item) => {\n if (typeof item == 'string') {\n item = this.MenuItems[item];\n }\n if (item && item.title) {\n menu.push(\n item.title == '-' ?\n \n :\n
{item.title}
\n );\n }\n count++;\n });\n\n // Ensure that menu is inside the app-container.\n const hSize = 12 * REM_SIZE;\n const vSize = REM_SIZE * (0.7 + menu.length * 2.5);\n const left = (this.props.bounds.right - this.props.clickAt.x < hSize) ?\n (this.props.clickAt.x - this.props.bounds.left - hSize) :\n (this.props.clickAt.x - this.props.bounds.left);\n const top = (this.props.bounds.bottom - this.props.clickAt.y < vSize) ?\n (this.props.clickAt.y - this.props.bounds.top - vSize) :\n (this.props.clickAt.y - this.props.bounds.top);\n\n const position = {\n left: left + 'px',\n top: top + 'px'\n };\n\n return (\n
\n {menu}\n
\n );\n }\n}\n\nexport default injectIntl(ContextMenu);\n","// Image zoom and crop widget.\n\nimport React from 'react';\n\nconst DEFAULT_MAX_ZOOM = 2.5;\n\nexport default class Cropper extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n // Coordinates of the top left corner of the image in container coordinates.\n panX: 0,\n panY: 0,\n // Origin of the zoom in image coordinates.\n originX: 0,\n originY: 0,\n // Zoom scale.\n zoom: 1,\n // Zoom min and max.\n minZoom: 0,\n maxZoom: DEFAULT_MAX_ZOOM,\n };\n\n // References to DOM elements for hooking up events and getting screen dimensions.\n // The transparent element which captures mouse moves (moves with the image).\n this.overlay = React.createRef();\n // The image cutout window or view port (static).\n this.cutout = React.createRef();\n // Scaled and translated image preview.\n this.preview = React.createRef();\n // The main container (static).\n this.boundingBox = React.createRef();\n\n // The original image width and height before any scaling.\n this.imageWidth = 0;\n this.imageHeight = 0;\n\n // Mouse position when dragging.\n this.mouseX = 0\n this.mouseY = 0;\n // Length of the previous mouse move when dragging.\n this.prevDistance = 0;\n\n // Bounding rectangles of static elements.\n this.cutoutRect = {};\n this.bBoxRect = {};\n // Center of the bounding box.\n this.originX = 0;\n this.originY = 0;\n\n this.initScaling = this.initScaling.bind(this);\n this.onZoom = this.onZoom.bind(this);\n this.handleZoom = this.handleZoom.bind(this);\n this.mouseDown = this.mouseDown.bind(this);\n this.mouseUp = this.mouseUp.bind(this);\n this.mouseMove = this.mouseMove.bind(this);\n this.mouseTouch = this.mouseTouch.bind(this);\n this.positionAll = this.positionAll.bind(this);\n this.translate = this.translate.bind(this);\n }\n\n componentDidMount() {\n this.overlay.current.addEventListener('mousedown', this.mouseDown, { passive: true });\n this.overlay.current.addEventListener('touchstart', this.mouseDown, { passive: true });\n\n // The rectangle position is in viewport coordinates.\n this.bBoxRect = this.boundingBox.current.getBoundingClientRect();\n // Center of the bounding box in container coordinates.\n this.originX = this.bBoxRect.width / 2;\n this.originY = this.bBoxRect.height / 2;\n\n // The rectangle position is in viewport coordinates.\n this.cutoutRect = this.cutout.current.getBoundingClientRect();\n }\n\n componentWillUnmount() {\n this.overlay.current.removeEventListener('mousedown', this.mouseDown);\n this.overlay.current.removeEventListener('touchstart', this.mouseDown);\n }\n\n // Position all elements.\n positionAll(panX, panY, zoom) {\n // Zoom origin in image preview coordinates.\n this.setState({\n panX: panX,\n panY: panY,\n zoom: zoom,\n originX: this.originX - panX,\n originY: this.originY - panY,\n });\n\n // Pass cut out coordinates to caller.\n const left = (this.originX - panX) * zoom - this.originX;\n const top = (this.originY - panY) * zoom - this.originY;\n this.props.onChange(\n (left + this.cutoutRect.left - this.bBoxRect.left) / zoom,\n (top + this.cutoutRect.top - this.bBoxRect.top) / zoom,\n this.cutoutRect.width / zoom,\n this.cutoutRect.height / zoom,\n zoom);\n }\n\n // Check if new location is within the limits.\n static checkBound(currPan, img, cutout, delta) {\n let nextDiff = Math.min(0, cutout[0] - img[0] - delta, img[1] - cutout[1] + delta);\n if (nextDiff == 0) {\n // Cutout is completely within the image.\n currPan += delta;\n } else if (Math.min(0, cutout[0] - img[0], img[1] - cutout[1]) < nextDiff) {\n // Cutout is outside of the range but closer to the bound.\n currPan += delta;\n }\n return currPan;\n }\n\n initScaling() {\n // Initialize components.\n const imgRect = this.preview.current.getBoundingClientRect();\n\n this.imageWidth = imgRect.width;\n this.imageHeight = imgRect.height;\n\n // Set zoom slider's min and max values. Make sure the scaled image cannot be smaller than the cutout.\n const minZoom = Math.max(this.cutoutRect.width / imgRect.width, this.cutoutRect.height / imgRect.height);\n this.setState({\n minZoom: minZoom,\n maxZoom: Math.max(DEFAULT_MAX_ZOOM, minZoom + 1)\n });\n\n // Initial zoom level fills the bounding box at the smallest image dimension and overflows the largest, i.e. \"fill\" not \"fit\".\n const zoom = Math.max(this.bBoxRect.width / imgRect.width, this.bBoxRect.height / imgRect.height);\n // Converting from viewport coordinates to container, then panning.\n const panX = this.cutoutRect.left - this.bBoxRect.left -\n (imgRect.width - this.cutoutRect.width) / 2;\n const panY = this.cutoutRect.top - this.bBoxRect.top -\n (imgRect.height - this.cutoutRect.height) / 2;\n\n this.positionAll(panX, panY, zoom);\n }\n\n onZoom(e) {\n this.handleZoom(e.target.value);\n }\n\n handleZoom(zoom) {\n let panX = this.state.panX;\n let panY = this.state.panY;\n\n // Ensure that the image at the new zoom is not outside of the cutout boundaries.\n // Calculate image coordinates at the new zoom.\n const imgLeft = this.originX - (this.originX - panX) * zoom;\n const imgRight = imgLeft + this.imageWidth * zoom;\n // Cutout in the same coordinates as the image.\n const coLeft = this.cutoutRect.left - this.bBoxRect.left;\n const coRight = coLeft + this.cutoutRect.width;\n if (coLeft < imgLeft) {\n panX -= imgLeft - coLeft;\n } else if (coRight > imgRight) {\n panX += coRight - imgRight;\n }\n const imgTop = this.originY - (this.originY - panY) * zoom;\n const imgBottom = imgTop + this.imageHeight * zoom;\n const coTop = this.cutoutRect.top - this.bBoxRect.top;\n const coBottom = coTop + this.cutoutRect.height;\n if (coTop < imgTop) {\n panY -= imgTop - coTop;\n } else if (coBottom > imgBottom) {\n panY += coBottom - imgBottom;\n }\n\n this.positionAll(panX, panY, zoom);\n }\n\n mouseDown(e) {\n if (e.touches) {\n this.mouseX = e.touches[0].pageX;\n this.mouseY = e.touches[0].pageY;\n } else {\n this.mouseX = e.pageX;\n this.mouseY = e.pageY;\n }\n\n window.addEventListener('mousemove', this.mouseMove, { passive: false });\n window.addEventListener('touchmove', this.mouseTouch, { passive: false });\n window.addEventListener('mouseup', this.mouseUp, { passive: true });\n window.addEventListener('touchend', this.mouseUp, { passive: true });\n // Disable text selection in the entire document.\n document.body.style['userSelect'] = 'none';\n }\n\n // Perform image panning.\n translate(pageX, pageY) {\n const dX = pageX - this.mouseX;\n const dY = pageY - this.mouseY;\n\n this.mouseX = pageX;\n this.mouseY = pageY;\n\n // Make sure the image is within the cutout window.\n const imgRect = this.preview.current.getBoundingClientRect();\n\n // Check if the new position is within the boundaries, and if not if it's closer to them.\n let panX = Cropper.checkBound(this.state.panX, [imgRect.left, imgRect.right],\n [this.cutoutRect.left, this.cutoutRect.right], dX);\n let panY = Cropper.checkBound(this.state.panY, [imgRect.top, imgRect.bottom],\n [this.cutoutRect.top, this.cutoutRect.bottom], dY);\n\n this.positionAll(panX, panY, this.state.zoom);\n }\n\n // Image panning.\n mouseMove(e) {\n e.preventDefault();\n this.translate(e.pageX, e.pageY);\n }\n\n mouseTouch(e) {\n e.preventDefault();\n\n if (e.touches.length == 1) {\n this.translate(e.touches[0].pageX, e.touches[0].pageY);\n return;\n }\n\n // Image zooming by pinching.\n const [touch0, touch1] = e.touches;\n const distance = Math.sqrt((touch0.pageX - touch1.pageX) * (touch0.pageX - touch1.pageX) +\n (touch0.pageY - touch1.pageY) * (touch0.pageY - touch1.pageY));\n\n if (!this.prevDistance) {\n this.prevDistance = distance / this.state.zoom;\n }\n\n let scale = (distance / this.prevDistance);\n this.handleZoom(Math.max(this.minZoom, Math.min(this.maxZoom, scale)));\n }\n\n mouseUp(e) {\n window.removeEventListener('mousemove', this.mouseMove);\n window.removeEventListener('touchmove', this.mouseTouch);\n window.removeEventListener('mouseup', this.mouseUp);\n window.removeEventListener('touchend', this.mouseUp);\n // Re-enable text selection.\n document.body.style['userSelect'] = '';\n\n this.positionAll(this.state.panX, this.state.panY, this.state.zoom);\n }\n\n render() {\n // transform3d: position and scale.\n const t3d = `translate3d(${this.state.panX}px, ${this.state.panY}px, 0) scale(${this.state.zoom})`;\n // transformOrigin: zoom origin.\n const orig = `${this.state.originX}px ${this.state.originY}px`;\n\n // Overlay position and size are exactly equal to the position and size of the transformed image\n // except it uses different coordinates.\n const overlay = {\n top: `${this.originY - this.state.originY * this.state.zoom}px`,\n left: `${this.originX - this.state.originX * this.state.zoom}px`,\n width: `${this.imageWidth * this.state.zoom}px`,\n height: `${this.imageHeight * this.state.zoom}px`\n };\n return (\n
\n
\n \n \n \n
\n
\n \n
\n
\n );\n }\n}\n","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport SendMessage from '../widgets/send-message.jsx';\n\nimport { bytesToHumanSize, shortenFileName } from '../lib/strformat.js';\n\n// Get material icon name from mime type.\nfunction iconFromMime(mime) {\n // If more icons become available in material icons, add them to this mime-to-icon mapping.\n const mimeToIcon = {default: 'insert_drive_file', image: 'image', text: 'description', video: 'theaters'};\n\n return mimeToIcon[mime] || mimeToIcon[(mime || '').split('/')[0]] || mimeToIcon['default'];\n}\n\nexport default class DocPreview extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.handleSendDoc = this.handleSendDoc.bind(this);\n }\n\n handleSendDoc(caption) {\n this.props.onClose();\n this.props.onSendMessage(this.props.content.file);\n }\n\n render() {\n if (!this.props.content) {\n return null;\n }\n return (\n
\n );\n }\n}\n","// GroupMembers: control for managing a list of group members.\nimport React from 'react';\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\n\nimport ChipInput from './chip-input.jsx';\nimport ContactList from './contact-list.jsx';\n\nconst messages = defineMessages({\n no_contacts: {\n id: 'no_contacts',\n defaultMessage: 'You have no contacts :-(',\n description: 'Shown in ContactsView when the user has no contacts'\n },\n contacts_not_found_short: {\n id: 'contacts_not_found_short',\n defaultMessage: \"No contacts match ''{query}''\",\n description: 'Shown in ContactsView when search returned no results'\n }\n});\n\nclass GroupManager extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n // Array of topic members\n members: props.members,\n index: GroupManager.indexMembers(props.members),\n staticMembers: GroupManager.staticMembers(props.members, props.keepInitialMembers, props.requiredMember),\n contactFilter: '',\n noContactsMessage: props.intl.formatMessage(messages.no_contacts),\n selectedContacts: GroupManager.selectedContacts(props.members)\n };\n\n this.handleContactSelected = this.handleContactSelected.bind(this);\n this.handleMemberRemoved = this.handleMemberRemoved.bind(this);\n this.handleContactFilter = this.handleContactFilter.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n }\n\n static indexMembers(members) {\n let index = {};\n members.map((m) => {\n index[m.user] = {delta: 0, present: true}; // Delta: 0 unchanged, +1 added, -1 removed\n });\n return index;\n }\n\n static staticMembers(members, keepInitial, requiredMember) {\n let stat = [];\n members.map((m) => {\n if (keepInitial || m.user == requiredMember) {\n stat.push(m.user);\n }\n });\n return stat;\n }\n\n static selectedContacts(members) {\n let sel = [];\n members.map((m) => {\n sel.push(m.user);\n });\n return sel;\n }\n\n handleContactSelected(userId, index) {\n let status = this.state.index[userId];\n if (status) {\n if (status.present) {\n // Prevent duplicate members\n return;\n }\n status.delta += 1;\n status.present = true;\n } else {\n status = {delta: 1, present: true};\n }\n\n let m = this.state.members.slice();\n m.push(this.props.contacts[index]);\n\n const sel = GroupManager.selectedContacts(m);\n\n const i = this.state.index;\n i[userId] = status;\n\n this.setState({members: m, index: i, selectedContacts: sel});\n }\n\n handleMemberRemoved(userId, index) {\n const status = this.state.index[userId];\n if (!status || !status.present) {\n return;\n }\n status.present = false;\n status.delta -= 1;\n\n let m = this.state.members.slice();\n m.splice(index, 1);\n\n const sel = GroupManager.selectedContacts(m);\n\n const i = this.state.index;\n i[userId] = status;\n\n this.setState({members: m, index: i, selectedContacts: sel});\n }\n\n handleContactFilter(val) {\n const {formatMessage} = this.props.intl;\n const msg = !val ?\n formatMessage(messages.no_contacts) :\n formatMessage(messages.contacts_not_found_short, {query: val});\n\n this.setState({contactFilter: val, noContactsMessage: msg});\n }\n\n static doContactFiltering(filter, values) {\n if (filter) {\n for (let i=0; i= 0) {\n return true;\n }\n }\n return false;\n }\n return true;\n }\n\n handleSubmit() {\n var instance = this;\n var members = [];\n var added = [];\n var removed = [];\n\n var keys = Object.keys(this.state.index);\n keys.map(function(k) {\n if (instance.state.index[k].present) {\n members.push(k);\n }\n\n if (instance.state.index[k].delta > 0) {\n added.push(k);\n } else if (instance.state.index[k].delta < 0) {\n removed.push(k);\n }\n });\n this.props.onSubmit(members, added, removed);\n }\n\n handleCancel() {\n this.props.onCancel();\n }\n\n render() {\n const {formatMessage} = this.props.intl;\n return (\n
\n
\n \n
\n
\n \n
\n
\n \n
\n \n
\n \n \n
\n
\n );\n }\n};\n\nexport default injectIntl(GroupManager);\n","// GroupSubs: a list of group subscribers currently online.\n// Show in the topic title bar\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { MAX_ONLINE_IN_TOPIC } from '../config.js'\n\nimport LetterTile from './letter-tile.jsx';\nimport { makeImageUrl } from '../lib/blob-helpers.js';\n\nexport default class GroupSubs extends React.Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n const usersOnline = [];\n const totalCount = (this.props.subscribers || []).length;\n const countToShow = Math.min(MAX_ONLINE_IN_TOPIC, totalCount);\n\n (this.props.subscribers || []).some((sub) => {\n usersOnline.push(\n
: null);\n }\n}\n","// The X menu to be displayed in title bars.\nimport React from 'react';\n\nexport default class MenuCancel extends React.PureComponent {\n render() {\n return (\n {e.preventDefault(); this.props.onCancel();}}>\n close\n \n );\n }\n}\n","import React from 'react';\n\nexport default class MenuContacts extends React.PureComponent {\n render() {\n return (\n
\n );\n }\n};\n","// Message bubble with non-payload content, such as an indicator of deleted content or a date stamp.\n\nimport React from 'react';\n\nexport default class MetaMessage extends React.PureComponent {\n constructor(props) {\n super(props);\n }\n\n render() {\n let content = null;\n let bubbleClass = 'bubble';\n if (this.props.date) {\n // A date badge.\n content = <>{this.props.date}>\n bubbleClass += ' date';\n }\n\n if (!content) {\n return <>{null}>\n }\n\n return (\n
\n );\n }\n};\n","import React from 'react';\n\nimport LetterTile from './letter-tile.jsx';\nimport LoadSpinner from './load-spinner.jsx';\n\nimport { sanitizeUrlForMime } from '../lib/utils.js';\n\nimport { AVATAR_SIZE } from '../config.js';\n\nexport default class AvatarUpload extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n source: props.avatar\n };\n\n this.handleFileReceived = this.handleFileReceived.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.avatar != prevProps.avatar) {\n this.setState({source: this.props.avatar});\n }\n }\n\n handleFileReceived(e) {\n const image = e.target.files[0];\n this.props.onImageUpdated(image.type, URL.createObjectURL(image), image.name);\n // Clear the value so the same file can be uploaded again.\n e.target.value = '';\n }\n\n render() {\n // Randomize id value in case more than one AvatarUpload is shown\n // at the same time.\n const randId = 'file-input-avatar-' + ('' + Math.random()).substring(0, 4);\n const className = 'avatar-upload' + (this.props.readOnly ? ' read-only' : '');\n return (\n
\n );\n }\n}\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","module.exports = React;","module.exports = ReactDOM;","module.exports = ReactIntl;","module.exports = Tinode;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".prod.js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/umd/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t826: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunktinode_webapp\"] = globalThis[\"webpackChunktinode_webapp\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview Firebase constants. Some of these (@defines) can be overridden at compile-time.\r\n */\r\nconst CONSTANTS = {\r\n /**\r\n * @define {boolean} Whether this is the client Node.js SDK.\r\n */\r\n NODE_CLIENT: false,\r\n /**\r\n * @define {boolean} Whether this is the Admin Node.js SDK.\r\n */\r\n NODE_ADMIN: false,\r\n /**\r\n * Firebase SDK Version\r\n */\r\n SDK_VERSION: '${JSCORE_VERSION}'\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Throws an error if the provided assertion is falsy\r\n */\r\nconst assert = function (assertion, message) {\r\n if (!assertion) {\r\n throw assertionError(message);\r\n }\r\n};\r\n/**\r\n * Returns an Error object suitable for throwing.\r\n */\r\nconst assertionError = function (message) {\r\n return new Error('Firebase Database (' +\r\n CONSTANTS.SDK_VERSION +\r\n ') INTERNAL ASSERT FAILED: ' +\r\n message);\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst stringToByteArray$1 = function (str) {\r\n // TODO(user): Use native implementations if/when available\r\n const out = [];\r\n let p = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n let c = str.charCodeAt(i);\r\n if (c < 128) {\r\n out[p++] = c;\r\n }\r\n else if (c < 2048) {\r\n out[p++] = (c >> 6) | 192;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else if ((c & 0xfc00) === 0xd800 &&\r\n i + 1 < str.length &&\r\n (str.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\r\n // Surrogate Pair\r\n c = 0x10000 + ((c & 0x03ff) << 10) + (str.charCodeAt(++i) & 0x03ff);\r\n out[p++] = (c >> 18) | 240;\r\n out[p++] = ((c >> 12) & 63) | 128;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else {\r\n out[p++] = (c >> 12) | 224;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n }\r\n return out;\r\n};\r\n/**\r\n * Turns an array of numbers into the string given by the concatenation of the\r\n * characters to which the numbers correspond.\r\n * @param bytes Array of numbers representing characters.\r\n * @return Stringification of the array.\r\n */\r\nconst byteArrayToString = function (bytes) {\r\n // TODO(user): Use native implementations if/when available\r\n const out = [];\r\n let pos = 0, c = 0;\r\n while (pos < bytes.length) {\r\n const c1 = bytes[pos++];\r\n if (c1 < 128) {\r\n out[c++] = String.fromCharCode(c1);\r\n }\r\n else if (c1 > 191 && c1 < 224) {\r\n const c2 = bytes[pos++];\r\n out[c++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));\r\n }\r\n else if (c1 > 239 && c1 < 365) {\r\n // Surrogate Pair\r\n const c2 = bytes[pos++];\r\n const c3 = bytes[pos++];\r\n const c4 = bytes[pos++];\r\n const u = (((c1 & 7) << 18) | ((c2 & 63) << 12) | ((c3 & 63) << 6) | (c4 & 63)) -\r\n 0x10000;\r\n out[c++] = String.fromCharCode(0xd800 + (u >> 10));\r\n out[c++] = String.fromCharCode(0xdc00 + (u & 1023));\r\n }\r\n else {\r\n const c2 = bytes[pos++];\r\n const c3 = bytes[pos++];\r\n out[c++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\r\n }\r\n }\r\n return out.join('');\r\n};\r\n// We define it as an object literal instead of a class because a class compiled down to es5 can't\r\n// be treeshaked. https://github.com/rollup/rollup/issues/1691\r\n// Static lookup maps, lazily populated by init_()\r\nconst base64 = {\r\n /**\r\n * Maps bytes to characters.\r\n */\r\n byteToCharMap_: null,\r\n /**\r\n * Maps characters to bytes.\r\n */\r\n charToByteMap_: null,\r\n /**\r\n * Maps bytes to websafe characters.\r\n * @private\r\n */\r\n byteToCharMapWebSafe_: null,\r\n /**\r\n * Maps websafe characters to bytes.\r\n * @private\r\n */\r\n charToByteMapWebSafe_: null,\r\n /**\r\n * Our default alphabet, shared between\r\n * ENCODED_VALS and ENCODED_VALS_WEBSAFE\r\n */\r\n ENCODED_VALS_BASE: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789',\r\n /**\r\n * Our default alphabet. Value 64 (=) is special; it means \"nothing.\"\r\n */\r\n get ENCODED_VALS() {\r\n return this.ENCODED_VALS_BASE + '+/=';\r\n },\r\n /**\r\n * Our websafe alphabet.\r\n */\r\n get ENCODED_VALS_WEBSAFE() {\r\n return this.ENCODED_VALS_BASE + '-_.';\r\n },\r\n /**\r\n * Whether this browser supports the atob and btoa functions. This extension\r\n * started at Mozilla but is now implemented by many browsers. We use the\r\n * ASSUME_* variables to avoid pulling in the full useragent detection library\r\n * but still allowing the standard per-browser compilations.\r\n *\r\n */\r\n HAS_NATIVE_SUPPORT: typeof atob === 'function',\r\n /**\r\n * Base64-encode an array of bytes.\r\n *\r\n * @param input An array of bytes (numbers with\r\n * value in [0, 255]) to encode.\r\n * @param webSafe Boolean indicating we should use the\r\n * alternative alphabet.\r\n * @return The base64 encoded string.\r\n */\r\n encodeByteArray(input, webSafe) {\r\n if (!Array.isArray(input)) {\r\n throw Error('encodeByteArray takes an array as a parameter');\r\n }\r\n this.init_();\r\n const byteToCharMap = webSafe\r\n ? this.byteToCharMapWebSafe_\r\n : this.byteToCharMap_;\r\n const output = [];\r\n for (let i = 0; i < input.length; i += 3) {\r\n const byte1 = input[i];\r\n const haveByte2 = i + 1 < input.length;\r\n const byte2 = haveByte2 ? input[i + 1] : 0;\r\n const haveByte3 = i + 2 < input.length;\r\n const byte3 = haveByte3 ? input[i + 2] : 0;\r\n const outByte1 = byte1 >> 2;\r\n const outByte2 = ((byte1 & 0x03) << 4) | (byte2 >> 4);\r\n let outByte3 = ((byte2 & 0x0f) << 2) | (byte3 >> 6);\r\n let outByte4 = byte3 & 0x3f;\r\n if (!haveByte3) {\r\n outByte4 = 64;\r\n if (!haveByte2) {\r\n outByte3 = 64;\r\n }\r\n }\r\n output.push(byteToCharMap[outByte1], byteToCharMap[outByte2], byteToCharMap[outByte3], byteToCharMap[outByte4]);\r\n }\r\n return output.join('');\r\n },\r\n /**\r\n * Base64-encode a string.\r\n *\r\n * @param input A string to encode.\r\n * @param webSafe If true, we should use the\r\n * alternative alphabet.\r\n * @return The base64 encoded string.\r\n */\r\n encodeString(input, webSafe) {\r\n // Shortcut for Mozilla browsers that implement\r\n // a native base64 encoder in the form of \"btoa/atob\"\r\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\r\n return btoa(input);\r\n }\r\n return this.encodeByteArray(stringToByteArray$1(input), webSafe);\r\n },\r\n /**\r\n * Base64-decode a string.\r\n *\r\n * @param input to decode.\r\n * @param webSafe True if we should use the\r\n * alternative alphabet.\r\n * @return string representing the decoded value.\r\n */\r\n decodeString(input, webSafe) {\r\n // Shortcut for Mozilla browsers that implement\r\n // a native base64 encoder in the form of \"btoa/atob\"\r\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\r\n return atob(input);\r\n }\r\n return byteArrayToString(this.decodeStringToByteArray(input, webSafe));\r\n },\r\n /**\r\n * Base64-decode a string.\r\n *\r\n * In base-64 decoding, groups of four characters are converted into three\r\n * bytes. If the encoder did not apply padding, the input length may not\r\n * be a multiple of 4.\r\n *\r\n * In this case, the last group will have fewer than 4 characters, and\r\n * padding will be inferred. If the group has one or two characters, it decodes\r\n * to one byte. If the group has three characters, it decodes to two bytes.\r\n *\r\n * @param input Input to decode.\r\n * @param webSafe True if we should use the web-safe alphabet.\r\n * @return bytes representing the decoded value.\r\n */\r\n decodeStringToByteArray(input, webSafe) {\r\n this.init_();\r\n const charToByteMap = webSafe\r\n ? this.charToByteMapWebSafe_\r\n : this.charToByteMap_;\r\n const output = [];\r\n for (let i = 0; i < input.length;) {\r\n const byte1 = charToByteMap[input.charAt(i++)];\r\n const haveByte2 = i < input.length;\r\n const byte2 = haveByte2 ? charToByteMap[input.charAt(i)] : 0;\r\n ++i;\r\n const haveByte3 = i < input.length;\r\n const byte3 = haveByte3 ? charToByteMap[input.charAt(i)] : 64;\r\n ++i;\r\n const haveByte4 = i < input.length;\r\n const byte4 = haveByte4 ? charToByteMap[input.charAt(i)] : 64;\r\n ++i;\r\n if (byte1 == null || byte2 == null || byte3 == null || byte4 == null) {\r\n throw Error();\r\n }\r\n const outByte1 = (byte1 << 2) | (byte2 >> 4);\r\n output.push(outByte1);\r\n if (byte3 !== 64) {\r\n const outByte2 = ((byte2 << 4) & 0xf0) | (byte3 >> 2);\r\n output.push(outByte2);\r\n if (byte4 !== 64) {\r\n const outByte3 = ((byte3 << 6) & 0xc0) | byte4;\r\n output.push(outByte3);\r\n }\r\n }\r\n }\r\n return output;\r\n },\r\n /**\r\n * Lazy static initialization function. Called before\r\n * accessing any of the static map variables.\r\n * @private\r\n */\r\n init_() {\r\n if (!this.byteToCharMap_) {\r\n this.byteToCharMap_ = {};\r\n this.charToByteMap_ = {};\r\n this.byteToCharMapWebSafe_ = {};\r\n this.charToByteMapWebSafe_ = {};\r\n // We want quick mappings back and forth, so we precompute two maps.\r\n for (let i = 0; i < this.ENCODED_VALS.length; i++) {\r\n this.byteToCharMap_[i] = this.ENCODED_VALS.charAt(i);\r\n this.charToByteMap_[this.byteToCharMap_[i]] = i;\r\n this.byteToCharMapWebSafe_[i] = this.ENCODED_VALS_WEBSAFE.charAt(i);\r\n this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[i]] = i;\r\n // Be forgiving when decoding and correctly decode both encodings.\r\n if (i >= this.ENCODED_VALS_BASE.length) {\r\n this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(i)] = i;\r\n this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(i)] = i;\r\n }\r\n }\r\n }\r\n }\r\n};\r\n/**\r\n * URL-safe base64 encoding\r\n */\r\nconst base64Encode = function (str) {\r\n const utf8Bytes = stringToByteArray$1(str);\r\n return base64.encodeByteArray(utf8Bytes, true);\r\n};\r\n/**\r\n * URL-safe base64 encoding (without \".\" padding in the end).\r\n * e.g. Used in JSON Web Token (JWT) parts.\r\n */\r\nconst base64urlEncodeWithoutPadding = function (str) {\r\n // Use base64url encoding and remove padding in the end (dot characters).\r\n return base64Encode(str).replace(/\\./g, '');\r\n};\r\n/**\r\n * URL-safe base64 decoding\r\n *\r\n * NOTE: DO NOT use the global atob() function - it does NOT support the\r\n * base64Url variant encoding.\r\n *\r\n * @param str To be decoded\r\n * @return Decoded result, if possible\r\n */\r\nconst base64Decode = function (str) {\r\n try {\r\n return base64.decodeString(str, true);\r\n }\r\n catch (e) {\r\n console.error('base64Decode failed: ', e);\r\n }\r\n return null;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Do a deep-copy of basic JavaScript Objects or Arrays.\r\n */\r\nfunction deepCopy(value) {\r\n return deepExtend(undefined, value);\r\n}\r\n/**\r\n * Copy properties from source to target (recursively allows extension\r\n * of Objects and Arrays). Scalar values in the target are over-written.\r\n * If target is undefined, an object of the appropriate type will be created\r\n * (and returned).\r\n *\r\n * We recursively copy all child properties of plain Objects in the source- so\r\n * that namespace- like dictionaries are merged.\r\n *\r\n * Note that the target can be a function, in which case the properties in\r\n * the source Object are copied onto it as static properties of the Function.\r\n *\r\n * Note: we don't merge __proto__ to prevent prototype pollution\r\n */\r\nfunction deepExtend(target, source) {\r\n if (!(source instanceof Object)) {\r\n return source;\r\n }\r\n switch (source.constructor) {\r\n case Date:\r\n // Treat Dates like scalars; if the target date object had any child\r\n // properties - they will be lost!\r\n const dateValue = source;\r\n return new Date(dateValue.getTime());\r\n case Object:\r\n if (target === undefined) {\r\n target = {};\r\n }\r\n break;\r\n case Array:\r\n // Always copy the array source and overwrite the target.\r\n target = [];\r\n break;\r\n default:\r\n // Not a plain Object - treat it as a scalar.\r\n return source;\r\n }\r\n for (const prop in source) {\r\n // use isValidKey to guard against prototype pollution. See https://snyk.io/vuln/SNYK-JS-LODASH-450202\r\n if (!source.hasOwnProperty(prop) || !isValidKey(prop)) {\r\n continue;\r\n }\r\n target[prop] = deepExtend(target[prop], source[prop]);\r\n }\r\n return target;\r\n}\r\nfunction isValidKey(key) {\r\n return key !== '__proto__';\r\n}\n\n/**\r\n * @license\r\n * Copyright 2022 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Polyfill for `globalThis` object.\r\n * @returns the `globalThis` object for the given environment.\r\n * @public\r\n */\r\nfunction getGlobal() {\r\n if (typeof self !== 'undefined') {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined') {\r\n return window;\r\n }\r\n if (typeof global !== 'undefined') {\r\n return global;\r\n }\r\n throw new Error('Unable to locate global object.');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2022 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst getDefaultsFromGlobal = () => getGlobal().__FIREBASE_DEFAULTS__;\r\n/**\r\n * Attempt to read defaults from a JSON string provided to\r\n * process(.)env(.)__FIREBASE_DEFAULTS__ or a JSON file whose path is in\r\n * process(.)env(.)__FIREBASE_DEFAULTS_PATH__\r\n * The dots are in parens because certain compilers (Vite?) cannot\r\n * handle seeing that variable in comments.\r\n * See https://github.com/firebase/firebase-js-sdk/issues/6838\r\n */\r\nconst getDefaultsFromEnvVariable = () => {\r\n if (typeof process === 'undefined' || typeof process.env === 'undefined') {\r\n return;\r\n }\r\n const defaultsJsonString = process.env.__FIREBASE_DEFAULTS__;\r\n if (defaultsJsonString) {\r\n return JSON.parse(defaultsJsonString);\r\n }\r\n};\r\nconst getDefaultsFromCookie = () => {\r\n if (typeof document === 'undefined') {\r\n return;\r\n }\r\n let match;\r\n try {\r\n match = document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/);\r\n }\r\n catch (e) {\r\n // Some environments such as Angular Universal SSR have a\r\n // `document` object but error on accessing `document.cookie`.\r\n return;\r\n }\r\n const decoded = match && base64Decode(match[1]);\r\n return decoded && JSON.parse(decoded);\r\n};\r\n/**\r\n * Get the __FIREBASE_DEFAULTS__ object. It checks in order:\r\n * (1) if such an object exists as a property of `globalThis`\r\n * (2) if such an object was provided on a shell environment variable\r\n * (3) if such an object exists in a cookie\r\n * @public\r\n */\r\nconst getDefaults = () => {\r\n try {\r\n return (getDefaultsFromGlobal() ||\r\n getDefaultsFromEnvVariable() ||\r\n getDefaultsFromCookie());\r\n }\r\n catch (e) {\r\n /**\r\n * Catch-all for being unable to get __FIREBASE_DEFAULTS__ due\r\n * to any environment case we have not accounted for. Log to\r\n * info instead of swallowing so we can find these unknown cases\r\n * and add paths for them if needed.\r\n */\r\n console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`);\r\n return;\r\n }\r\n};\r\n/**\r\n * Returns emulator host stored in the __FIREBASE_DEFAULTS__ object\r\n * for the given product.\r\n * @returns a URL host formatted like `127.0.0.1:9999` or `[::1]:4000` if available\r\n * @public\r\n */\r\nconst getDefaultEmulatorHost = (productName) => { var _a, _b; return (_b = (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a.emulatorHosts) === null || _b === void 0 ? void 0 : _b[productName]; };\r\n/**\r\n * Returns emulator hostname and port stored in the __FIREBASE_DEFAULTS__ object\r\n * for the given product.\r\n * @returns a pair of hostname and port like `[\"::1\", 4000]` if available\r\n * @public\r\n */\r\nconst getDefaultEmulatorHostnameAndPort = (productName) => {\r\n const host = getDefaultEmulatorHost(productName);\r\n if (!host) {\r\n return undefined;\r\n }\r\n const separatorIndex = host.lastIndexOf(':'); // Finding the last since IPv6 addr also has colons.\r\n if (separatorIndex <= 0 || separatorIndex + 1 === host.length) {\r\n throw new Error(`Invalid host ${host} with no separate hostname and port!`);\r\n }\r\n // eslint-disable-next-line no-restricted-globals\r\n const port = parseInt(host.substring(separatorIndex + 1), 10);\r\n if (host[0] === '[') {\r\n // Bracket-quoted `[ipv6addr]:port` => return \"ipv6addr\" (without brackets).\r\n return [host.substring(1, separatorIndex - 1), port];\r\n }\r\n else {\r\n return [host.substring(0, separatorIndex), port];\r\n }\r\n};\r\n/**\r\n * Returns Firebase app config stored in the __FIREBASE_DEFAULTS__ object.\r\n * @public\r\n */\r\nconst getDefaultAppConfig = () => { var _a; return (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a.config; };\r\n/**\r\n * Returns an experimental setting on the __FIREBASE_DEFAULTS__ object (properties\r\n * prefixed by \"_\")\r\n * @public\r\n */\r\nconst getExperimentalSetting = (name) => { var _a; return (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a[`_${name}`]; };\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nclass Deferred {\r\n constructor() {\r\n this.reject = () => { };\r\n this.resolve = () => { };\r\n this.promise = new Promise((resolve, reject) => {\r\n this.resolve = resolve;\r\n this.reject = reject;\r\n });\r\n }\r\n /**\r\n * Our API internals are not promiseified and cannot because our callback APIs have subtle expectations around\r\n * invoking promises inline, which Promises are forbidden to do. This method accepts an optional node-style callback\r\n * and returns a node-style callback which will resolve or reject the Deferred's promise.\r\n */\r\n wrapCallback(callback) {\r\n return (error, value) => {\r\n if (error) {\r\n this.reject(error);\r\n }\r\n else {\r\n this.resolve(value);\r\n }\r\n if (typeof callback === 'function') {\r\n // Attaching noop handler just in case developer wasn't expecting\r\n // promises\r\n this.promise.catch(() => { });\r\n // Some of our callbacks don't expect a value and our own tests\r\n // assert that the parameter length is 1\r\n if (callback.length === 1) {\r\n callback(error);\r\n }\r\n else {\r\n callback(error, value);\r\n }\r\n }\r\n };\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction createMockUserToken(token, projectId) {\r\n if (token.uid) {\r\n throw new Error('The \"uid\" field is no longer supported by mockUserToken. Please use \"sub\" instead for Firebase Auth User ID.');\r\n }\r\n // Unsecured JWTs use \"none\" as the algorithm.\r\n const header = {\r\n alg: 'none',\r\n type: 'JWT'\r\n };\r\n const project = projectId || 'demo-project';\r\n const iat = token.iat || 0;\r\n const sub = token.sub || token.user_id;\r\n if (!sub) {\r\n throw new Error(\"mockUserToken must contain 'sub' or 'user_id' field!\");\r\n }\r\n const payload = Object.assign({ \r\n // Set all required fields to decent defaults\r\n iss: `https://securetoken.google.com/${project}`, aud: project, iat, exp: iat + 3600, auth_time: iat, sub, user_id: sub, firebase: {\r\n sign_in_provider: 'custom',\r\n identities: {}\r\n } }, token);\r\n // Unsecured JWTs use the empty string as a signature.\r\n const signature = '';\r\n return [\r\n base64urlEncodeWithoutPadding(JSON.stringify(header)),\r\n base64urlEncodeWithoutPadding(JSON.stringify(payload)),\r\n signature\r\n ].join('.');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns navigator.userAgent string or '' if it's not defined.\r\n * @return user agent string\r\n */\r\nfunction getUA() {\r\n if (typeof navigator !== 'undefined' &&\r\n typeof navigator['userAgent'] === 'string') {\r\n return navigator['userAgent'];\r\n }\r\n else {\r\n return '';\r\n }\r\n}\r\n/**\r\n * Detect Cordova / PhoneGap / Ionic frameworks on a mobile device.\r\n *\r\n * Deliberately does not rely on checking `file://` URLs (as this fails PhoneGap\r\n * in the Ripple emulator) nor Cordova `onDeviceReady`, which would normally\r\n * wait for a callback.\r\n */\r\nfunction isMobileCordova() {\r\n return (typeof window !== 'undefined' &&\r\n // @ts-ignore Setting up an broadly applicable index signature for Window\r\n // just to deal with this case would probably be a bad idea.\r\n !!(window['cordova'] || window['phonegap'] || window['PhoneGap']) &&\r\n /ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(getUA()));\r\n}\r\n/**\r\n * Detect Node.js.\r\n *\r\n * @return true if Node.js environment is detected or specified.\r\n */\r\n// Node detection logic from: https://github.com/iliakan/detect-node/\r\nfunction isNode() {\r\n var _a;\r\n const forceEnvironment = (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a.forceEnvironment;\r\n if (forceEnvironment === 'node') {\r\n return true;\r\n }\r\n else if (forceEnvironment === 'browser') {\r\n return false;\r\n }\r\n try {\r\n return (Object.prototype.toString.call(global.process) === '[object process]');\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n}\r\n/**\r\n * Detect Browser Environment\r\n */\r\nfunction isBrowser() {\r\n return typeof self === 'object' && self.self === self;\r\n}\r\nfunction isBrowserExtension() {\r\n const runtime = typeof chrome === 'object'\r\n ? chrome.runtime\r\n : typeof browser === 'object'\r\n ? browser.runtime\r\n : undefined;\r\n return typeof runtime === 'object' && runtime.id !== undefined;\r\n}\r\n/**\r\n * Detect React Native.\r\n *\r\n * @return true if ReactNative environment is detected.\r\n */\r\nfunction isReactNative() {\r\n return (typeof navigator === 'object' && navigator['product'] === 'ReactNative');\r\n}\r\n/** Detects Electron apps. */\r\nfunction isElectron() {\r\n return getUA().indexOf('Electron/') >= 0;\r\n}\r\n/** Detects Internet Explorer. */\r\nfunction isIE() {\r\n const ua = getUA();\r\n return ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\r\n}\r\n/** Detects Universal Windows Platform apps. */\r\nfunction isUWP() {\r\n return getUA().indexOf('MSAppHost/') >= 0;\r\n}\r\n/**\r\n * Detect whether the current SDK build is the Node version.\r\n *\r\n * @return true if it's the Node SDK build.\r\n */\r\nfunction isNodeSdk() {\r\n return CONSTANTS.NODE_CLIENT === true || CONSTANTS.NODE_ADMIN === true;\r\n}\r\n/** Returns true if we are running in Safari. */\r\nfunction isSafari() {\r\n return (!isNode() &&\r\n navigator.userAgent.includes('Safari') &&\r\n !navigator.userAgent.includes('Chrome'));\r\n}\r\n/**\r\n * This method checks if indexedDB is supported by current browser/service worker context\r\n * @return true if indexedDB is supported by current browser/service worker context\r\n */\r\nfunction isIndexedDBAvailable() {\r\n try {\r\n return typeof indexedDB === 'object';\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n}\r\n/**\r\n * This method validates browser/sw context for indexedDB by opening a dummy indexedDB database and reject\r\n * if errors occur during the database open operation.\r\n *\r\n * @throws exception if current browser/sw context can't run idb.open (ex: Safari iframe, Firefox\r\n * private browsing)\r\n */\r\nfunction validateIndexedDBOpenable() {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n let preExist = true;\r\n const DB_CHECK_NAME = 'validate-browser-context-for-indexeddb-analytics-module';\r\n const request = self.indexedDB.open(DB_CHECK_NAME);\r\n request.onsuccess = () => {\r\n request.result.close();\r\n // delete database only when it doesn't pre-exist\r\n if (!preExist) {\r\n self.indexedDB.deleteDatabase(DB_CHECK_NAME);\r\n }\r\n resolve(true);\r\n };\r\n request.onupgradeneeded = () => {\r\n preExist = false;\r\n };\r\n request.onerror = () => {\r\n var _a;\r\n reject(((_a = request.error) === null || _a === void 0 ? void 0 : _a.message) || '');\r\n };\r\n }\r\n catch (error) {\r\n reject(error);\r\n }\r\n });\r\n}\r\n/**\r\n *\r\n * This method checks whether cookie is enabled within current browser\r\n * @return true if cookie is enabled within current browser\r\n */\r\nfunction areCookiesEnabled() {\r\n if (typeof navigator === 'undefined' || !navigator.cookieEnabled) {\r\n return false;\r\n }\r\n return true;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview Standardized Firebase Error.\r\n *\r\n * Usage:\r\n *\r\n * // Typescript string literals for type-safe codes\r\n * type Err =\r\n * 'unknown' |\r\n * 'object-not-found'\r\n * ;\r\n *\r\n * // Closure enum for type-safe error codes\r\n * // at-enum {string}\r\n * var Err = {\r\n * UNKNOWN: 'unknown',\r\n * OBJECT_NOT_FOUND: 'object-not-found',\r\n * }\r\n *\r\n * let errors: Map = {\r\n * 'generic-error': \"Unknown error\",\r\n * 'file-not-found': \"Could not find file: {$file}\",\r\n * };\r\n *\r\n * // Type-safe function - must pass a valid error code as param.\r\n * let error = new ErrorFactory('service', 'Service', errors);\r\n *\r\n * ...\r\n * throw error.create(Err.GENERIC);\r\n * ...\r\n * throw error.create(Err.FILE_NOT_FOUND, {'file': fileName});\r\n * ...\r\n * // Service: Could not file file: foo.txt (service/file-not-found).\r\n *\r\n * catch (e) {\r\n * assert(e.message === \"Could not find file: foo.txt.\");\r\n * if ((e as FirebaseError)?.code === 'service/file-not-found') {\r\n * console.log(\"Could not read file: \" + e['file']);\r\n * }\r\n * }\r\n */\r\nconst ERROR_NAME = 'FirebaseError';\r\n// Based on code from:\r\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Custom_Error_Types\r\nclass FirebaseError extends Error {\r\n constructor(\r\n /** The error code for this error. */\r\n code, message, \r\n /** Custom data for this error. */\r\n customData) {\r\n super(message);\r\n this.code = code;\r\n this.customData = customData;\r\n /** The custom name for all FirebaseErrors. */\r\n this.name = ERROR_NAME;\r\n // Fix For ES5\r\n // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\r\n Object.setPrototypeOf(this, FirebaseError.prototype);\r\n // Maintains proper stack trace for where our error was thrown.\r\n // Only available on V8.\r\n if (Error.captureStackTrace) {\r\n Error.captureStackTrace(this, ErrorFactory.prototype.create);\r\n }\r\n }\r\n}\r\nclass ErrorFactory {\r\n constructor(service, serviceName, errors) {\r\n this.service = service;\r\n this.serviceName = serviceName;\r\n this.errors = errors;\r\n }\r\n create(code, ...data) {\r\n const customData = data[0] || {};\r\n const fullCode = `${this.service}/${code}`;\r\n const template = this.errors[code];\r\n const message = template ? replaceTemplate(template, customData) : 'Error';\r\n // Service Name: Error message (service/code).\r\n const fullMessage = `${this.serviceName}: ${message} (${fullCode}).`;\r\n const error = new FirebaseError(fullCode, fullMessage, customData);\r\n return error;\r\n }\r\n}\r\nfunction replaceTemplate(template, data) {\r\n return template.replace(PATTERN, (_, key) => {\r\n const value = data[key];\r\n return value != null ? String(value) : `<${key}?>`;\r\n });\r\n}\r\nconst PATTERN = /\\{\\$([^}]+)}/g;\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Evaluates a JSON string into a javascript object.\r\n *\r\n * @param {string} str A string containing JSON.\r\n * @return {*} The javascript object representing the specified JSON.\r\n */\r\nfunction jsonEval(str) {\r\n return JSON.parse(str);\r\n}\r\n/**\r\n * Returns JSON representing a javascript object.\r\n * @param {*} data Javascript object to be stringified.\r\n * @return {string} The JSON contents of the object.\r\n */\r\nfunction stringify(data) {\r\n return JSON.stringify(data);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Decodes a Firebase auth. token into constituent parts.\r\n *\r\n * Notes:\r\n * - May return with invalid / incomplete claims if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst decode = function (token) {\r\n let header = {}, claims = {}, data = {}, signature = '';\r\n try {\r\n const parts = token.split('.');\r\n header = jsonEval(base64Decode(parts[0]) || '');\r\n claims = jsonEval(base64Decode(parts[1]) || '');\r\n signature = parts[2];\r\n data = claims['d'] || {};\r\n delete claims['d'];\r\n }\r\n catch (e) { }\r\n return {\r\n header,\r\n claims,\r\n data,\r\n signature\r\n };\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its time-based claims. Will return true if the\r\n * token is within the time window authorized by the 'nbf' (not-before) and 'iat' (issued-at) claims.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst isValidTimestamp = function (token) {\r\n const claims = decode(token).claims;\r\n const now = Math.floor(new Date().getTime() / 1000);\r\n let validSince = 0, validUntil = 0;\r\n if (typeof claims === 'object') {\r\n if (claims.hasOwnProperty('nbf')) {\r\n validSince = claims['nbf'];\r\n }\r\n else if (claims.hasOwnProperty('iat')) {\r\n validSince = claims['iat'];\r\n }\r\n if (claims.hasOwnProperty('exp')) {\r\n validUntil = claims['exp'];\r\n }\r\n else {\r\n // token will expire after 24h by default\r\n validUntil = validSince + 86400;\r\n }\r\n }\r\n return (!!now &&\r\n !!validSince &&\r\n !!validUntil &&\r\n now >= validSince &&\r\n now <= validUntil);\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and returns its issued at time if valid, null otherwise.\r\n *\r\n * Notes:\r\n * - May return null if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst issuedAtTime = function (token) {\r\n const claims = decode(token).claims;\r\n if (typeof claims === 'object' && claims.hasOwnProperty('iat')) {\r\n return claims['iat'];\r\n }\r\n return null;\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its format. Expects a valid issued-at time.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst isValidFormat = function (token) {\r\n const decoded = decode(token), claims = decoded.claims;\r\n return !!claims && typeof claims === 'object' && claims.hasOwnProperty('iat');\r\n};\r\n/**\r\n * Attempts to peer into an auth token and determine if it's an admin auth token by looking at the claims portion.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst isAdmin = function (token) {\r\n const claims = decode(token).claims;\r\n return typeof claims === 'object' && claims['admin'] === true;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction contains(obj, key) {\r\n return Object.prototype.hasOwnProperty.call(obj, key);\r\n}\r\nfunction safeGet(obj, key) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n return obj[key];\r\n }\r\n else {\r\n return undefined;\r\n }\r\n}\r\nfunction isEmpty(obj) {\r\n for (const key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction map(obj, fn, contextObj) {\r\n const res = {};\r\n for (const key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n res[key] = fn.call(contextObj, obj[key], key, obj);\r\n }\r\n }\r\n return res;\r\n}\r\n/**\r\n * Deep equal two objects. Support Arrays and Objects.\r\n */\r\nfunction deepEqual(a, b) {\r\n if (a === b) {\r\n return true;\r\n }\r\n const aKeys = Object.keys(a);\r\n const bKeys = Object.keys(b);\r\n for (const k of aKeys) {\r\n if (!bKeys.includes(k)) {\r\n return false;\r\n }\r\n const aProp = a[k];\r\n const bProp = b[k];\r\n if (isObject(aProp) && isObject(bProp)) {\r\n if (!deepEqual(aProp, bProp)) {\r\n return false;\r\n }\r\n }\r\n else if (aProp !== bProp) {\r\n return false;\r\n }\r\n }\r\n for (const k of bKeys) {\r\n if (!aKeys.includes(k)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction isObject(thing) {\r\n return thing !== null && typeof thing === 'object';\r\n}\n\n/**\r\n * @license\r\n * Copyright 2022 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Rejects if the given promise doesn't resolve in timeInMS milliseconds.\r\n * @internal\r\n */\r\nfunction promiseWithTimeout(promise, timeInMS = 2000) {\r\n const deferredPromise = new Deferred();\r\n setTimeout(() => deferredPromise.reject('timeout!'), timeInMS);\r\n promise.then(deferredPromise.resolve, deferredPromise.reject);\r\n return deferredPromise.promise;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns a querystring-formatted string (e.g. &arg=val&arg2=val2) from a\r\n * params object (e.g. {arg: 'val', arg2: 'val2'})\r\n * Note: You must prepend it with ? when adding it to a URL.\r\n */\r\nfunction querystring(querystringParams) {\r\n const params = [];\r\n for (const [key, value] of Object.entries(querystringParams)) {\r\n if (Array.isArray(value)) {\r\n value.forEach(arrayVal => {\r\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(arrayVal));\r\n });\r\n }\r\n else {\r\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));\r\n }\r\n }\r\n return params.length ? '&' + params.join('&') : '';\r\n}\r\n/**\r\n * Decodes a querystring (e.g. ?arg=val&arg2=val2) into a params object\r\n * (e.g. {arg: 'val', arg2: 'val2'})\r\n */\r\nfunction querystringDecode(querystring) {\r\n const obj = {};\r\n const tokens = querystring.replace(/^\\?/, '').split('&');\r\n tokens.forEach(token => {\r\n if (token) {\r\n const [key, value] = token.split('=');\r\n obj[decodeURIComponent(key)] = decodeURIComponent(value);\r\n }\r\n });\r\n return obj;\r\n}\r\n/**\r\n * Extract the query string part of a URL, including the leading question mark (if present).\r\n */\r\nfunction extractQuerystring(url) {\r\n const queryStart = url.indexOf('?');\r\n if (!queryStart) {\r\n return '';\r\n }\r\n const fragmentStart = url.indexOf('#', queryStart);\r\n return url.substring(queryStart, fragmentStart > 0 ? fragmentStart : undefined);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview SHA-1 cryptographic hash.\r\n * Variable names follow the notation in FIPS PUB 180-3:\r\n * http://csrc.nist.gov/publications/fips/fips180-3/fips180-3_final.pdf.\r\n *\r\n * Usage:\r\n * var sha1 = new sha1();\r\n * sha1.update(bytes);\r\n * var hash = sha1.digest();\r\n *\r\n * Performance:\r\n * Chrome 23: ~400 Mbit/s\r\n * Firefox 16: ~250 Mbit/s\r\n *\r\n */\r\n/**\r\n * SHA-1 cryptographic hash constructor.\r\n *\r\n * The properties declared here are discussed in the above algorithm document.\r\n * @constructor\r\n * @final\r\n * @struct\r\n */\r\nclass Sha1 {\r\n constructor() {\r\n /**\r\n * Holds the previous values of accumulated variables a-e in the compress_\r\n * function.\r\n * @private\r\n */\r\n this.chain_ = [];\r\n /**\r\n * A buffer holding the partially computed hash result.\r\n * @private\r\n */\r\n this.buf_ = [];\r\n /**\r\n * An array of 80 bytes, each a part of the message to be hashed. Referred to\r\n * as the message schedule in the docs.\r\n * @private\r\n */\r\n this.W_ = [];\r\n /**\r\n * Contains data needed to pad messages less than 64 bytes.\r\n * @private\r\n */\r\n this.pad_ = [];\r\n /**\r\n * @private {number}\r\n */\r\n this.inbuf_ = 0;\r\n /**\r\n * @private {number}\r\n */\r\n this.total_ = 0;\r\n this.blockSize = 512 / 8;\r\n this.pad_[0] = 128;\r\n for (let i = 1; i < this.blockSize; ++i) {\r\n this.pad_[i] = 0;\r\n }\r\n this.reset();\r\n }\r\n reset() {\r\n this.chain_[0] = 0x67452301;\r\n this.chain_[1] = 0xefcdab89;\r\n this.chain_[2] = 0x98badcfe;\r\n this.chain_[3] = 0x10325476;\r\n this.chain_[4] = 0xc3d2e1f0;\r\n this.inbuf_ = 0;\r\n this.total_ = 0;\r\n }\r\n /**\r\n * Internal compress helper function.\r\n * @param buf Block to compress.\r\n * @param offset Offset of the block in the buffer.\r\n * @private\r\n */\r\n compress_(buf, offset) {\r\n if (!offset) {\r\n offset = 0;\r\n }\r\n const W = this.W_;\r\n // get 16 big endian words\r\n if (typeof buf === 'string') {\r\n for (let i = 0; i < 16; i++) {\r\n // TODO(user): [bug 8140122] Recent versions of Safari for Mac OS and iOS\r\n // have a bug that turns the post-increment ++ operator into pre-increment\r\n // during JIT compilation. We have code that depends heavily on SHA-1 for\r\n // correctness and which is affected by this bug, so I've removed all uses\r\n // of post-increment ++ in which the result value is used. We can revert\r\n // this change once the Safari bug\r\n // (https://bugs.webkit.org/show_bug.cgi?id=109036) has been fixed and\r\n // most clients have been updated.\r\n W[i] =\r\n (buf.charCodeAt(offset) << 24) |\r\n (buf.charCodeAt(offset + 1) << 16) |\r\n (buf.charCodeAt(offset + 2) << 8) |\r\n buf.charCodeAt(offset + 3);\r\n offset += 4;\r\n }\r\n }\r\n else {\r\n for (let i = 0; i < 16; i++) {\r\n W[i] =\r\n (buf[offset] << 24) |\r\n (buf[offset + 1] << 16) |\r\n (buf[offset + 2] << 8) |\r\n buf[offset + 3];\r\n offset += 4;\r\n }\r\n }\r\n // expand to 80 words\r\n for (let i = 16; i < 80; i++) {\r\n const t = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\r\n W[i] = ((t << 1) | (t >>> 31)) & 0xffffffff;\r\n }\r\n let a = this.chain_[0];\r\n let b = this.chain_[1];\r\n let c = this.chain_[2];\r\n let d = this.chain_[3];\r\n let e = this.chain_[4];\r\n let f, k;\r\n // TODO(user): Try to unroll this loop to speed up the computation.\r\n for (let i = 0; i < 80; i++) {\r\n if (i < 40) {\r\n if (i < 20) {\r\n f = d ^ (b & (c ^ d));\r\n k = 0x5a827999;\r\n }\r\n else {\r\n f = b ^ c ^ d;\r\n k = 0x6ed9eba1;\r\n }\r\n }\r\n else {\r\n if (i < 60) {\r\n f = (b & c) | (d & (b | c));\r\n k = 0x8f1bbcdc;\r\n }\r\n else {\r\n f = b ^ c ^ d;\r\n k = 0xca62c1d6;\r\n }\r\n }\r\n const t = (((a << 5) | (a >>> 27)) + f + e + k + W[i]) & 0xffffffff;\r\n e = d;\r\n d = c;\r\n c = ((b << 30) | (b >>> 2)) & 0xffffffff;\r\n b = a;\r\n a = t;\r\n }\r\n this.chain_[0] = (this.chain_[0] + a) & 0xffffffff;\r\n this.chain_[1] = (this.chain_[1] + b) & 0xffffffff;\r\n this.chain_[2] = (this.chain_[2] + c) & 0xffffffff;\r\n this.chain_[3] = (this.chain_[3] + d) & 0xffffffff;\r\n this.chain_[4] = (this.chain_[4] + e) & 0xffffffff;\r\n }\r\n update(bytes, length) {\r\n // TODO(johnlenz): tighten the function signature and remove this check\r\n if (bytes == null) {\r\n return;\r\n }\r\n if (length === undefined) {\r\n length = bytes.length;\r\n }\r\n const lengthMinusBlock = length - this.blockSize;\r\n let n = 0;\r\n // Using local instead of member variables gives ~5% speedup on Firefox 16.\r\n const buf = this.buf_;\r\n let inbuf = this.inbuf_;\r\n // The outer while loop should execute at most twice.\r\n while (n < length) {\r\n // When we have no data in the block to top up, we can directly process the\r\n // input buffer (assuming it contains sufficient data). This gives ~25%\r\n // speedup on Chrome 23 and ~15% speedup on Firefox 16, but requires that\r\n // the data is provided in large chunks (or in multiples of 64 bytes).\r\n if (inbuf === 0) {\r\n while (n <= lengthMinusBlock) {\r\n this.compress_(bytes, n);\r\n n += this.blockSize;\r\n }\r\n }\r\n if (typeof bytes === 'string') {\r\n while (n < length) {\r\n buf[inbuf] = bytes.charCodeAt(n);\r\n ++inbuf;\r\n ++n;\r\n if (inbuf === this.blockSize) {\r\n this.compress_(buf);\r\n inbuf = 0;\r\n // Jump to the outer loop so we use the full-block optimization.\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n while (n < length) {\r\n buf[inbuf] = bytes[n];\r\n ++inbuf;\r\n ++n;\r\n if (inbuf === this.blockSize) {\r\n this.compress_(buf);\r\n inbuf = 0;\r\n // Jump to the outer loop so we use the full-block optimization.\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n this.inbuf_ = inbuf;\r\n this.total_ += length;\r\n }\r\n /** @override */\r\n digest() {\r\n const digest = [];\r\n let totalBits = this.total_ * 8;\r\n // Add pad 0x80 0x00*.\r\n if (this.inbuf_ < 56) {\r\n this.update(this.pad_, 56 - this.inbuf_);\r\n }\r\n else {\r\n this.update(this.pad_, this.blockSize - (this.inbuf_ - 56));\r\n }\r\n // Add # bits.\r\n for (let i = this.blockSize - 1; i >= 56; i--) {\r\n this.buf_[i] = totalBits & 255;\r\n totalBits /= 256; // Don't use bit-shifting here!\r\n }\r\n this.compress_(this.buf_);\r\n let n = 0;\r\n for (let i = 0; i < 5; i++) {\r\n for (let j = 24; j >= 0; j -= 8) {\r\n digest[n] = (this.chain_[i] >> j) & 255;\r\n ++n;\r\n }\r\n }\r\n return digest;\r\n }\r\n}\n\n/**\r\n * Helper to make a Subscribe function (just like Promise helps make a\r\n * Thenable).\r\n *\r\n * @param executor Function which can make calls to a single Observer\r\n * as a proxy.\r\n * @param onNoObservers Callback when count of Observers goes to zero.\r\n */\r\nfunction createSubscribe(executor, onNoObservers) {\r\n const proxy = new ObserverProxy(executor, onNoObservers);\r\n return proxy.subscribe.bind(proxy);\r\n}\r\n/**\r\n * Implement fan-out for any number of Observers attached via a subscribe\r\n * function.\r\n */\r\nclass ObserverProxy {\r\n /**\r\n * @param executor Function which can make calls to a single Observer\r\n * as a proxy.\r\n * @param onNoObservers Callback when count of Observers goes to zero.\r\n */\r\n constructor(executor, onNoObservers) {\r\n this.observers = [];\r\n this.unsubscribes = [];\r\n this.observerCount = 0;\r\n // Micro-task scheduling by calling task.then().\r\n this.task = Promise.resolve();\r\n this.finalized = false;\r\n this.onNoObservers = onNoObservers;\r\n // Call the executor asynchronously so subscribers that are called\r\n // synchronously after the creation of the subscribe function\r\n // can still receive the very first value generated in the executor.\r\n this.task\r\n .then(() => {\r\n executor(this);\r\n })\r\n .catch(e => {\r\n this.error(e);\r\n });\r\n }\r\n next(value) {\r\n this.forEachObserver((observer) => {\r\n observer.next(value);\r\n });\r\n }\r\n error(error) {\r\n this.forEachObserver((observer) => {\r\n observer.error(error);\r\n });\r\n this.close(error);\r\n }\r\n complete() {\r\n this.forEachObserver((observer) => {\r\n observer.complete();\r\n });\r\n this.close();\r\n }\r\n /**\r\n * Subscribe function that can be used to add an Observer to the fan-out list.\r\n *\r\n * - We require that no event is sent to a subscriber sychronously to their\r\n * call to subscribe().\r\n */\r\n subscribe(nextOrObserver, error, complete) {\r\n let observer;\r\n if (nextOrObserver === undefined &&\r\n error === undefined &&\r\n complete === undefined) {\r\n throw new Error('Missing Observer.');\r\n }\r\n // Assemble an Observer object when passed as callback functions.\r\n if (implementsAnyMethods(nextOrObserver, [\r\n 'next',\r\n 'error',\r\n 'complete'\r\n ])) {\r\n observer = nextOrObserver;\r\n }\r\n else {\r\n observer = {\r\n next: nextOrObserver,\r\n error,\r\n complete\r\n };\r\n }\r\n if (observer.next === undefined) {\r\n observer.next = noop;\r\n }\r\n if (observer.error === undefined) {\r\n observer.error = noop;\r\n }\r\n if (observer.complete === undefined) {\r\n observer.complete = noop;\r\n }\r\n const unsub = this.unsubscribeOne.bind(this, this.observers.length);\r\n // Attempt to subscribe to a terminated Observable - we\r\n // just respond to the Observer with the final error or complete\r\n // event.\r\n if (this.finalized) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(() => {\r\n try {\r\n if (this.finalError) {\r\n observer.error(this.finalError);\r\n }\r\n else {\r\n observer.complete();\r\n }\r\n }\r\n catch (e) {\r\n // nothing\r\n }\r\n return;\r\n });\r\n }\r\n this.observers.push(observer);\r\n return unsub;\r\n }\r\n // Unsubscribe is synchronous - we guarantee that no events are sent to\r\n // any unsubscribed Observer.\r\n unsubscribeOne(i) {\r\n if (this.observers === undefined || this.observers[i] === undefined) {\r\n return;\r\n }\r\n delete this.observers[i];\r\n this.observerCount -= 1;\r\n if (this.observerCount === 0 && this.onNoObservers !== undefined) {\r\n this.onNoObservers(this);\r\n }\r\n }\r\n forEachObserver(fn) {\r\n if (this.finalized) {\r\n // Already closed by previous event....just eat the additional values.\r\n return;\r\n }\r\n // Since sendOne calls asynchronously - there is no chance that\r\n // this.observers will become undefined.\r\n for (let i = 0; i < this.observers.length; i++) {\r\n this.sendOne(i, fn);\r\n }\r\n }\r\n // Call the Observer via one of it's callback function. We are careful to\r\n // confirm that the observe has not been unsubscribed since this asynchronous\r\n // function had been queued.\r\n sendOne(i, fn) {\r\n // Execute the callback asynchronously\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(() => {\r\n if (this.observers !== undefined && this.observers[i] !== undefined) {\r\n try {\r\n fn(this.observers[i]);\r\n }\r\n catch (e) {\r\n // Ignore exceptions raised in Observers or missing methods of an\r\n // Observer.\r\n // Log error to console. b/31404806\r\n if (typeof console !== 'undefined' && console.error) {\r\n console.error(e);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n close(err) {\r\n if (this.finalized) {\r\n return;\r\n }\r\n this.finalized = true;\r\n if (err !== undefined) {\r\n this.finalError = err;\r\n }\r\n // Proxy is no longer needed - garbage collect references\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(() => {\r\n this.observers = undefined;\r\n this.onNoObservers = undefined;\r\n });\r\n }\r\n}\r\n/** Turn synchronous function into one called asynchronously. */\r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\nfunction async(fn, onError) {\r\n return (...args) => {\r\n Promise.resolve(true)\r\n .then(() => {\r\n fn(...args);\r\n })\r\n .catch((error) => {\r\n if (onError) {\r\n onError(error);\r\n }\r\n });\r\n };\r\n}\r\n/**\r\n * Return true if the object passed in implements any of the named methods.\r\n */\r\nfunction implementsAnyMethods(obj, methods) {\r\n if (typeof obj !== 'object' || obj === null) {\r\n return false;\r\n }\r\n for (const method of methods) {\r\n if (method in obj && typeof obj[method] === 'function') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction noop() {\r\n // do nothing\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Check to make sure the appropriate number of arguments are provided for a public function.\r\n * Throws an error if it fails.\r\n *\r\n * @param fnName The function name\r\n * @param minCount The minimum number of arguments to allow for the function call\r\n * @param maxCount The maximum number of argument to allow for the function call\r\n * @param argCount The actual number of arguments provided.\r\n */\r\nconst validateArgCount = function (fnName, minCount, maxCount, argCount) {\r\n let argError;\r\n if (argCount < minCount) {\r\n argError = 'at least ' + minCount;\r\n }\r\n else if (argCount > maxCount) {\r\n argError = maxCount === 0 ? 'none' : 'no more than ' + maxCount;\r\n }\r\n if (argError) {\r\n const error = fnName +\r\n ' failed: Was called with ' +\r\n argCount +\r\n (argCount === 1 ? ' argument.' : ' arguments.') +\r\n ' Expects ' +\r\n argError +\r\n '.';\r\n throw new Error(error);\r\n }\r\n};\r\n/**\r\n * Generates a string to prefix an error message about failed argument validation\r\n *\r\n * @param fnName The function name\r\n * @param argName The name of the argument\r\n * @return The prefix to add to the error thrown for validation.\r\n */\r\nfunction errorPrefix(fnName, argName) {\r\n return `${fnName} failed: ${argName} argument `;\r\n}\r\n/**\r\n * @param fnName\r\n * @param argumentNumber\r\n * @param namespace\r\n * @param optional\r\n */\r\nfunction validateNamespace(fnName, namespace, optional) {\r\n if (optional && !namespace) {\r\n return;\r\n }\r\n if (typeof namespace !== 'string') {\r\n //TODO: I should do more validation here. We only allow certain chars in namespaces.\r\n throw new Error(errorPrefix(fnName, 'namespace') + 'must be a valid firebase namespace.');\r\n }\r\n}\r\nfunction validateCallback(fnName, argumentName, \r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\ncallback, optional) {\r\n if (optional && !callback) {\r\n return;\r\n }\r\n if (typeof callback !== 'function') {\r\n throw new Error(errorPrefix(fnName, argumentName) + 'must be a valid function.');\r\n }\r\n}\r\nfunction validateContextObject(fnName, argumentName, context, optional) {\r\n if (optional && !context) {\r\n return;\r\n }\r\n if (typeof context !== 'object' || context === null) {\r\n throw new Error(errorPrefix(fnName, argumentName) + 'must be a valid context object.');\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// Code originally came from goog.crypt.stringToUtf8ByteArray, but for some reason they\r\n// automatically replaced '\\r\\n' with '\\n', and they didn't handle surrogate pairs,\r\n// so it's been modified.\r\n// Note that not all Unicode characters appear as single characters in JavaScript strings.\r\n// fromCharCode returns the UTF-16 encoding of a character - so some Unicode characters\r\n// use 2 characters in Javascript. All 4-byte UTF-8 characters begin with a first\r\n// character in the range 0xD800 - 0xDBFF (the first character of a so-called surrogate\r\n// pair).\r\n// See http://www.ecma-international.org/ecma-262/5.1/#sec-15.1.3\r\n/**\r\n * @param {string} str\r\n * @return {Array}\r\n */\r\nconst stringToByteArray = function (str) {\r\n const out = [];\r\n let p = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n let c = str.charCodeAt(i);\r\n // Is this the lead surrogate in a surrogate pair?\r\n if (c >= 0xd800 && c <= 0xdbff) {\r\n const high = c - 0xd800; // the high 10 bits.\r\n i++;\r\n assert(i < str.length, 'Surrogate pair missing trail surrogate.');\r\n const low = str.charCodeAt(i) - 0xdc00; // the low 10 bits.\r\n c = 0x10000 + (high << 10) + low;\r\n }\r\n if (c < 128) {\r\n out[p++] = c;\r\n }\r\n else if (c < 2048) {\r\n out[p++] = (c >> 6) | 192;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else if (c < 65536) {\r\n out[p++] = (c >> 12) | 224;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else {\r\n out[p++] = (c >> 18) | 240;\r\n out[p++] = ((c >> 12) & 63) | 128;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n }\r\n return out;\r\n};\r\n/**\r\n * Calculate length without actually converting; useful for doing cheaper validation.\r\n * @param {string} str\r\n * @return {number}\r\n */\r\nconst stringLength = function (str) {\r\n let p = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n const c = str.charCodeAt(i);\r\n if (c < 128) {\r\n p++;\r\n }\r\n else if (c < 2048) {\r\n p += 2;\r\n }\r\n else if (c >= 0xd800 && c <= 0xdbff) {\r\n // Lead surrogate of a surrogate pair. The pair together will take 4 bytes to represent.\r\n p += 4;\r\n i++; // skip trail surrogate.\r\n }\r\n else {\r\n p += 3;\r\n }\r\n }\r\n return p;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2022 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Copied from https://stackoverflow.com/a/2117523\r\n * Generates a new uuid.\r\n * @public\r\n */\r\nconst uuidv4 = function () {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\r\n const r = (Math.random() * 16) | 0, v = c === 'x' ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n};\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * The amount of milliseconds to exponentially increase.\r\n */\r\nconst DEFAULT_INTERVAL_MILLIS = 1000;\r\n/**\r\n * The factor to backoff by.\r\n * Should be a number greater than 1.\r\n */\r\nconst DEFAULT_BACKOFF_FACTOR = 2;\r\n/**\r\n * The maximum milliseconds to increase to.\r\n *\r\n *
Visible for testing\r\n */\r\nconst MAX_VALUE_MILLIS = 4 * 60 * 60 * 1000; // Four hours, like iOS and Android.\r\n/**\r\n * The percentage of backoff time to randomize by.\r\n * See\r\n * http://go/safe-client-behavior#step-1-determine-the-appropriate-retry-interval-to-handle-spike-traffic\r\n * for context.\r\n *\r\n *
Visible for testing\r\n */\r\nconst RANDOM_FACTOR = 0.5;\r\n/**\r\n * Based on the backoff method from\r\n * https://github.com/google/closure-library/blob/master/closure/goog/math/exponentialbackoff.js.\r\n * Extracted here so we don't need to pass metadata and a stateful ExponentialBackoff object around.\r\n */\r\nfunction calculateBackoffMillis(backoffCount, intervalMillis = DEFAULT_INTERVAL_MILLIS, backoffFactor = DEFAULT_BACKOFF_FACTOR) {\r\n // Calculates an exponentially increasing value.\r\n // Deviation: calculates value from count and a constant interval, so we only need to save value\r\n // and count to restore state.\r\n const currBaseValue = intervalMillis * Math.pow(backoffFactor, backoffCount);\r\n // A random \"fuzz\" to avoid waves of retries.\r\n // Deviation: randomFactor is required.\r\n const randomWait = Math.round(\r\n // A fraction of the backoff value to add/subtract.\r\n // Deviation: changes multiplication order to improve readability.\r\n RANDOM_FACTOR *\r\n currBaseValue *\r\n // A random float (rounded to int by Math.round above) in the range [-1, 1]. Determines\r\n // if we add or subtract.\r\n (Math.random() - 0.5) *\r\n 2);\r\n // Limits backoff to max to avoid effectively permanent backoff.\r\n return Math.min(MAX_VALUE_MILLIS, currBaseValue + randomWait);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Provide English ordinal letters after a number\r\n */\r\nfunction ordinal(i) {\r\n if (!Number.isFinite(i)) {\r\n return `${i}`;\r\n }\r\n return i + indicator(i);\r\n}\r\nfunction indicator(i) {\r\n i = Math.abs(i);\r\n const cent = i % 100;\r\n if (cent >= 10 && cent <= 20) {\r\n return 'th';\r\n }\r\n const dec = i % 10;\r\n if (dec === 1) {\r\n return 'st';\r\n }\r\n if (dec === 2) {\r\n return 'nd';\r\n }\r\n if (dec === 3) {\r\n return 'rd';\r\n }\r\n return 'th';\r\n}\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction getModularInstance(service) {\r\n if (service && service._delegate) {\r\n return service._delegate;\r\n }\r\n else {\r\n return service;\r\n }\r\n}\n\nexport { CONSTANTS, Deferred, ErrorFactory, FirebaseError, MAX_VALUE_MILLIS, RANDOM_FACTOR, Sha1, areCookiesEnabled, assert, assertionError, async, base64, base64Decode, base64Encode, base64urlEncodeWithoutPadding, calculateBackoffMillis, contains, createMockUserToken, createSubscribe, decode, deepCopy, deepEqual, deepExtend, errorPrefix, extractQuerystring, getDefaultAppConfig, getDefaultEmulatorHost, getDefaultEmulatorHostnameAndPort, getDefaults, getExperimentalSetting, getGlobal, getModularInstance, getUA, isAdmin, isBrowser, isBrowserExtension, isElectron, isEmpty, isIE, isIndexedDBAvailable, isMobileCordova, isNode, isNodeSdk, isReactNative, isSafari, isUWP, isValidFormat, isValidTimestamp, issuedAtTime, jsonEval, map, ordinal, promiseWithTimeout, querystring, querystringDecode, safeGet, stringLength, stringToByteArray, stringify, uuidv4, validateArgCount, validateCallback, validateContextObject, validateIndexedDBOpenable, validateNamespace };\n//# sourceMappingURL=index.esm2017.js.map\n","import { Deferred } from '@firebase/util';\n\n/**\r\n * Component for service name T, e.g. `auth`, `auth-internal`\r\n */\r\nclass Component {\r\n /**\r\n *\r\n * @param name The public service name, e.g. app, auth, firestore, database\r\n * @param instanceFactory Service factory responsible for creating the public interface\r\n * @param type whether the service provided by the component is public or private\r\n */\r\n constructor(name, instanceFactory, type) {\r\n this.name = name;\r\n this.instanceFactory = instanceFactory;\r\n this.type = type;\r\n this.multipleInstances = false;\r\n /**\r\n * Properties to be added to the service namespace\r\n */\r\n this.serviceProps = {};\r\n this.instantiationMode = \"LAZY\" /* InstantiationMode.LAZY */;\r\n this.onInstanceCreated = null;\r\n }\r\n setInstantiationMode(mode) {\r\n this.instantiationMode = mode;\r\n return this;\r\n }\r\n setMultipleInstances(multipleInstances) {\r\n this.multipleInstances = multipleInstances;\r\n return this;\r\n }\r\n setServiceProps(props) {\r\n this.serviceProps = props;\r\n return this;\r\n }\r\n setInstanceCreatedCallback(callback) {\r\n this.onInstanceCreated = callback;\r\n return this;\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst DEFAULT_ENTRY_NAME = '[DEFAULT]';\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Provider for instance for service name T, e.g. 'auth', 'auth-internal'\r\n * NameServiceMapping[T] is an alias for the type of the instance\r\n */\r\nclass Provider {\r\n constructor(name, container) {\r\n this.name = name;\r\n this.container = container;\r\n this.component = null;\r\n this.instances = new Map();\r\n this.instancesDeferred = new Map();\r\n this.instancesOptions = new Map();\r\n this.onInitCallbacks = new Map();\r\n }\r\n /**\r\n * @param identifier A provider can provide mulitple instances of a service\r\n * if this.component.multipleInstances is true.\r\n */\r\n get(identifier) {\r\n // if multipleInstances is not supported, use the default name\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\r\n if (!this.instancesDeferred.has(normalizedIdentifier)) {\r\n const deferred = new Deferred();\r\n this.instancesDeferred.set(normalizedIdentifier, deferred);\r\n if (this.isInitialized(normalizedIdentifier) ||\r\n this.shouldAutoInitialize()) {\r\n // initialize the service if it can be auto-initialized\r\n try {\r\n const instance = this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier\r\n });\r\n if (instance) {\r\n deferred.resolve(instance);\r\n }\r\n }\r\n catch (e) {\r\n // when the instance factory throws an exception during get(), it should not cause\r\n // a fatal error. We just return the unresolved promise in this case.\r\n }\r\n }\r\n }\r\n return this.instancesDeferred.get(normalizedIdentifier).promise;\r\n }\r\n getImmediate(options) {\r\n var _a;\r\n // if multipleInstances is not supported, use the default name\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(options === null || options === void 0 ? void 0 : options.identifier);\r\n const optional = (_a = options === null || options === void 0 ? void 0 : options.optional) !== null && _a !== void 0 ? _a : false;\r\n if (this.isInitialized(normalizedIdentifier) ||\r\n this.shouldAutoInitialize()) {\r\n try {\r\n return this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier\r\n });\r\n }\r\n catch (e) {\r\n if (optional) {\r\n return null;\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n }\r\n else {\r\n // In case a component is not initialized and should/can not be auto-initialized at the moment, return null if the optional flag is set, or throw\r\n if (optional) {\r\n return null;\r\n }\r\n else {\r\n throw Error(`Service ${this.name} is not available`);\r\n }\r\n }\r\n }\r\n getComponent() {\r\n return this.component;\r\n }\r\n setComponent(component) {\r\n if (component.name !== this.name) {\r\n throw Error(`Mismatching Component ${component.name} for Provider ${this.name}.`);\r\n }\r\n if (this.component) {\r\n throw Error(`Component for ${this.name} has already been provided`);\r\n }\r\n this.component = component;\r\n // return early without attempting to initialize the component if the component requires explicit initialization (calling `Provider.initialize()`)\r\n if (!this.shouldAutoInitialize()) {\r\n return;\r\n }\r\n // if the service is eager, initialize the default instance\r\n if (isComponentEager(component)) {\r\n try {\r\n this.getOrInitializeService({ instanceIdentifier: DEFAULT_ENTRY_NAME });\r\n }\r\n catch (e) {\r\n // when the instance factory for an eager Component throws an exception during the eager\r\n // initialization, it should not cause a fatal error.\r\n // TODO: Investigate if we need to make it configurable, because some component may want to cause\r\n // a fatal error in this case?\r\n }\r\n }\r\n // Create service instances for the pending promises and resolve them\r\n // NOTE: if this.multipleInstances is false, only the default instance will be created\r\n // and all promises with resolve with it regardless of the identifier.\r\n for (const [instanceIdentifier, instanceDeferred] of this.instancesDeferred.entries()) {\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(instanceIdentifier);\r\n try {\r\n // `getOrInitializeService()` should always return a valid instance since a component is guaranteed. use ! to make typescript happy.\r\n const instance = this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier\r\n });\r\n instanceDeferred.resolve(instance);\r\n }\r\n catch (e) {\r\n // when the instance factory throws an exception, it should not cause\r\n // a fatal error. We just leave the promise unresolved.\r\n }\r\n }\r\n }\r\n clearInstance(identifier = DEFAULT_ENTRY_NAME) {\r\n this.instancesDeferred.delete(identifier);\r\n this.instancesOptions.delete(identifier);\r\n this.instances.delete(identifier);\r\n }\r\n // app.delete() will call this method on every provider to delete the services\r\n // TODO: should we mark the provider as deleted?\r\n async delete() {\r\n const services = Array.from(this.instances.values());\r\n await Promise.all([\r\n ...services\r\n .filter(service => 'INTERNAL' in service) // legacy services\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n .map(service => service.INTERNAL.delete()),\r\n ...services\r\n .filter(service => '_delete' in service) // modularized services\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n .map(service => service._delete())\r\n ]);\r\n }\r\n isComponentSet() {\r\n return this.component != null;\r\n }\r\n isInitialized(identifier = DEFAULT_ENTRY_NAME) {\r\n return this.instances.has(identifier);\r\n }\r\n getOptions(identifier = DEFAULT_ENTRY_NAME) {\r\n return this.instancesOptions.get(identifier) || {};\r\n }\r\n initialize(opts = {}) {\r\n const { options = {} } = opts;\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(opts.instanceIdentifier);\r\n if (this.isInitialized(normalizedIdentifier)) {\r\n throw Error(`${this.name}(${normalizedIdentifier}) has already been initialized`);\r\n }\r\n if (!this.isComponentSet()) {\r\n throw Error(`Component ${this.name} has not been registered yet`);\r\n }\r\n const instance = this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier,\r\n options\r\n });\r\n // resolve any pending promise waiting for the service instance\r\n for (const [instanceIdentifier, instanceDeferred] of this.instancesDeferred.entries()) {\r\n const normalizedDeferredIdentifier = this.normalizeInstanceIdentifier(instanceIdentifier);\r\n if (normalizedIdentifier === normalizedDeferredIdentifier) {\r\n instanceDeferred.resolve(instance);\r\n }\r\n }\r\n return instance;\r\n }\r\n /**\r\n *\r\n * @param callback - a function that will be invoked after the provider has been initialized by calling provider.initialize().\r\n * The function is invoked SYNCHRONOUSLY, so it should not execute any longrunning tasks in order to not block the program.\r\n *\r\n * @param identifier An optional instance identifier\r\n * @returns a function to unregister the callback\r\n */\r\n onInit(callback, identifier) {\r\n var _a;\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\r\n const existingCallbacks = (_a = this.onInitCallbacks.get(normalizedIdentifier)) !== null && _a !== void 0 ? _a : new Set();\r\n existingCallbacks.add(callback);\r\n this.onInitCallbacks.set(normalizedIdentifier, existingCallbacks);\r\n const existingInstance = this.instances.get(normalizedIdentifier);\r\n if (existingInstance) {\r\n callback(existingInstance, normalizedIdentifier);\r\n }\r\n return () => {\r\n existingCallbacks.delete(callback);\r\n };\r\n }\r\n /**\r\n * Invoke onInit callbacks synchronously\r\n * @param instance the service instance`\r\n */\r\n invokeOnInitCallbacks(instance, identifier) {\r\n const callbacks = this.onInitCallbacks.get(identifier);\r\n if (!callbacks) {\r\n return;\r\n }\r\n for (const callback of callbacks) {\r\n try {\r\n callback(instance, identifier);\r\n }\r\n catch (_a) {\r\n // ignore errors in the onInit callback\r\n }\r\n }\r\n }\r\n getOrInitializeService({ instanceIdentifier, options = {} }) {\r\n let instance = this.instances.get(instanceIdentifier);\r\n if (!instance && this.component) {\r\n instance = this.component.instanceFactory(this.container, {\r\n instanceIdentifier: normalizeIdentifierForFactory(instanceIdentifier),\r\n options\r\n });\r\n this.instances.set(instanceIdentifier, instance);\r\n this.instancesOptions.set(instanceIdentifier, options);\r\n /**\r\n * Invoke onInit listeners.\r\n * Note this.component.onInstanceCreated is different, which is used by the component creator,\r\n * while onInit listeners are registered by consumers of the provider.\r\n */\r\n this.invokeOnInitCallbacks(instance, instanceIdentifier);\r\n /**\r\n * Order is important\r\n * onInstanceCreated() should be called after this.instances.set(instanceIdentifier, instance); which\r\n * makes `isInitialized()` return true.\r\n */\r\n if (this.component.onInstanceCreated) {\r\n try {\r\n this.component.onInstanceCreated(this.container, instanceIdentifier, instance);\r\n }\r\n catch (_a) {\r\n // ignore errors in the onInstanceCreatedCallback\r\n }\r\n }\r\n }\r\n return instance || null;\r\n }\r\n normalizeInstanceIdentifier(identifier = DEFAULT_ENTRY_NAME) {\r\n if (this.component) {\r\n return this.component.multipleInstances ? identifier : DEFAULT_ENTRY_NAME;\r\n }\r\n else {\r\n return identifier; // assume multiple instances are supported before the component is provided.\r\n }\r\n }\r\n shouldAutoInitialize() {\r\n return (!!this.component &&\r\n this.component.instantiationMode !== \"EXPLICIT\" /* InstantiationMode.EXPLICIT */);\r\n }\r\n}\r\n// undefined should be passed to the service factory for the default instance\r\nfunction normalizeIdentifierForFactory(identifier) {\r\n return identifier === DEFAULT_ENTRY_NAME ? undefined : identifier;\r\n}\r\nfunction isComponentEager(component) {\r\n return component.instantiationMode === \"EAGER\" /* InstantiationMode.EAGER */;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * ComponentContainer that provides Providers for service name T, e.g. `auth`, `auth-internal`\r\n */\r\nclass ComponentContainer {\r\n constructor(name) {\r\n this.name = name;\r\n this.providers = new Map();\r\n }\r\n /**\r\n *\r\n * @param component Component being added\r\n * @param overwrite When a component with the same name has already been registered,\r\n * if overwrite is true: overwrite the existing component with the new component and create a new\r\n * provider with the new component. It can be useful in tests where you want to use different mocks\r\n * for different tests.\r\n * if overwrite is false: throw an exception\r\n */\r\n addComponent(component) {\r\n const provider = this.getProvider(component.name);\r\n if (provider.isComponentSet()) {\r\n throw new Error(`Component ${component.name} has already been registered with ${this.name}`);\r\n }\r\n provider.setComponent(component);\r\n }\r\n addOrOverwriteComponent(component) {\r\n const provider = this.getProvider(component.name);\r\n if (provider.isComponentSet()) {\r\n // delete the existing provider from the container, so we can register the new component\r\n this.providers.delete(component.name);\r\n }\r\n this.addComponent(component);\r\n }\r\n /**\r\n * getProvider provides a type safe interface where it can only be called with a field name\r\n * present in NameServiceMapping interface.\r\n *\r\n * Firebase SDKs providing services should extend NameServiceMapping interface to register\r\n * themselves.\r\n */\r\n getProvider(name) {\r\n if (this.providers.has(name)) {\r\n return this.providers.get(name);\r\n }\r\n // create a Provider for a service that hasn't registered with Firebase\r\n const provider = new Provider(name, this);\r\n this.providers.set(name, provider);\r\n return provider;\r\n }\r\n getProviders() {\r\n return Array.from(this.providers.values());\r\n }\r\n}\n\nexport { Component, ComponentContainer, Provider };\n//# sourceMappingURL=index.esm2017.js.map\n","/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * A container for all of the Logger instances\r\n */\r\nconst instances = [];\r\n/**\r\n * The JS SDK supports 5 log levels and also allows a user the ability to\r\n * silence the logs altogether.\r\n *\r\n * The order is a follows:\r\n * DEBUG < VERBOSE < INFO < WARN < ERROR\r\n *\r\n * All of the log types above the current log level will be captured (i.e. if\r\n * you set the log level to `INFO`, errors will still be logged, but `DEBUG` and\r\n * `VERBOSE` logs will not)\r\n */\r\nvar LogLevel;\r\n(function (LogLevel) {\r\n LogLevel[LogLevel[\"DEBUG\"] = 0] = \"DEBUG\";\r\n LogLevel[LogLevel[\"VERBOSE\"] = 1] = \"VERBOSE\";\r\n LogLevel[LogLevel[\"INFO\"] = 2] = \"INFO\";\r\n LogLevel[LogLevel[\"WARN\"] = 3] = \"WARN\";\r\n LogLevel[LogLevel[\"ERROR\"] = 4] = \"ERROR\";\r\n LogLevel[LogLevel[\"SILENT\"] = 5] = \"SILENT\";\r\n})(LogLevel || (LogLevel = {}));\r\nconst levelStringToEnum = {\r\n 'debug': LogLevel.DEBUG,\r\n 'verbose': LogLevel.VERBOSE,\r\n 'info': LogLevel.INFO,\r\n 'warn': LogLevel.WARN,\r\n 'error': LogLevel.ERROR,\r\n 'silent': LogLevel.SILENT\r\n};\r\n/**\r\n * The default log level\r\n */\r\nconst defaultLogLevel = LogLevel.INFO;\r\n/**\r\n * By default, `console.debug` is not displayed in the developer console (in\r\n * chrome). To avoid forcing users to have to opt-in to these logs twice\r\n * (i.e. once for firebase, and once in the console), we are sending `DEBUG`\r\n * logs to the `console.log` function.\r\n */\r\nconst ConsoleMethod = {\r\n [LogLevel.DEBUG]: 'log',\r\n [LogLevel.VERBOSE]: 'log',\r\n [LogLevel.INFO]: 'info',\r\n [LogLevel.WARN]: 'warn',\r\n [LogLevel.ERROR]: 'error'\r\n};\r\n/**\r\n * The default log handler will forward DEBUG, VERBOSE, INFO, WARN, and ERROR\r\n * messages on to their corresponding console counterparts (if the log method\r\n * is supported by the current log level)\r\n */\r\nconst defaultLogHandler = (instance, logType, ...args) => {\r\n if (logType < instance.logLevel) {\r\n return;\r\n }\r\n const now = new Date().toISOString();\r\n const method = ConsoleMethod[logType];\r\n if (method) {\r\n console[method](`[${now}] ${instance.name}:`, ...args);\r\n }\r\n else {\r\n throw new Error(`Attempted to log a message with an invalid logType (value: ${logType})`);\r\n }\r\n};\r\nclass Logger {\r\n /**\r\n * Gives you an instance of a Logger to capture messages according to\r\n * Firebase's logging scheme.\r\n *\r\n * @param name The name that the logs will be associated with\r\n */\r\n constructor(name) {\r\n this.name = name;\r\n /**\r\n * The log level of the given Logger instance.\r\n */\r\n this._logLevel = defaultLogLevel;\r\n /**\r\n * The main (internal) log handler for the Logger instance.\r\n * Can be set to a new function in internal package code but not by user.\r\n */\r\n this._logHandler = defaultLogHandler;\r\n /**\r\n * The optional, additional, user-defined log handler for the Logger instance.\r\n */\r\n this._userLogHandler = null;\r\n /**\r\n * Capture the current instance for later use\r\n */\r\n instances.push(this);\r\n }\r\n get logLevel() {\r\n return this._logLevel;\r\n }\r\n set logLevel(val) {\r\n if (!(val in LogLevel)) {\r\n throw new TypeError(`Invalid value \"${val}\" assigned to \\`logLevel\\``);\r\n }\r\n this._logLevel = val;\r\n }\r\n // Workaround for setter/getter having to be the same type.\r\n setLogLevel(val) {\r\n this._logLevel = typeof val === 'string' ? levelStringToEnum[val] : val;\r\n }\r\n get logHandler() {\r\n return this._logHandler;\r\n }\r\n set logHandler(val) {\r\n if (typeof val !== 'function') {\r\n throw new TypeError('Value assigned to `logHandler` must be a function');\r\n }\r\n this._logHandler = val;\r\n }\r\n get userLogHandler() {\r\n return this._userLogHandler;\r\n }\r\n set userLogHandler(val) {\r\n this._userLogHandler = val;\r\n }\r\n /**\r\n * The functions below are all based on the `console` interface\r\n */\r\n debug(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.DEBUG, ...args);\r\n this._logHandler(this, LogLevel.DEBUG, ...args);\r\n }\r\n log(...args) {\r\n this._userLogHandler &&\r\n this._userLogHandler(this, LogLevel.VERBOSE, ...args);\r\n this._logHandler(this, LogLevel.VERBOSE, ...args);\r\n }\r\n info(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.INFO, ...args);\r\n this._logHandler(this, LogLevel.INFO, ...args);\r\n }\r\n warn(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.WARN, ...args);\r\n this._logHandler(this, LogLevel.WARN, ...args);\r\n }\r\n error(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.ERROR, ...args);\r\n this._logHandler(this, LogLevel.ERROR, ...args);\r\n }\r\n}\r\nfunction setLogLevel(level) {\r\n instances.forEach(inst => {\r\n inst.setLogLevel(level);\r\n });\r\n}\r\nfunction setUserLogHandler(logCallback, options) {\r\n for (const instance of instances) {\r\n let customLogLevel = null;\r\n if (options && options.level) {\r\n customLogLevel = levelStringToEnum[options.level];\r\n }\r\n if (logCallback === null) {\r\n instance.userLogHandler = null;\r\n }\r\n else {\r\n instance.userLogHandler = (instance, level, ...args) => {\r\n const message = args\r\n .map(arg => {\r\n if (arg == null) {\r\n return null;\r\n }\r\n else if (typeof arg === 'string') {\r\n return arg;\r\n }\r\n else if (typeof arg === 'number' || typeof arg === 'boolean') {\r\n return arg.toString();\r\n }\r\n else if (arg instanceof Error) {\r\n return arg.message;\r\n }\r\n else {\r\n try {\r\n return JSON.stringify(arg);\r\n }\r\n catch (ignored) {\r\n return null;\r\n }\r\n }\r\n })\r\n .filter(arg => arg)\r\n .join(' ');\r\n if (level >= (customLogLevel !== null && customLogLevel !== void 0 ? customLogLevel : instance.logLevel)) {\r\n logCallback({\r\n level: LogLevel[level].toLowerCase(),\r\n message,\r\n args,\r\n type: instance.name\r\n });\r\n }\r\n };\r\n }\r\n }\r\n}\n\nexport { LogLevel, Logger, setLogLevel, setUserLogHandler };\n//# sourceMappingURL=index.esm2017.js.map\n","const instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c);\n\nlet idbProxyableTypes;\nlet cursorAdvanceMethods;\n// This is a function to prevent it throwing up in node environments.\nfunction getIdbProxyableTypes() {\n return (idbProxyableTypes ||\n (idbProxyableTypes = [\n IDBDatabase,\n IDBObjectStore,\n IDBIndex,\n IDBCursor,\n IDBTransaction,\n ]));\n}\n// This is a function to prevent it throwing up in node environments.\nfunction getCursorAdvanceMethods() {\n return (cursorAdvanceMethods ||\n (cursorAdvanceMethods = [\n IDBCursor.prototype.advance,\n IDBCursor.prototype.continue,\n IDBCursor.prototype.continuePrimaryKey,\n ]));\n}\nconst cursorRequestMap = new WeakMap();\nconst transactionDoneMap = new WeakMap();\nconst transactionStoreNamesMap = new WeakMap();\nconst transformCache = new WeakMap();\nconst reverseTransformCache = new WeakMap();\nfunction promisifyRequest(request) {\n const promise = new Promise((resolve, reject) => {\n const unlisten = () => {\n request.removeEventListener('success', success);\n request.removeEventListener('error', error);\n };\n const success = () => {\n resolve(wrap(request.result));\n unlisten();\n };\n const error = () => {\n reject(request.error);\n unlisten();\n };\n request.addEventListener('success', success);\n request.addEventListener('error', error);\n });\n promise\n .then((value) => {\n // Since cursoring reuses the IDBRequest (*sigh*), we cache it for later retrieval\n // (see wrapFunction).\n if (value instanceof IDBCursor) {\n cursorRequestMap.set(value, request);\n }\n // Catching to avoid \"Uncaught Promise exceptions\"\n })\n .catch(() => { });\n // This mapping exists in reverseTransformCache but doesn't doesn't exist in transformCache. This\n // is because we create many promises from a single IDBRequest.\n reverseTransformCache.set(promise, request);\n return promise;\n}\nfunction cacheDonePromiseForTransaction(tx) {\n // Early bail if we've already created a done promise for this transaction.\n if (transactionDoneMap.has(tx))\n return;\n const done = new Promise((resolve, reject) => {\n const unlisten = () => {\n tx.removeEventListener('complete', complete);\n tx.removeEventListener('error', error);\n tx.removeEventListener('abort', error);\n };\n const complete = () => {\n resolve();\n unlisten();\n };\n const error = () => {\n reject(tx.error || new DOMException('AbortError', 'AbortError'));\n unlisten();\n };\n tx.addEventListener('complete', complete);\n tx.addEventListener('error', error);\n tx.addEventListener('abort', error);\n });\n // Cache it for later retrieval.\n transactionDoneMap.set(tx, done);\n}\nlet idbProxyTraps = {\n get(target, prop, receiver) {\n if (target instanceof IDBTransaction) {\n // Special handling for transaction.done.\n if (prop === 'done')\n return transactionDoneMap.get(target);\n // Polyfill for objectStoreNames because of Edge.\n if (prop === 'objectStoreNames') {\n return target.objectStoreNames || transactionStoreNamesMap.get(target);\n }\n // Make tx.store return the only store in the transaction, or undefined if there are many.\n if (prop === 'store') {\n return receiver.objectStoreNames[1]\n ? undefined\n : receiver.objectStore(receiver.objectStoreNames[0]);\n }\n }\n // Else transform whatever we get back.\n return wrap(target[prop]);\n },\n set(target, prop, value) {\n target[prop] = value;\n return true;\n },\n has(target, prop) {\n if (target instanceof IDBTransaction &&\n (prop === 'done' || prop === 'store')) {\n return true;\n }\n return prop in target;\n },\n};\nfunction replaceTraps(callback) {\n idbProxyTraps = callback(idbProxyTraps);\n}\nfunction wrapFunction(func) {\n // Due to expected object equality (which is enforced by the caching in `wrap`), we\n // only create one new func per func.\n // Edge doesn't support objectStoreNames (booo), so we polyfill it here.\n if (func === IDBDatabase.prototype.transaction &&\n !('objectStoreNames' in IDBTransaction.prototype)) {\n return function (storeNames, ...args) {\n const tx = func.call(unwrap(this), storeNames, ...args);\n transactionStoreNamesMap.set(tx, storeNames.sort ? storeNames.sort() : [storeNames]);\n return wrap(tx);\n };\n }\n // Cursor methods are special, as the behaviour is a little more different to standard IDB. In\n // IDB, you advance the cursor and wait for a new 'success' on the IDBRequest that gave you the\n // cursor. It's kinda like a promise that can resolve with many values. That doesn't make sense\n // with real promises, so each advance methods returns a new promise for the cursor object, or\n // undefined if the end of the cursor has been reached.\n if (getCursorAdvanceMethods().includes(func)) {\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n func.apply(unwrap(this), args);\n return wrap(cursorRequestMap.get(this));\n };\n }\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n return wrap(func.apply(unwrap(this), args));\n };\n}\nfunction transformCachableValue(value) {\n if (typeof value === 'function')\n return wrapFunction(value);\n // This doesn't return, it just creates a 'done' promise for the transaction,\n // which is later returned for transaction.done (see idbObjectHandler).\n if (value instanceof IDBTransaction)\n cacheDonePromiseForTransaction(value);\n if (instanceOfAny(value, getIdbProxyableTypes()))\n return new Proxy(value, idbProxyTraps);\n // Return the same value back if we're not going to transform it.\n return value;\n}\nfunction wrap(value) {\n // We sometimes generate multiple promises from a single IDBRequest (eg when cursoring), because\n // IDB is weird and a single IDBRequest can yield many responses, so these can't be cached.\n if (value instanceof IDBRequest)\n return promisifyRequest(value);\n // If we've already transformed this value before, reuse the transformed value.\n // This is faster, but it also provides object equality.\n if (transformCache.has(value))\n return transformCache.get(value);\n const newValue = transformCachableValue(value);\n // Not all types are transformed.\n // These may be primitive types, so they can't be WeakMap keys.\n if (newValue !== value) {\n transformCache.set(value, newValue);\n reverseTransformCache.set(newValue, value);\n }\n return newValue;\n}\nconst unwrap = (value) => reverseTransformCache.get(value);\n\nexport { reverseTransformCache as a, instanceOfAny as i, replaceTraps as r, unwrap as u, wrap as w };\n","import { w as wrap, r as replaceTraps } from './wrap-idb-value.js';\nexport { u as unwrap, w as wrap } from './wrap-idb-value.js';\n\n/**\n * Open a database.\n *\n * @param name Name of the database.\n * @param version Schema version.\n * @param callbacks Additional callbacks.\n */\nfunction openDB(name, version, { blocked, upgrade, blocking, terminated } = {}) {\n const request = indexedDB.open(name, version);\n const openPromise = wrap(request);\n if (upgrade) {\n request.addEventListener('upgradeneeded', (event) => {\n upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction));\n });\n }\n if (blocked)\n request.addEventListener('blocked', () => blocked());\n openPromise\n .then((db) => {\n if (terminated)\n db.addEventListener('close', () => terminated());\n if (blocking)\n db.addEventListener('versionchange', () => blocking());\n })\n .catch(() => { });\n return openPromise;\n}\n/**\n * Delete a database.\n *\n * @param name Name of the database.\n */\nfunction deleteDB(name, { blocked } = {}) {\n const request = indexedDB.deleteDatabase(name);\n if (blocked)\n request.addEventListener('blocked', () => blocked());\n return wrap(request).then(() => undefined);\n}\n\nconst readMethods = ['get', 'getKey', 'getAll', 'getAllKeys', 'count'];\nconst writeMethods = ['put', 'add', 'delete', 'clear'];\nconst cachedMethods = new Map();\nfunction getMethod(target, prop) {\n if (!(target instanceof IDBDatabase &&\n !(prop in target) &&\n typeof prop === 'string')) {\n return;\n }\n if (cachedMethods.get(prop))\n return cachedMethods.get(prop);\n const targetFuncName = prop.replace(/FromIndex$/, '');\n const useIndex = prop !== targetFuncName;\n const isWrite = writeMethods.includes(targetFuncName);\n if (\n // Bail if the target doesn't exist on the target. Eg, getAll isn't in Edge.\n !(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) ||\n !(isWrite || readMethods.includes(targetFuncName))) {\n return;\n }\n const method = async function (storeName, ...args) {\n // isWrite ? 'readwrite' : undefined gzipps better, but fails in Edge :(\n const tx = this.transaction(storeName, isWrite ? 'readwrite' : 'readonly');\n let target = tx.store;\n if (useIndex)\n target = target.index(args.shift());\n // Must reject if op rejects.\n // If it's a write operation, must reject if tx.done rejects.\n // Must reject with op rejection first.\n // Must resolve with op value.\n // Must handle both promises (no unhandled rejections)\n return (await Promise.all([\n target[targetFuncName](...args),\n isWrite && tx.done,\n ]))[0];\n };\n cachedMethods.set(prop, method);\n return method;\n}\nreplaceTraps((oldTraps) => ({\n ...oldTraps,\n get: (target, prop, receiver) => getMethod(target, prop) || oldTraps.get(target, prop, receiver),\n has: (target, prop) => !!getMethod(target, prop) || oldTraps.has(target, prop),\n}));\n\nexport { deleteDB, openDB };\n","import { Component, ComponentContainer } from '@firebase/component';\nimport { Logger, setUserLogHandler, setLogLevel as setLogLevel$1 } from '@firebase/logger';\nimport { ErrorFactory, getDefaultAppConfig, deepEqual, FirebaseError, base64urlEncodeWithoutPadding, isIndexedDBAvailable, validateIndexedDBOpenable } from '@firebase/util';\nexport { FirebaseError } from '@firebase/util';\nimport { openDB } from 'idb';\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nclass PlatformLoggerServiceImpl {\r\n constructor(container) {\r\n this.container = container;\r\n }\r\n // In initial implementation, this will be called by installations on\r\n // auth token refresh, and installations will send this string.\r\n getPlatformInfoString() {\r\n const providers = this.container.getProviders();\r\n // Loop through providers and get library/version pairs from any that are\r\n // version components.\r\n return providers\r\n .map(provider => {\r\n if (isVersionServiceProvider(provider)) {\r\n const service = provider.getImmediate();\r\n return `${service.library}/${service.version}`;\r\n }\r\n else {\r\n return null;\r\n }\r\n })\r\n .filter(logString => logString)\r\n .join(' ');\r\n }\r\n}\r\n/**\r\n *\r\n * @param provider check if this provider provides a VersionService\r\n *\r\n * NOTE: Using Provider<'app-version'> is a hack to indicate that the provider\r\n * provides VersionService. The provider is not necessarily a 'app-version'\r\n * provider.\r\n */\r\nfunction isVersionServiceProvider(provider) {\r\n const component = provider.getComponent();\r\n return (component === null || component === void 0 ? void 0 : component.type) === \"VERSION\" /* ComponentType.VERSION */;\r\n}\n\nconst name$o = \"@firebase/app\";\nconst version$1 = \"0.9.1\";\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst logger = new Logger('@firebase/app');\n\nconst name$n = \"@firebase/app-compat\";\n\nconst name$m = \"@firebase/analytics-compat\";\n\nconst name$l = \"@firebase/analytics\";\n\nconst name$k = \"@firebase/app-check-compat\";\n\nconst name$j = \"@firebase/app-check\";\n\nconst name$i = \"@firebase/auth\";\n\nconst name$h = \"@firebase/auth-compat\";\n\nconst name$g = \"@firebase/database\";\n\nconst name$f = \"@firebase/database-compat\";\n\nconst name$e = \"@firebase/functions\";\n\nconst name$d = \"@firebase/functions-compat\";\n\nconst name$c = \"@firebase/installations\";\n\nconst name$b = \"@firebase/installations-compat\";\n\nconst name$a = \"@firebase/messaging\";\n\nconst name$9 = \"@firebase/messaging-compat\";\n\nconst name$8 = \"@firebase/performance\";\n\nconst name$7 = \"@firebase/performance-compat\";\n\nconst name$6 = \"@firebase/remote-config\";\n\nconst name$5 = \"@firebase/remote-config-compat\";\n\nconst name$4 = \"@firebase/storage\";\n\nconst name$3 = \"@firebase/storage-compat\";\n\nconst name$2 = \"@firebase/firestore\";\n\nconst name$1 = \"@firebase/firestore-compat\";\n\nconst name = \"firebase\";\nconst version = \"9.16.0\";\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * The default app name\r\n *\r\n * @internal\r\n */\r\nconst DEFAULT_ENTRY_NAME = '[DEFAULT]';\r\nconst PLATFORM_LOG_STRING = {\r\n [name$o]: 'fire-core',\r\n [name$n]: 'fire-core-compat',\r\n [name$l]: 'fire-analytics',\r\n [name$m]: 'fire-analytics-compat',\r\n [name$j]: 'fire-app-check',\r\n [name$k]: 'fire-app-check-compat',\r\n [name$i]: 'fire-auth',\r\n [name$h]: 'fire-auth-compat',\r\n [name$g]: 'fire-rtdb',\r\n [name$f]: 'fire-rtdb-compat',\r\n [name$e]: 'fire-fn',\r\n [name$d]: 'fire-fn-compat',\r\n [name$c]: 'fire-iid',\r\n [name$b]: 'fire-iid-compat',\r\n [name$a]: 'fire-fcm',\r\n [name$9]: 'fire-fcm-compat',\r\n [name$8]: 'fire-perf',\r\n [name$7]: 'fire-perf-compat',\r\n [name$6]: 'fire-rc',\r\n [name$5]: 'fire-rc-compat',\r\n [name$4]: 'fire-gcs',\r\n [name$3]: 'fire-gcs-compat',\r\n [name$2]: 'fire-fst',\r\n [name$1]: 'fire-fst-compat',\r\n 'fire-js': 'fire-js',\r\n [name]: 'fire-js-all'\r\n};\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @internal\r\n */\r\nconst _apps = new Map();\r\n/**\r\n * Registered components.\r\n *\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nconst _components = new Map();\r\n/**\r\n * @param component - the component being added to this app's container\r\n *\r\n * @internal\r\n */\r\nfunction _addComponent(app, component) {\r\n try {\r\n app.container.addComponent(component);\r\n }\r\n catch (e) {\r\n logger.debug(`Component ${component.name} failed to register with FirebaseApp ${app.name}`, e);\r\n }\r\n}\r\n/**\r\n *\r\n * @internal\r\n */\r\nfunction _addOrOverwriteComponent(app, component) {\r\n app.container.addOrOverwriteComponent(component);\r\n}\r\n/**\r\n *\r\n * @param component - the component to register\r\n * @returns whether or not the component is registered successfully\r\n *\r\n * @internal\r\n */\r\nfunction _registerComponent(component) {\r\n const componentName = component.name;\r\n if (_components.has(componentName)) {\r\n logger.debug(`There were multiple attempts to register component ${componentName}.`);\r\n return false;\r\n }\r\n _components.set(componentName, component);\r\n // add the component to existing app instances\r\n for (const app of _apps.values()) {\r\n _addComponent(app, component);\r\n }\r\n return true;\r\n}\r\n/**\r\n *\r\n * @param app - FirebaseApp instance\r\n * @param name - service name\r\n *\r\n * @returns the provider for the service with the matching name\r\n *\r\n * @internal\r\n */\r\nfunction _getProvider(app, name) {\r\n const heartbeatController = app.container\r\n .getProvider('heartbeat')\r\n .getImmediate({ optional: true });\r\n if (heartbeatController) {\r\n void heartbeatController.triggerHeartbeat();\r\n }\r\n return app.container.getProvider(name);\r\n}\r\n/**\r\n *\r\n * @param app - FirebaseApp instance\r\n * @param name - service name\r\n * @param instanceIdentifier - service instance identifier in case the service supports multiple instances\r\n *\r\n * @internal\r\n */\r\nfunction _removeServiceInstance(app, name, instanceIdentifier = DEFAULT_ENTRY_NAME) {\r\n _getProvider(app, name).clearInstance(instanceIdentifier);\r\n}\r\n/**\r\n * Test only\r\n *\r\n * @internal\r\n */\r\nfunction _clearComponents() {\r\n _components.clear();\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst ERRORS = {\r\n [\"no-app\" /* AppError.NO_APP */]: \"No Firebase App '{$appName}' has been created - \" +\r\n 'call Firebase App.initializeApp()',\r\n [\"bad-app-name\" /* AppError.BAD_APP_NAME */]: \"Illegal App name: '{$appName}\",\r\n [\"duplicate-app\" /* AppError.DUPLICATE_APP */]: \"Firebase App named '{$appName}' already exists with different options or config\",\r\n [\"app-deleted\" /* AppError.APP_DELETED */]: \"Firebase App named '{$appName}' already deleted\",\r\n [\"no-options\" /* AppError.NO_OPTIONS */]: 'Need to provide options, when not being deployed to hosting via source.',\r\n [\"invalid-app-argument\" /* AppError.INVALID_APP_ARGUMENT */]: 'firebase.{$appName}() takes either no argument or a ' +\r\n 'Firebase App instance.',\r\n [\"invalid-log-argument\" /* AppError.INVALID_LOG_ARGUMENT */]: 'First argument to `onLog` must be null or a function.',\r\n [\"idb-open\" /* AppError.IDB_OPEN */]: 'Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.',\r\n [\"idb-get\" /* AppError.IDB_GET */]: 'Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.',\r\n [\"idb-set\" /* AppError.IDB_WRITE */]: 'Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.',\r\n [\"idb-delete\" /* AppError.IDB_DELETE */]: 'Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.'\r\n};\r\nconst ERROR_FACTORY = new ErrorFactory('app', 'Firebase', ERRORS);\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nclass FirebaseAppImpl {\r\n constructor(options, config, container) {\r\n this._isDeleted = false;\r\n this._options = Object.assign({}, options);\r\n this._config = Object.assign({}, config);\r\n this._name = config.name;\r\n this._automaticDataCollectionEnabled =\r\n config.automaticDataCollectionEnabled;\r\n this._container = container;\r\n this.container.addComponent(new Component('app', () => this, \"PUBLIC\" /* ComponentType.PUBLIC */));\r\n }\r\n get automaticDataCollectionEnabled() {\r\n this.checkDestroyed();\r\n return this._automaticDataCollectionEnabled;\r\n }\r\n set automaticDataCollectionEnabled(val) {\r\n this.checkDestroyed();\r\n this._automaticDataCollectionEnabled = val;\r\n }\r\n get name() {\r\n this.checkDestroyed();\r\n return this._name;\r\n }\r\n get options() {\r\n this.checkDestroyed();\r\n return this._options;\r\n }\r\n get config() {\r\n this.checkDestroyed();\r\n return this._config;\r\n }\r\n get container() {\r\n return this._container;\r\n }\r\n get isDeleted() {\r\n return this._isDeleted;\r\n }\r\n set isDeleted(val) {\r\n this._isDeleted = val;\r\n }\r\n /**\r\n * This function will throw an Error if the App has already been deleted -\r\n * use before performing API actions on the App.\r\n */\r\n checkDestroyed() {\r\n if (this.isDeleted) {\r\n throw ERROR_FACTORY.create(\"app-deleted\" /* AppError.APP_DELETED */, { appName: this._name });\r\n }\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * The current SDK version.\r\n *\r\n * @public\r\n */\r\nconst SDK_VERSION = version;\r\nfunction initializeApp(_options, rawConfig = {}) {\r\n let options = _options;\r\n if (typeof rawConfig !== 'object') {\r\n const name = rawConfig;\r\n rawConfig = { name };\r\n }\r\n const config = Object.assign({ name: DEFAULT_ENTRY_NAME, automaticDataCollectionEnabled: false }, rawConfig);\r\n const name = config.name;\r\n if (typeof name !== 'string' || !name) {\r\n throw ERROR_FACTORY.create(\"bad-app-name\" /* AppError.BAD_APP_NAME */, {\r\n appName: String(name)\r\n });\r\n }\r\n options || (options = getDefaultAppConfig());\r\n if (!options) {\r\n throw ERROR_FACTORY.create(\"no-options\" /* AppError.NO_OPTIONS */);\r\n }\r\n const existingApp = _apps.get(name);\r\n if (existingApp) {\r\n // return the existing app if options and config deep equal the ones in the existing app.\r\n if (deepEqual(options, existingApp.options) &&\r\n deepEqual(config, existingApp.config)) {\r\n return existingApp;\r\n }\r\n else {\r\n throw ERROR_FACTORY.create(\"duplicate-app\" /* AppError.DUPLICATE_APP */, { appName: name });\r\n }\r\n }\r\n const container = new ComponentContainer(name);\r\n for (const component of _components.values()) {\r\n container.addComponent(component);\r\n }\r\n const newApp = new FirebaseAppImpl(options, config, container);\r\n _apps.set(name, newApp);\r\n return newApp;\r\n}\r\n/**\r\n * Retrieves a {@link @firebase/app#FirebaseApp} instance.\r\n *\r\n * When called with no arguments, the default app is returned. When an app name\r\n * is provided, the app corresponding to that name is returned.\r\n *\r\n * An exception is thrown if the app being retrieved has not yet been\r\n * initialized.\r\n *\r\n * @example\r\n * ```javascript\r\n * // Return the default app\r\n * const app = getApp();\r\n * ```\r\n *\r\n * @example\r\n * ```javascript\r\n * // Return a named app\r\n * const otherApp = getApp(\"otherApp\");\r\n * ```\r\n *\r\n * @param name - Optional name of the app to return. If no name is\r\n * provided, the default is `\"[DEFAULT]\"`.\r\n *\r\n * @returns The app corresponding to the provided app name.\r\n * If no app name is provided, the default app is returned.\r\n *\r\n * @public\r\n */\r\nfunction getApp(name = DEFAULT_ENTRY_NAME) {\r\n const app = _apps.get(name);\r\n if (!app && name === DEFAULT_ENTRY_NAME) {\r\n return initializeApp();\r\n }\r\n if (!app) {\r\n throw ERROR_FACTORY.create(\"no-app\" /* AppError.NO_APP */, { appName: name });\r\n }\r\n return app;\r\n}\r\n/**\r\n * A (read-only) array of all initialized apps.\r\n * @public\r\n */\r\nfunction getApps() {\r\n return Array.from(_apps.values());\r\n}\r\n/**\r\n * Renders this app unusable and frees the resources of all associated\r\n * services.\r\n *\r\n * @example\r\n * ```javascript\r\n * deleteApp(app)\r\n * .then(function() {\r\n * console.log(\"App deleted successfully\");\r\n * })\r\n * .catch(function(error) {\r\n * console.log(\"Error deleting app:\", error);\r\n * });\r\n * ```\r\n *\r\n * @public\r\n */\r\nasync function deleteApp(app) {\r\n const name = app.name;\r\n if (_apps.has(name)) {\r\n _apps.delete(name);\r\n await Promise.all(app.container\r\n .getProviders()\r\n .map(provider => provider.delete()));\r\n app.isDeleted = true;\r\n }\r\n}\r\n/**\r\n * Registers a library's name and version for platform logging purposes.\r\n * @param library - Name of 1p or 3p library (e.g. firestore, angularfire)\r\n * @param version - Current version of that library.\r\n * @param variant - Bundle variant, e.g., node, rn, etc.\r\n *\r\n * @public\r\n */\r\nfunction registerVersion(libraryKeyOrName, version, variant) {\r\n var _a;\r\n // TODO: We can use this check to whitelist strings when/if we set up\r\n // a good whitelist system.\r\n let library = (_a = PLATFORM_LOG_STRING[libraryKeyOrName]) !== null && _a !== void 0 ? _a : libraryKeyOrName;\r\n if (variant) {\r\n library += `-${variant}`;\r\n }\r\n const libraryMismatch = library.match(/\\s|\\//);\r\n const versionMismatch = version.match(/\\s|\\//);\r\n if (libraryMismatch || versionMismatch) {\r\n const warning = [\r\n `Unable to register library \"${library}\" with version \"${version}\":`\r\n ];\r\n if (libraryMismatch) {\r\n warning.push(`library name \"${library}\" contains illegal characters (whitespace or \"/\")`);\r\n }\r\n if (libraryMismatch && versionMismatch) {\r\n warning.push('and');\r\n }\r\n if (versionMismatch) {\r\n warning.push(`version name \"${version}\" contains illegal characters (whitespace or \"/\")`);\r\n }\r\n logger.warn(warning.join(' '));\r\n return;\r\n }\r\n _registerComponent(new Component(`${library}-version`, () => ({ library, version }), \"VERSION\" /* ComponentType.VERSION */));\r\n}\r\n/**\r\n * Sets log handler for all Firebase SDKs.\r\n * @param logCallback - An optional custom log handler that executes user code whenever\r\n * the Firebase SDK makes a logging call.\r\n *\r\n * @public\r\n */\r\nfunction onLog(logCallback, options) {\r\n if (logCallback !== null && typeof logCallback !== 'function') {\r\n throw ERROR_FACTORY.create(\"invalid-log-argument\" /* AppError.INVALID_LOG_ARGUMENT */);\r\n }\r\n setUserLogHandler(logCallback, options);\r\n}\r\n/**\r\n * Sets log level for all Firebase SDKs.\r\n *\r\n * All of the log types above the current log level are captured (i.e. if\r\n * you set the log level to `info`, errors are logged, but `debug` and\r\n * `verbose` logs are not).\r\n *\r\n * @public\r\n */\r\nfunction setLogLevel(logLevel) {\r\n setLogLevel$1(logLevel);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst DB_NAME = 'firebase-heartbeat-database';\r\nconst DB_VERSION = 1;\r\nconst STORE_NAME = 'firebase-heartbeat-store';\r\nlet dbPromise = null;\r\nfunction getDbPromise() {\r\n if (!dbPromise) {\r\n dbPromise = openDB(DB_NAME, DB_VERSION, {\r\n upgrade: (db, oldVersion) => {\r\n // We don't use 'break' in this switch statement, the fall-through\r\n // behavior is what we want, because if there are multiple versions between\r\n // the old version and the current version, we want ALL the migrations\r\n // that correspond to those versions to run, not only the last one.\r\n // eslint-disable-next-line default-case\r\n switch (oldVersion) {\r\n case 0:\r\n db.createObjectStore(STORE_NAME);\r\n }\r\n }\r\n }).catch(e => {\r\n throw ERROR_FACTORY.create(\"idb-open\" /* AppError.IDB_OPEN */, {\r\n originalErrorMessage: e.message\r\n });\r\n });\r\n }\r\n return dbPromise;\r\n}\r\nasync function readHeartbeatsFromIndexedDB(app) {\r\n try {\r\n const db = await getDbPromise();\r\n return db\r\n .transaction(STORE_NAME)\r\n .objectStore(STORE_NAME)\r\n .get(computeKey(app));\r\n }\r\n catch (e) {\r\n if (e instanceof FirebaseError) {\r\n logger.warn(e.message);\r\n }\r\n else {\r\n const idbGetError = ERROR_FACTORY.create(\"idb-get\" /* AppError.IDB_GET */, {\r\n originalErrorMessage: e === null || e === void 0 ? void 0 : e.message\r\n });\r\n logger.warn(idbGetError.message);\r\n }\r\n }\r\n}\r\nasync function writeHeartbeatsToIndexedDB(app, heartbeatObject) {\r\n try {\r\n const db = await getDbPromise();\r\n const tx = db.transaction(STORE_NAME, 'readwrite');\r\n const objectStore = tx.objectStore(STORE_NAME);\r\n await objectStore.put(heartbeatObject, computeKey(app));\r\n return tx.done;\r\n }\r\n catch (e) {\r\n if (e instanceof FirebaseError) {\r\n logger.warn(e.message);\r\n }\r\n else {\r\n const idbGetError = ERROR_FACTORY.create(\"idb-set\" /* AppError.IDB_WRITE */, {\r\n originalErrorMessage: e === null || e === void 0 ? void 0 : e.message\r\n });\r\n logger.warn(idbGetError.message);\r\n }\r\n }\r\n}\r\nfunction computeKey(app) {\r\n return `${app.name}!${app.options.appId}`;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst MAX_HEADER_BYTES = 1024;\r\n// 30 days\r\nconst STORED_HEARTBEAT_RETENTION_MAX_MILLIS = 30 * 24 * 60 * 60 * 1000;\r\nclass HeartbeatServiceImpl {\r\n constructor(container) {\r\n this.container = container;\r\n /**\r\n * In-memory cache for heartbeats, used by getHeartbeatsHeader() to generate\r\n * the header string.\r\n * Stores one record per date. This will be consolidated into the standard\r\n * format of one record per user agent string before being sent as a header.\r\n * Populated from indexedDB when the controller is instantiated and should\r\n * be kept in sync with indexedDB.\r\n * Leave public for easier testing.\r\n */\r\n this._heartbeatsCache = null;\r\n const app = this.container.getProvider('app').getImmediate();\r\n this._storage = new HeartbeatStorageImpl(app);\r\n this._heartbeatsCachePromise = this._storage.read().then(result => {\r\n this._heartbeatsCache = result;\r\n return result;\r\n });\r\n }\r\n /**\r\n * Called to report a heartbeat. The function will generate\r\n * a HeartbeatsByUserAgent object, update heartbeatsCache, and persist it\r\n * to IndexedDB.\r\n * Note that we only store one heartbeat per day. So if a heartbeat for today is\r\n * already logged, subsequent calls to this function in the same day will be ignored.\r\n */\r\n async triggerHeartbeat() {\r\n const platformLogger = this.container\r\n .getProvider('platform-logger')\r\n .getImmediate();\r\n // This is the \"Firebase user agent\" string from the platform logger\r\n // service, not the browser user agent.\r\n const agent = platformLogger.getPlatformInfoString();\r\n const date = getUTCDateString();\r\n if (this._heartbeatsCache === null) {\r\n this._heartbeatsCache = await this._heartbeatsCachePromise;\r\n }\r\n // Do not store a heartbeat if one is already stored for this day\r\n // or if a header has already been sent today.\r\n if (this._heartbeatsCache.lastSentHeartbeatDate === date ||\r\n this._heartbeatsCache.heartbeats.some(singleDateHeartbeat => singleDateHeartbeat.date === date)) {\r\n return;\r\n }\r\n else {\r\n // There is no entry for this date. Create one.\r\n this._heartbeatsCache.heartbeats.push({ date, agent });\r\n }\r\n // Remove entries older than 30 days.\r\n this._heartbeatsCache.heartbeats = this._heartbeatsCache.heartbeats.filter(singleDateHeartbeat => {\r\n const hbTimestamp = new Date(singleDateHeartbeat.date).valueOf();\r\n const now = Date.now();\r\n return now - hbTimestamp <= STORED_HEARTBEAT_RETENTION_MAX_MILLIS;\r\n });\r\n return this._storage.overwrite(this._heartbeatsCache);\r\n }\r\n /**\r\n * Returns a base64 encoded string which can be attached to the heartbeat-specific header directly.\r\n * It also clears all heartbeats from memory as well as in IndexedDB.\r\n *\r\n * NOTE: Consuming product SDKs should not send the header if this method\r\n * returns an empty string.\r\n */\r\n async getHeartbeatsHeader() {\r\n if (this._heartbeatsCache === null) {\r\n await this._heartbeatsCachePromise;\r\n }\r\n // If it's still null or the array is empty, there is no data to send.\r\n if (this._heartbeatsCache === null ||\r\n this._heartbeatsCache.heartbeats.length === 0) {\r\n return '';\r\n }\r\n const date = getUTCDateString();\r\n // Extract as many heartbeats from the cache as will fit under the size limit.\r\n const { heartbeatsToSend, unsentEntries } = extractHeartbeatsForHeader(this._heartbeatsCache.heartbeats);\r\n const headerString = base64urlEncodeWithoutPadding(JSON.stringify({ version: 2, heartbeats: heartbeatsToSend }));\r\n // Store last sent date to prevent another being logged/sent for the same day.\r\n this._heartbeatsCache.lastSentHeartbeatDate = date;\r\n if (unsentEntries.length > 0) {\r\n // Store any unsent entries if they exist.\r\n this._heartbeatsCache.heartbeats = unsentEntries;\r\n // This seems more likely than emptying the array (below) to lead to some odd state\r\n // since the cache isn't empty and this will be called again on the next request,\r\n // and is probably safest if we await it.\r\n await this._storage.overwrite(this._heartbeatsCache);\r\n }\r\n else {\r\n this._heartbeatsCache.heartbeats = [];\r\n // Do not wait for this, to reduce latency.\r\n void this._storage.overwrite(this._heartbeatsCache);\r\n }\r\n return headerString;\r\n }\r\n}\r\nfunction getUTCDateString() {\r\n const today = new Date();\r\n // Returns date format 'YYYY-MM-DD'\r\n return today.toISOString().substring(0, 10);\r\n}\r\nfunction extractHeartbeatsForHeader(heartbeatsCache, maxSize = MAX_HEADER_BYTES) {\r\n // Heartbeats grouped by user agent in the standard format to be sent in\r\n // the header.\r\n const heartbeatsToSend = [];\r\n // Single date format heartbeats that are not sent.\r\n let unsentEntries = heartbeatsCache.slice();\r\n for (const singleDateHeartbeat of heartbeatsCache) {\r\n // Look for an existing entry with the same user agent.\r\n const heartbeatEntry = heartbeatsToSend.find(hb => hb.agent === singleDateHeartbeat.agent);\r\n if (!heartbeatEntry) {\r\n // If no entry for this user agent exists, create one.\r\n heartbeatsToSend.push({\r\n agent: singleDateHeartbeat.agent,\r\n dates: [singleDateHeartbeat.date]\r\n });\r\n if (countBytes(heartbeatsToSend) > maxSize) {\r\n // If the header would exceed max size, remove the added heartbeat\r\n // entry and stop adding to the header.\r\n heartbeatsToSend.pop();\r\n break;\r\n }\r\n }\r\n else {\r\n heartbeatEntry.dates.push(singleDateHeartbeat.date);\r\n // If the header would exceed max size, remove the added date\r\n // and stop adding to the header.\r\n if (countBytes(heartbeatsToSend) > maxSize) {\r\n heartbeatEntry.dates.pop();\r\n break;\r\n }\r\n }\r\n // Pop unsent entry from queue. (Skipped if adding the entry exceeded\r\n // quota and the loop breaks early.)\r\n unsentEntries = unsentEntries.slice(1);\r\n }\r\n return {\r\n heartbeatsToSend,\r\n unsentEntries\r\n };\r\n}\r\nclass HeartbeatStorageImpl {\r\n constructor(app) {\r\n this.app = app;\r\n this._canUseIndexedDBPromise = this.runIndexedDBEnvironmentCheck();\r\n }\r\n async runIndexedDBEnvironmentCheck() {\r\n if (!isIndexedDBAvailable()) {\r\n return false;\r\n }\r\n else {\r\n return validateIndexedDBOpenable()\r\n .then(() => true)\r\n .catch(() => false);\r\n }\r\n }\r\n /**\r\n * Read all heartbeats.\r\n */\r\n async read() {\r\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\r\n if (!canUseIndexedDB) {\r\n return { heartbeats: [] };\r\n }\r\n else {\r\n const idbHeartbeatObject = await readHeartbeatsFromIndexedDB(this.app);\r\n return idbHeartbeatObject || { heartbeats: [] };\r\n }\r\n }\r\n // overwrite the storage with the provided heartbeats\r\n async overwrite(heartbeatsObject) {\r\n var _a;\r\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\r\n if (!canUseIndexedDB) {\r\n return;\r\n }\r\n else {\r\n const existingHeartbeatsObject = await this.read();\r\n return writeHeartbeatsToIndexedDB(this.app, {\r\n lastSentHeartbeatDate: (_a = heartbeatsObject.lastSentHeartbeatDate) !== null && _a !== void 0 ? _a : existingHeartbeatsObject.lastSentHeartbeatDate,\r\n heartbeats: heartbeatsObject.heartbeats\r\n });\r\n }\r\n }\r\n // add heartbeats\r\n async add(heartbeatsObject) {\r\n var _a;\r\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\r\n if (!canUseIndexedDB) {\r\n return;\r\n }\r\n else {\r\n const existingHeartbeatsObject = await this.read();\r\n return writeHeartbeatsToIndexedDB(this.app, {\r\n lastSentHeartbeatDate: (_a = heartbeatsObject.lastSentHeartbeatDate) !== null && _a !== void 0 ? _a : existingHeartbeatsObject.lastSentHeartbeatDate,\r\n heartbeats: [\r\n ...existingHeartbeatsObject.heartbeats,\r\n ...heartbeatsObject.heartbeats\r\n ]\r\n });\r\n }\r\n }\r\n}\r\n/**\r\n * Calculate bytes of a HeartbeatsByUserAgent array after being wrapped\r\n * in a platform logging header JSON object, stringified, and converted\r\n * to base 64.\r\n */\r\nfunction countBytes(heartbeatsCache) {\r\n // base64 has a restricted set of characters, all of which should be 1 byte.\r\n return base64urlEncodeWithoutPadding(\r\n // heartbeatsCache wrapper properties\r\n JSON.stringify({ version: 2, heartbeats: heartbeatsCache })).length;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction registerCoreComponents(variant) {\r\n _registerComponent(new Component('platform-logger', container => new PlatformLoggerServiceImpl(container), \"PRIVATE\" /* ComponentType.PRIVATE */));\r\n _registerComponent(new Component('heartbeat', container => new HeartbeatServiceImpl(container), \"PRIVATE\" /* ComponentType.PRIVATE */));\r\n // Register `app` package.\r\n registerVersion(name$o, version$1, variant);\r\n // BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\r\n registerVersion(name$o, version$1, 'esm2017');\r\n // Register platform SDK identifier (no version).\r\n registerVersion('fire-js', '');\r\n}\n\n/**\r\n * Firebase App\r\n *\r\n * @remarks This package coordinates the communication between the different Firebase components\r\n * @packageDocumentation\r\n */\r\nregisterCoreComponents('');\n\nexport { SDK_VERSION, DEFAULT_ENTRY_NAME as _DEFAULT_ENTRY_NAME, _addComponent, _addOrOverwriteComponent, _apps, _clearComponents, _components, _getProvider, _registerComponent, _removeServiceInstance, deleteApp, getApp, getApps, initializeApp, onLog, registerVersion, setLogLevel };\n//# sourceMappingURL=index.esm2017.js.map\n","import { registerVersion } from '@firebase/app';\nexport * from '@firebase/app';\n\nvar name = \"firebase\";\nvar version = \"9.16.0\";\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nregisterVersion(name, version, 'app');\n//# sourceMappingURL=index.esm.js.map\n","import { _getProvider, getApp, _registerComponent, registerVersion } from '@firebase/app';\nimport { Component } from '@firebase/component';\nimport { ErrorFactory, FirebaseError } from '@firebase/util';\nimport { openDB } from 'idb';\n\nconst name = \"@firebase/installations\";\nconst version = \"0.6.1\";\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst PENDING_TIMEOUT_MS = 10000;\r\nconst PACKAGE_VERSION = `w:${version}`;\r\nconst INTERNAL_AUTH_VERSION = 'FIS_v2';\r\nconst INSTALLATIONS_API_URL = 'https://firebaseinstallations.googleapis.com/v1';\r\nconst TOKEN_EXPIRATION_BUFFER = 60 * 60 * 1000; // One hour\r\nconst SERVICE = 'installations';\r\nconst SERVICE_NAME = 'Installations';\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst ERROR_DESCRIPTION_MAP = {\r\n [\"missing-app-config-values\" /* ErrorCode.MISSING_APP_CONFIG_VALUES */]: 'Missing App configuration value: \"{$valueName}\"',\r\n [\"not-registered\" /* ErrorCode.NOT_REGISTERED */]: 'Firebase Installation is not registered.',\r\n [\"installation-not-found\" /* ErrorCode.INSTALLATION_NOT_FOUND */]: 'Firebase Installation not found.',\r\n [\"request-failed\" /* ErrorCode.REQUEST_FAILED */]: '{$requestName} request failed with error \"{$serverCode} {$serverStatus}: {$serverMessage}\"',\r\n [\"app-offline\" /* ErrorCode.APP_OFFLINE */]: 'Could not process request. Application offline.',\r\n [\"delete-pending-registration\" /* ErrorCode.DELETE_PENDING_REGISTRATION */]: \"Can't delete installation while there is a pending registration request.\"\r\n};\r\nconst ERROR_FACTORY = new ErrorFactory(SERVICE, SERVICE_NAME, ERROR_DESCRIPTION_MAP);\r\n/** Returns true if error is a FirebaseError that is based on an error from the server. */\r\nfunction isServerError(error) {\r\n return (error instanceof FirebaseError &&\r\n error.code.includes(\"request-failed\" /* ErrorCode.REQUEST_FAILED */));\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction getInstallationsEndpoint({ projectId }) {\r\n return `${INSTALLATIONS_API_URL}/projects/${projectId}/installations`;\r\n}\r\nfunction extractAuthTokenInfoFromResponse(response) {\r\n return {\r\n token: response.token,\r\n requestStatus: 2 /* RequestStatus.COMPLETED */,\r\n expiresIn: getExpiresInFromResponseExpiresIn(response.expiresIn),\r\n creationTime: Date.now()\r\n };\r\n}\r\nasync function getErrorFromResponse(requestName, response) {\r\n const responseJson = await response.json();\r\n const errorData = responseJson.error;\r\n return ERROR_FACTORY.create(\"request-failed\" /* ErrorCode.REQUEST_FAILED */, {\r\n requestName,\r\n serverCode: errorData.code,\r\n serverMessage: errorData.message,\r\n serverStatus: errorData.status\r\n });\r\n}\r\nfunction getHeaders({ apiKey }) {\r\n return new Headers({\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json',\r\n 'x-goog-api-key': apiKey\r\n });\r\n}\r\nfunction getHeadersWithAuth(appConfig, { refreshToken }) {\r\n const headers = getHeaders(appConfig);\r\n headers.append('Authorization', getAuthorizationHeader(refreshToken));\r\n return headers;\r\n}\r\n/**\r\n * Calls the passed in fetch wrapper and returns the response.\r\n * If the returned response has a status of 5xx, re-runs the function once and\r\n * returns the response.\r\n */\r\nasync function retryIfServerError(fn) {\r\n const result = await fn();\r\n if (result.status >= 500 && result.status < 600) {\r\n // Internal Server Error. Retry request.\r\n return fn();\r\n }\r\n return result;\r\n}\r\nfunction getExpiresInFromResponseExpiresIn(responseExpiresIn) {\r\n // This works because the server will never respond with fractions of a second.\r\n return Number(responseExpiresIn.replace('s', '000'));\r\n}\r\nfunction getAuthorizationHeader(refreshToken) {\r\n return `${INTERNAL_AUTH_VERSION} ${refreshToken}`;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function createInstallationRequest({ appConfig, heartbeatServiceProvider }, { fid }) {\r\n const endpoint = getInstallationsEndpoint(appConfig);\r\n const headers = getHeaders(appConfig);\r\n // If heartbeat service exists, add the heartbeat string to the header.\r\n const heartbeatService = heartbeatServiceProvider.getImmediate({\r\n optional: true\r\n });\r\n if (heartbeatService) {\r\n const heartbeatsHeader = await heartbeatService.getHeartbeatsHeader();\r\n if (heartbeatsHeader) {\r\n headers.append('x-firebase-client', heartbeatsHeader);\r\n }\r\n }\r\n const body = {\r\n fid,\r\n authVersion: INTERNAL_AUTH_VERSION,\r\n appId: appConfig.appId,\r\n sdkVersion: PACKAGE_VERSION\r\n };\r\n const request = {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify(body)\r\n };\r\n const response = await retryIfServerError(() => fetch(endpoint, request));\r\n if (response.ok) {\r\n const responseValue = await response.json();\r\n const registeredInstallationEntry = {\r\n fid: responseValue.fid || fid,\r\n registrationStatus: 2 /* RequestStatus.COMPLETED */,\r\n refreshToken: responseValue.refreshToken,\r\n authToken: extractAuthTokenInfoFromResponse(responseValue.authToken)\r\n };\r\n return registeredInstallationEntry;\r\n }\r\n else {\r\n throw await getErrorFromResponse('Create Installation', response);\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/** Returns a promise that resolves after given time passes. */\r\nfunction sleep(ms) {\r\n return new Promise(resolve => {\r\n setTimeout(resolve, ms);\r\n });\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction bufferToBase64UrlSafe(array) {\r\n const b64 = btoa(String.fromCharCode(...array));\r\n return b64.replace(/\\+/g, '-').replace(/\\//g, '_');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst VALID_FID_PATTERN = /^[cdef][\\w-]{21}$/;\r\nconst INVALID_FID = '';\r\n/**\r\n * Generates a new FID using random values from Web Crypto API.\r\n * Returns an empty string if FID generation fails for any reason.\r\n */\r\nfunction generateFid() {\r\n try {\r\n // A valid FID has exactly 22 base64 characters, which is 132 bits, or 16.5\r\n // bytes. our implementation generates a 17 byte array instead.\r\n const fidByteArray = new Uint8Array(17);\r\n const crypto = self.crypto || self.msCrypto;\r\n crypto.getRandomValues(fidByteArray);\r\n // Replace the first 4 random bits with the constant FID header of 0b0111.\r\n fidByteArray[0] = 0b01110000 + (fidByteArray[0] % 0b00010000);\r\n const fid = encode(fidByteArray);\r\n return VALID_FID_PATTERN.test(fid) ? fid : INVALID_FID;\r\n }\r\n catch (_a) {\r\n // FID generation errored\r\n return INVALID_FID;\r\n }\r\n}\r\n/** Converts a FID Uint8Array to a base64 string representation. */\r\nfunction encode(fidByteArray) {\r\n const b64String = bufferToBase64UrlSafe(fidByteArray);\r\n // Remove the 23rd character that was added because of the extra 4 bits at the\r\n // end of our 17 byte array, and the '=' padding.\r\n return b64String.substr(0, 22);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/** Returns a string key that can be used to identify the app. */\r\nfunction getKey(appConfig) {\r\n return `${appConfig.appName}!${appConfig.appId}`;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst fidChangeCallbacks = new Map();\r\n/**\r\n * Calls the onIdChange callbacks with the new FID value, and broadcasts the\r\n * change to other tabs.\r\n */\r\nfunction fidChanged(appConfig, fid) {\r\n const key = getKey(appConfig);\r\n callFidChangeCallbacks(key, fid);\r\n broadcastFidChange(key, fid);\r\n}\r\nfunction addCallback(appConfig, callback) {\r\n // Open the broadcast channel if it's not already open,\r\n // to be able to listen to change events from other tabs.\r\n getBroadcastChannel();\r\n const key = getKey(appConfig);\r\n let callbackSet = fidChangeCallbacks.get(key);\r\n if (!callbackSet) {\r\n callbackSet = new Set();\r\n fidChangeCallbacks.set(key, callbackSet);\r\n }\r\n callbackSet.add(callback);\r\n}\r\nfunction removeCallback(appConfig, callback) {\r\n const key = getKey(appConfig);\r\n const callbackSet = fidChangeCallbacks.get(key);\r\n if (!callbackSet) {\r\n return;\r\n }\r\n callbackSet.delete(callback);\r\n if (callbackSet.size === 0) {\r\n fidChangeCallbacks.delete(key);\r\n }\r\n // Close broadcast channel if there are no more callbacks.\r\n closeBroadcastChannel();\r\n}\r\nfunction callFidChangeCallbacks(key, fid) {\r\n const callbacks = fidChangeCallbacks.get(key);\r\n if (!callbacks) {\r\n return;\r\n }\r\n for (const callback of callbacks) {\r\n callback(fid);\r\n }\r\n}\r\nfunction broadcastFidChange(key, fid) {\r\n const channel = getBroadcastChannel();\r\n if (channel) {\r\n channel.postMessage({ key, fid });\r\n }\r\n closeBroadcastChannel();\r\n}\r\nlet broadcastChannel = null;\r\n/** Opens and returns a BroadcastChannel if it is supported by the browser. */\r\nfunction getBroadcastChannel() {\r\n if (!broadcastChannel && 'BroadcastChannel' in self) {\r\n broadcastChannel = new BroadcastChannel('[Firebase] FID Change');\r\n broadcastChannel.onmessage = e => {\r\n callFidChangeCallbacks(e.data.key, e.data.fid);\r\n };\r\n }\r\n return broadcastChannel;\r\n}\r\nfunction closeBroadcastChannel() {\r\n if (fidChangeCallbacks.size === 0 && broadcastChannel) {\r\n broadcastChannel.close();\r\n broadcastChannel = null;\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst DATABASE_NAME = 'firebase-installations-database';\r\nconst DATABASE_VERSION = 1;\r\nconst OBJECT_STORE_NAME = 'firebase-installations-store';\r\nlet dbPromise = null;\r\nfunction getDbPromise() {\r\n if (!dbPromise) {\r\n dbPromise = openDB(DATABASE_NAME, DATABASE_VERSION, {\r\n upgrade: (db, oldVersion) => {\r\n // We don't use 'break' in this switch statement, the fall-through\r\n // behavior is what we want, because if there are multiple versions between\r\n // the old version and the current version, we want ALL the migrations\r\n // that correspond to those versions to run, not only the last one.\r\n // eslint-disable-next-line default-case\r\n switch (oldVersion) {\r\n case 0:\r\n db.createObjectStore(OBJECT_STORE_NAME);\r\n }\r\n }\r\n });\r\n }\r\n return dbPromise;\r\n}\r\n/** Assigns or overwrites the record for the given key with the given value. */\r\nasync function set(appConfig, value) {\r\n const key = getKey(appConfig);\r\n const db = await getDbPromise();\r\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\r\n const objectStore = tx.objectStore(OBJECT_STORE_NAME);\r\n const oldValue = (await objectStore.get(key));\r\n await objectStore.put(value, key);\r\n await tx.done;\r\n if (!oldValue || oldValue.fid !== value.fid) {\r\n fidChanged(appConfig, value.fid);\r\n }\r\n return value;\r\n}\r\n/** Removes record(s) from the objectStore that match the given key. */\r\nasync function remove(appConfig) {\r\n const key = getKey(appConfig);\r\n const db = await getDbPromise();\r\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\r\n await tx.objectStore(OBJECT_STORE_NAME).delete(key);\r\n await tx.done;\r\n}\r\n/**\r\n * Atomically updates a record with the result of updateFn, which gets\r\n * called with the current value. If newValue is undefined, the record is\r\n * deleted instead.\r\n * @return Updated value\r\n */\r\nasync function update(appConfig, updateFn) {\r\n const key = getKey(appConfig);\r\n const db = await getDbPromise();\r\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\r\n const store = tx.objectStore(OBJECT_STORE_NAME);\r\n const oldValue = (await store.get(key));\r\n const newValue = updateFn(oldValue);\r\n if (newValue === undefined) {\r\n await store.delete(key);\r\n }\r\n else {\r\n await store.put(newValue, key);\r\n }\r\n await tx.done;\r\n if (newValue && (!oldValue || oldValue.fid !== newValue.fid)) {\r\n fidChanged(appConfig, newValue.fid);\r\n }\r\n return newValue;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Updates and returns the InstallationEntry from the database.\r\n * Also triggers a registration request if it is necessary and possible.\r\n */\r\nasync function getInstallationEntry(installations) {\r\n let registrationPromise;\r\n const installationEntry = await update(installations.appConfig, oldEntry => {\r\n const installationEntry = updateOrCreateInstallationEntry(oldEntry);\r\n const entryWithPromise = triggerRegistrationIfNecessary(installations, installationEntry);\r\n registrationPromise = entryWithPromise.registrationPromise;\r\n return entryWithPromise.installationEntry;\r\n });\r\n if (installationEntry.fid === INVALID_FID) {\r\n // FID generation failed. Waiting for the FID from the server.\r\n return { installationEntry: await registrationPromise };\r\n }\r\n return {\r\n installationEntry,\r\n registrationPromise\r\n };\r\n}\r\n/**\r\n * Creates a new Installation Entry if one does not exist.\r\n * Also clears timed out pending requests.\r\n */\r\nfunction updateOrCreateInstallationEntry(oldEntry) {\r\n const entry = oldEntry || {\r\n fid: generateFid(),\r\n registrationStatus: 0 /* RequestStatus.NOT_STARTED */\r\n };\r\n return clearTimedOutRequest(entry);\r\n}\r\n/**\r\n * If the Firebase Installation is not registered yet, this will trigger the\r\n * registration and return an InProgressInstallationEntry.\r\n *\r\n * If registrationPromise does not exist, the installationEntry is guaranteed\r\n * to be registered.\r\n */\r\nfunction triggerRegistrationIfNecessary(installations, installationEntry) {\r\n if (installationEntry.registrationStatus === 0 /* RequestStatus.NOT_STARTED */) {\r\n if (!navigator.onLine) {\r\n // Registration required but app is offline.\r\n const registrationPromiseWithError = Promise.reject(ERROR_FACTORY.create(\"app-offline\" /* ErrorCode.APP_OFFLINE */));\r\n return {\r\n installationEntry,\r\n registrationPromise: registrationPromiseWithError\r\n };\r\n }\r\n // Try registering. Change status to IN_PROGRESS.\r\n const inProgressEntry = {\r\n fid: installationEntry.fid,\r\n registrationStatus: 1 /* RequestStatus.IN_PROGRESS */,\r\n registrationTime: Date.now()\r\n };\r\n const registrationPromise = registerInstallation(installations, inProgressEntry);\r\n return { installationEntry: inProgressEntry, registrationPromise };\r\n }\r\n else if (installationEntry.registrationStatus === 1 /* RequestStatus.IN_PROGRESS */) {\r\n return {\r\n installationEntry,\r\n registrationPromise: waitUntilFidRegistration(installations)\r\n };\r\n }\r\n else {\r\n return { installationEntry };\r\n }\r\n}\r\n/** This will be executed only once for each new Firebase Installation. */\r\nasync function registerInstallation(installations, installationEntry) {\r\n try {\r\n const registeredInstallationEntry = await createInstallationRequest(installations, installationEntry);\r\n return set(installations.appConfig, registeredInstallationEntry);\r\n }\r\n catch (e) {\r\n if (isServerError(e) && e.customData.serverCode === 409) {\r\n // Server returned a \"FID can not be used\" error.\r\n // Generate a new ID next time.\r\n await remove(installations.appConfig);\r\n }\r\n else {\r\n // Registration failed. Set FID as not registered.\r\n await set(installations.appConfig, {\r\n fid: installationEntry.fid,\r\n registrationStatus: 0 /* RequestStatus.NOT_STARTED */\r\n });\r\n }\r\n throw e;\r\n }\r\n}\r\n/** Call if FID registration is pending in another request. */\r\nasync function waitUntilFidRegistration(installations) {\r\n // Unfortunately, there is no way of reliably observing when a value in\r\n // IndexedDB changes (yet, see https://github.com/WICG/indexed-db-observers),\r\n // so we need to poll.\r\n let entry = await updateInstallationRequest(installations.appConfig);\r\n while (entry.registrationStatus === 1 /* RequestStatus.IN_PROGRESS */) {\r\n // createInstallation request still in progress.\r\n await sleep(100);\r\n entry = await updateInstallationRequest(installations.appConfig);\r\n }\r\n if (entry.registrationStatus === 0 /* RequestStatus.NOT_STARTED */) {\r\n // The request timed out or failed in a different call. Try again.\r\n const { installationEntry, registrationPromise } = await getInstallationEntry(installations);\r\n if (registrationPromise) {\r\n return registrationPromise;\r\n }\r\n else {\r\n // if there is no registrationPromise, entry is registered.\r\n return installationEntry;\r\n }\r\n }\r\n return entry;\r\n}\r\n/**\r\n * Called only if there is a CreateInstallation request in progress.\r\n *\r\n * Updates the InstallationEntry in the DB based on the status of the\r\n * CreateInstallation request.\r\n *\r\n * Returns the updated InstallationEntry.\r\n */\r\nfunction updateInstallationRequest(appConfig) {\r\n return update(appConfig, oldEntry => {\r\n if (!oldEntry) {\r\n throw ERROR_FACTORY.create(\"installation-not-found\" /* ErrorCode.INSTALLATION_NOT_FOUND */);\r\n }\r\n return clearTimedOutRequest(oldEntry);\r\n });\r\n}\r\nfunction clearTimedOutRequest(entry) {\r\n if (hasInstallationRequestTimedOut(entry)) {\r\n return {\r\n fid: entry.fid,\r\n registrationStatus: 0 /* RequestStatus.NOT_STARTED */\r\n };\r\n }\r\n return entry;\r\n}\r\nfunction hasInstallationRequestTimedOut(installationEntry) {\r\n return (installationEntry.registrationStatus === 1 /* RequestStatus.IN_PROGRESS */ &&\r\n installationEntry.registrationTime + PENDING_TIMEOUT_MS < Date.now());\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function generateAuthTokenRequest({ appConfig, heartbeatServiceProvider }, installationEntry) {\r\n const endpoint = getGenerateAuthTokenEndpoint(appConfig, installationEntry);\r\n const headers = getHeadersWithAuth(appConfig, installationEntry);\r\n // If heartbeat service exists, add the heartbeat string to the header.\r\n const heartbeatService = heartbeatServiceProvider.getImmediate({\r\n optional: true\r\n });\r\n if (heartbeatService) {\r\n const heartbeatsHeader = await heartbeatService.getHeartbeatsHeader();\r\n if (heartbeatsHeader) {\r\n headers.append('x-firebase-client', heartbeatsHeader);\r\n }\r\n }\r\n const body = {\r\n installation: {\r\n sdkVersion: PACKAGE_VERSION,\r\n appId: appConfig.appId\r\n }\r\n };\r\n const request = {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify(body)\r\n };\r\n const response = await retryIfServerError(() => fetch(endpoint, request));\r\n if (response.ok) {\r\n const responseValue = await response.json();\r\n const completedAuthToken = extractAuthTokenInfoFromResponse(responseValue);\r\n return completedAuthToken;\r\n }\r\n else {\r\n throw await getErrorFromResponse('Generate Auth Token', response);\r\n }\r\n}\r\nfunction getGenerateAuthTokenEndpoint(appConfig, { fid }) {\r\n return `${getInstallationsEndpoint(appConfig)}/${fid}/authTokens:generate`;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns a valid authentication token for the installation. Generates a new\r\n * token if one doesn't exist, is expired or about to expire.\r\n *\r\n * Should only be called if the Firebase Installation is registered.\r\n */\r\nasync function refreshAuthToken(installations, forceRefresh = false) {\r\n let tokenPromise;\r\n const entry = await update(installations.appConfig, oldEntry => {\r\n if (!isEntryRegistered(oldEntry)) {\r\n throw ERROR_FACTORY.create(\"not-registered\" /* ErrorCode.NOT_REGISTERED */);\r\n }\r\n const oldAuthToken = oldEntry.authToken;\r\n if (!forceRefresh && isAuthTokenValid(oldAuthToken)) {\r\n // There is a valid token in the DB.\r\n return oldEntry;\r\n }\r\n else if (oldAuthToken.requestStatus === 1 /* RequestStatus.IN_PROGRESS */) {\r\n // There already is a token request in progress.\r\n tokenPromise = waitUntilAuthTokenRequest(installations, forceRefresh);\r\n return oldEntry;\r\n }\r\n else {\r\n // No token or token expired.\r\n if (!navigator.onLine) {\r\n throw ERROR_FACTORY.create(\"app-offline\" /* ErrorCode.APP_OFFLINE */);\r\n }\r\n const inProgressEntry = makeAuthTokenRequestInProgressEntry(oldEntry);\r\n tokenPromise = fetchAuthTokenFromServer(installations, inProgressEntry);\r\n return inProgressEntry;\r\n }\r\n });\r\n const authToken = tokenPromise\r\n ? await tokenPromise\r\n : entry.authToken;\r\n return authToken;\r\n}\r\n/**\r\n * Call only if FID is registered and Auth Token request is in progress.\r\n *\r\n * Waits until the current pending request finishes. If the request times out,\r\n * tries once in this thread as well.\r\n */\r\nasync function waitUntilAuthTokenRequest(installations, forceRefresh) {\r\n // Unfortunately, there is no way of reliably observing when a value in\r\n // IndexedDB changes (yet, see https://github.com/WICG/indexed-db-observers),\r\n // so we need to poll.\r\n let entry = await updateAuthTokenRequest(installations.appConfig);\r\n while (entry.authToken.requestStatus === 1 /* RequestStatus.IN_PROGRESS */) {\r\n // generateAuthToken still in progress.\r\n await sleep(100);\r\n entry = await updateAuthTokenRequest(installations.appConfig);\r\n }\r\n const authToken = entry.authToken;\r\n if (authToken.requestStatus === 0 /* RequestStatus.NOT_STARTED */) {\r\n // The request timed out or failed in a different call. Try again.\r\n return refreshAuthToken(installations, forceRefresh);\r\n }\r\n else {\r\n return authToken;\r\n }\r\n}\r\n/**\r\n * Called only if there is a GenerateAuthToken request in progress.\r\n *\r\n * Updates the InstallationEntry in the DB based on the status of the\r\n * GenerateAuthToken request.\r\n *\r\n * Returns the updated InstallationEntry.\r\n */\r\nfunction updateAuthTokenRequest(appConfig) {\r\n return update(appConfig, oldEntry => {\r\n if (!isEntryRegistered(oldEntry)) {\r\n throw ERROR_FACTORY.create(\"not-registered\" /* ErrorCode.NOT_REGISTERED */);\r\n }\r\n const oldAuthToken = oldEntry.authToken;\r\n if (hasAuthTokenRequestTimedOut(oldAuthToken)) {\r\n return Object.assign(Object.assign({}, oldEntry), { authToken: { requestStatus: 0 /* RequestStatus.NOT_STARTED */ } });\r\n }\r\n return oldEntry;\r\n });\r\n}\r\nasync function fetchAuthTokenFromServer(installations, installationEntry) {\r\n try {\r\n const authToken = await generateAuthTokenRequest(installations, installationEntry);\r\n const updatedInstallationEntry = Object.assign(Object.assign({}, installationEntry), { authToken });\r\n await set(installations.appConfig, updatedInstallationEntry);\r\n return authToken;\r\n }\r\n catch (e) {\r\n if (isServerError(e) &&\r\n (e.customData.serverCode === 401 || e.customData.serverCode === 404)) {\r\n // Server returned a \"FID not found\" or a \"Invalid authentication\" error.\r\n // Generate a new ID next time.\r\n await remove(installations.appConfig);\r\n }\r\n else {\r\n const updatedInstallationEntry = Object.assign(Object.assign({}, installationEntry), { authToken: { requestStatus: 0 /* RequestStatus.NOT_STARTED */ } });\r\n await set(installations.appConfig, updatedInstallationEntry);\r\n }\r\n throw e;\r\n }\r\n}\r\nfunction isEntryRegistered(installationEntry) {\r\n return (installationEntry !== undefined &&\r\n installationEntry.registrationStatus === 2 /* RequestStatus.COMPLETED */);\r\n}\r\nfunction isAuthTokenValid(authToken) {\r\n return (authToken.requestStatus === 2 /* RequestStatus.COMPLETED */ &&\r\n !isAuthTokenExpired(authToken));\r\n}\r\nfunction isAuthTokenExpired(authToken) {\r\n const now = Date.now();\r\n return (now < authToken.creationTime ||\r\n authToken.creationTime + authToken.expiresIn < now + TOKEN_EXPIRATION_BUFFER);\r\n}\r\n/** Returns an updated InstallationEntry with an InProgressAuthToken. */\r\nfunction makeAuthTokenRequestInProgressEntry(oldEntry) {\r\n const inProgressAuthToken = {\r\n requestStatus: 1 /* RequestStatus.IN_PROGRESS */,\r\n requestTime: Date.now()\r\n };\r\n return Object.assign(Object.assign({}, oldEntry), { authToken: inProgressAuthToken });\r\n}\r\nfunction hasAuthTokenRequestTimedOut(authToken) {\r\n return (authToken.requestStatus === 1 /* RequestStatus.IN_PROGRESS */ &&\r\n authToken.requestTime + PENDING_TIMEOUT_MS < Date.now());\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Creates a Firebase Installation if there isn't one for the app and\r\n * returns the Installation ID.\r\n * @param installations - The `Installations` instance.\r\n *\r\n * @public\r\n */\r\nasync function getId(installations) {\r\n const installationsImpl = installations;\r\n const { installationEntry, registrationPromise } = await getInstallationEntry(installationsImpl);\r\n if (registrationPromise) {\r\n registrationPromise.catch(console.error);\r\n }\r\n else {\r\n // If the installation is already registered, update the authentication\r\n // token if needed.\r\n refreshAuthToken(installationsImpl).catch(console.error);\r\n }\r\n return installationEntry.fid;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns a Firebase Installations auth token, identifying the current\r\n * Firebase Installation.\r\n * @param installations - The `Installations` instance.\r\n * @param forceRefresh - Force refresh regardless of token expiration.\r\n *\r\n * @public\r\n */\r\nasync function getToken(installations, forceRefresh = false) {\r\n const installationsImpl = installations;\r\n await completeInstallationRegistration(installationsImpl);\r\n // At this point we either have a Registered Installation in the DB, or we've\r\n // already thrown an error.\r\n const authToken = await refreshAuthToken(installationsImpl, forceRefresh);\r\n return authToken.token;\r\n}\r\nasync function completeInstallationRegistration(installations) {\r\n const { registrationPromise } = await getInstallationEntry(installations);\r\n if (registrationPromise) {\r\n // A createInstallation request is in progress. Wait until it finishes.\r\n await registrationPromise;\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function deleteInstallationRequest(appConfig, installationEntry) {\r\n const endpoint = getDeleteEndpoint(appConfig, installationEntry);\r\n const headers = getHeadersWithAuth(appConfig, installationEntry);\r\n const request = {\r\n method: 'DELETE',\r\n headers\r\n };\r\n const response = await retryIfServerError(() => fetch(endpoint, request));\r\n if (!response.ok) {\r\n throw await getErrorFromResponse('Delete Installation', response);\r\n }\r\n}\r\nfunction getDeleteEndpoint(appConfig, { fid }) {\r\n return `${getInstallationsEndpoint(appConfig)}/${fid}`;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Deletes the Firebase Installation and all associated data.\r\n * @param installations - The `Installations` instance.\r\n *\r\n * @public\r\n */\r\nasync function deleteInstallations(installations) {\r\n const { appConfig } = installations;\r\n const entry = await update(appConfig, oldEntry => {\r\n if (oldEntry && oldEntry.registrationStatus === 0 /* RequestStatus.NOT_STARTED */) {\r\n // Delete the unregistered entry without sending a deleteInstallation request.\r\n return undefined;\r\n }\r\n return oldEntry;\r\n });\r\n if (entry) {\r\n if (entry.registrationStatus === 1 /* RequestStatus.IN_PROGRESS */) {\r\n // Can't delete while trying to register.\r\n throw ERROR_FACTORY.create(\"delete-pending-registration\" /* ErrorCode.DELETE_PENDING_REGISTRATION */);\r\n }\r\n else if (entry.registrationStatus === 2 /* RequestStatus.COMPLETED */) {\r\n if (!navigator.onLine) {\r\n throw ERROR_FACTORY.create(\"app-offline\" /* ErrorCode.APP_OFFLINE */);\r\n }\r\n else {\r\n await deleteInstallationRequest(appConfig, entry);\r\n await remove(appConfig);\r\n }\r\n }\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Sets a new callback that will get called when Installation ID changes.\r\n * Returns an unsubscribe function that will remove the callback when called.\r\n * @param installations - The `Installations` instance.\r\n * @param callback - The callback function that is invoked when FID changes.\r\n * @returns A function that can be called to unsubscribe.\r\n *\r\n * @public\r\n */\r\nfunction onIdChange(installations, callback) {\r\n const { appConfig } = installations;\r\n addCallback(appConfig, callback);\r\n return () => {\r\n removeCallback(appConfig, callback);\r\n };\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns an instance of {@link Installations} associated with the given\r\n * {@link @firebase/app#FirebaseApp} instance.\r\n * @param app - The {@link @firebase/app#FirebaseApp} instance.\r\n *\r\n * @public\r\n */\r\nfunction getInstallations(app = getApp()) {\r\n const installationsImpl = _getProvider(app, 'installations').getImmediate();\r\n return installationsImpl;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction extractAppConfig(app) {\r\n if (!app || !app.options) {\r\n throw getMissingValueError('App Configuration');\r\n }\r\n if (!app.name) {\r\n throw getMissingValueError('App Name');\r\n }\r\n // Required app config keys\r\n const configKeys = [\r\n 'projectId',\r\n 'apiKey',\r\n 'appId'\r\n ];\r\n for (const keyName of configKeys) {\r\n if (!app.options[keyName]) {\r\n throw getMissingValueError(keyName);\r\n }\r\n }\r\n return {\r\n appName: app.name,\r\n projectId: app.options.projectId,\r\n apiKey: app.options.apiKey,\r\n appId: app.options.appId\r\n };\r\n}\r\nfunction getMissingValueError(valueName) {\r\n return ERROR_FACTORY.create(\"missing-app-config-values\" /* ErrorCode.MISSING_APP_CONFIG_VALUES */, {\r\n valueName\r\n });\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst INSTALLATIONS_NAME = 'installations';\r\nconst INSTALLATIONS_NAME_INTERNAL = 'installations-internal';\r\nconst publicFactory = (container) => {\r\n const app = container.getProvider('app').getImmediate();\r\n // Throws if app isn't configured properly.\r\n const appConfig = extractAppConfig(app);\r\n const heartbeatServiceProvider = _getProvider(app, 'heartbeat');\r\n const installationsImpl = {\r\n app,\r\n appConfig,\r\n heartbeatServiceProvider,\r\n _delete: () => Promise.resolve()\r\n };\r\n return installationsImpl;\r\n};\r\nconst internalFactory = (container) => {\r\n const app = container.getProvider('app').getImmediate();\r\n // Internal FIS instance relies on public FIS instance.\r\n const installations = _getProvider(app, INSTALLATIONS_NAME).getImmediate();\r\n const installationsInternal = {\r\n getId: () => getId(installations),\r\n getToken: (forceRefresh) => getToken(installations, forceRefresh)\r\n };\r\n return installationsInternal;\r\n};\r\nfunction registerInstallations() {\r\n _registerComponent(new Component(INSTALLATIONS_NAME, publicFactory, \"PUBLIC\" /* ComponentType.PUBLIC */));\r\n _registerComponent(new Component(INSTALLATIONS_NAME_INTERNAL, internalFactory, \"PRIVATE\" /* ComponentType.PRIVATE */));\r\n}\n\n/**\r\n * Firebase Installations\r\n *\r\n * @packageDocumentation\r\n */\r\nregisterInstallations();\r\nregisterVersion(name, version);\r\n// BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\r\nregisterVersion(name, version, 'esm2017');\n\nexport { deleteInstallations, getId, getInstallations, getToken, onIdChange };\n//# sourceMappingURL=index.esm2017.js.map\n","import '@firebase/installations';\nimport { Component } from '@firebase/component';\nimport { openDB, deleteDB } from 'idb';\nimport { ErrorFactory, validateIndexedDBOpenable, isIndexedDBAvailable, areCookiesEnabled, getModularInstance } from '@firebase/util';\nimport { _registerComponent, registerVersion, _getProvider, getApp } from '@firebase/app';\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst DEFAULT_SW_PATH = '/firebase-messaging-sw.js';\r\nconst DEFAULT_SW_SCOPE = '/firebase-cloud-messaging-push-scope';\r\nconst DEFAULT_VAPID_KEY = 'BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4';\r\nconst ENDPOINT = 'https://fcmregistrations.googleapis.com/v1';\r\nconst CONSOLE_CAMPAIGN_ID = 'google.c.a.c_id';\r\nconst CONSOLE_CAMPAIGN_NAME = 'google.c.a.c_l';\r\nconst CONSOLE_CAMPAIGN_TIME = 'google.c.a.ts';\r\n/** Set to '1' if Analytics is enabled for the campaign */\r\nconst CONSOLE_CAMPAIGN_ANALYTICS_ENABLED = 'google.c.a.e';\r\nvar MessageType$1;\r\n(function (MessageType) {\r\n MessageType[MessageType[\"DATA_MESSAGE\"] = 1] = \"DATA_MESSAGE\";\r\n MessageType[MessageType[\"DISPLAY_NOTIFICATION\"] = 3] = \"DISPLAY_NOTIFICATION\";\r\n})(MessageType$1 || (MessageType$1 = {}));\n\n/**\r\n * @license\r\n * Copyright 2018 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except\r\n * in compliance with the License. You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software distributed under the License\r\n * is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express\r\n * or implied. See the License for the specific language governing permissions and limitations under\r\n * the License.\r\n */\r\nvar MessageType;\r\n(function (MessageType) {\r\n MessageType[\"PUSH_RECEIVED\"] = \"push-received\";\r\n MessageType[\"NOTIFICATION_CLICKED\"] = \"notification-clicked\";\r\n})(MessageType || (MessageType = {}));\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction arrayToBase64(array) {\r\n const uint8Array = new Uint8Array(array);\r\n const base64String = btoa(String.fromCharCode(...uint8Array));\r\n return base64String.replace(/=/g, '').replace(/\\+/g, '-').replace(/\\//g, '_');\r\n}\r\nfunction base64ToArray(base64String) {\r\n const padding = '='.repeat((4 - (base64String.length % 4)) % 4);\r\n const base64 = (base64String + padding)\r\n .replace(/\\-/g, '+')\r\n .replace(/_/g, '/');\r\n const rawData = atob(base64);\r\n const outputArray = new Uint8Array(rawData.length);\r\n for (let i = 0; i < rawData.length; ++i) {\r\n outputArray[i] = rawData.charCodeAt(i);\r\n }\r\n return outputArray;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst OLD_DB_NAME = 'fcm_token_details_db';\r\n/**\r\n * The last DB version of 'fcm_token_details_db' was 4. This is one higher, so that the upgrade\r\n * callback is called for all versions of the old DB.\r\n */\r\nconst OLD_DB_VERSION = 5;\r\nconst OLD_OBJECT_STORE_NAME = 'fcm_token_object_Store';\r\nasync function migrateOldDatabase(senderId) {\r\n if ('databases' in indexedDB) {\r\n // indexedDb.databases() is an IndexedDB v3 API and does not exist in all browsers. TODO: Remove\r\n // typecast when it lands in TS types.\r\n const databases = await indexedDB.databases();\r\n const dbNames = databases.map(db => db.name);\r\n if (!dbNames.includes(OLD_DB_NAME)) {\r\n // old DB didn't exist, no need to open.\r\n return null;\r\n }\r\n }\r\n let tokenDetails = null;\r\n const db = await openDB(OLD_DB_NAME, OLD_DB_VERSION, {\r\n upgrade: async (db, oldVersion, newVersion, upgradeTransaction) => {\r\n var _a;\r\n if (oldVersion < 2) {\r\n // Database too old, skip migration.\r\n return;\r\n }\r\n if (!db.objectStoreNames.contains(OLD_OBJECT_STORE_NAME)) {\r\n // Database did not exist. Nothing to do.\r\n return;\r\n }\r\n const objectStore = upgradeTransaction.objectStore(OLD_OBJECT_STORE_NAME);\r\n const value = await objectStore.index('fcmSenderId').get(senderId);\r\n await objectStore.clear();\r\n if (!value) {\r\n // No entry in the database, nothing to migrate.\r\n return;\r\n }\r\n if (oldVersion === 2) {\r\n const oldDetails = value;\r\n if (!oldDetails.auth || !oldDetails.p256dh || !oldDetails.endpoint) {\r\n return;\r\n }\r\n tokenDetails = {\r\n token: oldDetails.fcmToken,\r\n createTime: (_a = oldDetails.createTime) !== null && _a !== void 0 ? _a : Date.now(),\r\n subscriptionOptions: {\r\n auth: oldDetails.auth,\r\n p256dh: oldDetails.p256dh,\r\n endpoint: oldDetails.endpoint,\r\n swScope: oldDetails.swScope,\r\n vapidKey: typeof oldDetails.vapidKey === 'string'\r\n ? oldDetails.vapidKey\r\n : arrayToBase64(oldDetails.vapidKey)\r\n }\r\n };\r\n }\r\n else if (oldVersion === 3) {\r\n const oldDetails = value;\r\n tokenDetails = {\r\n token: oldDetails.fcmToken,\r\n createTime: oldDetails.createTime,\r\n subscriptionOptions: {\r\n auth: arrayToBase64(oldDetails.auth),\r\n p256dh: arrayToBase64(oldDetails.p256dh),\r\n endpoint: oldDetails.endpoint,\r\n swScope: oldDetails.swScope,\r\n vapidKey: arrayToBase64(oldDetails.vapidKey)\r\n }\r\n };\r\n }\r\n else if (oldVersion === 4) {\r\n const oldDetails = value;\r\n tokenDetails = {\r\n token: oldDetails.fcmToken,\r\n createTime: oldDetails.createTime,\r\n subscriptionOptions: {\r\n auth: arrayToBase64(oldDetails.auth),\r\n p256dh: arrayToBase64(oldDetails.p256dh),\r\n endpoint: oldDetails.endpoint,\r\n swScope: oldDetails.swScope,\r\n vapidKey: arrayToBase64(oldDetails.vapidKey)\r\n }\r\n };\r\n }\r\n }\r\n });\r\n db.close();\r\n // Delete all old databases.\r\n await deleteDB(OLD_DB_NAME);\r\n await deleteDB('fcm_vapid_details_db');\r\n await deleteDB('undefined');\r\n return checkTokenDetails(tokenDetails) ? tokenDetails : null;\r\n}\r\nfunction checkTokenDetails(tokenDetails) {\r\n if (!tokenDetails || !tokenDetails.subscriptionOptions) {\r\n return false;\r\n }\r\n const { subscriptionOptions } = tokenDetails;\r\n return (typeof tokenDetails.createTime === 'number' &&\r\n tokenDetails.createTime > 0 &&\r\n typeof tokenDetails.token === 'string' &&\r\n tokenDetails.token.length > 0 &&\r\n typeof subscriptionOptions.auth === 'string' &&\r\n subscriptionOptions.auth.length > 0 &&\r\n typeof subscriptionOptions.p256dh === 'string' &&\r\n subscriptionOptions.p256dh.length > 0 &&\r\n typeof subscriptionOptions.endpoint === 'string' &&\r\n subscriptionOptions.endpoint.length > 0 &&\r\n typeof subscriptionOptions.swScope === 'string' &&\r\n subscriptionOptions.swScope.length > 0 &&\r\n typeof subscriptionOptions.vapidKey === 'string' &&\r\n subscriptionOptions.vapidKey.length > 0);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// Exported for tests.\r\nconst DATABASE_NAME = 'firebase-messaging-database';\r\nconst DATABASE_VERSION = 1;\r\nconst OBJECT_STORE_NAME = 'firebase-messaging-store';\r\nlet dbPromise = null;\r\nfunction getDbPromise() {\r\n if (!dbPromise) {\r\n dbPromise = openDB(DATABASE_NAME, DATABASE_VERSION, {\r\n upgrade: (upgradeDb, oldVersion) => {\r\n // We don't use 'break' in this switch statement, the fall-through behavior is what we want,\r\n // because if there are multiple versions between the old version and the current version, we\r\n // want ALL the migrations that correspond to those versions to run, not only the last one.\r\n // eslint-disable-next-line default-case\r\n switch (oldVersion) {\r\n case 0:\r\n upgradeDb.createObjectStore(OBJECT_STORE_NAME);\r\n }\r\n }\r\n });\r\n }\r\n return dbPromise;\r\n}\r\n/** Gets record(s) from the objectStore that match the given key. */\r\nasync function dbGet(firebaseDependencies) {\r\n const key = getKey(firebaseDependencies);\r\n const db = await getDbPromise();\r\n const tokenDetails = (await db\r\n .transaction(OBJECT_STORE_NAME)\r\n .objectStore(OBJECT_STORE_NAME)\r\n .get(key));\r\n if (tokenDetails) {\r\n return tokenDetails;\r\n }\r\n else {\r\n // Check if there is a tokenDetails object in the old DB.\r\n const oldTokenDetails = await migrateOldDatabase(firebaseDependencies.appConfig.senderId);\r\n if (oldTokenDetails) {\r\n await dbSet(firebaseDependencies, oldTokenDetails);\r\n return oldTokenDetails;\r\n }\r\n }\r\n}\r\n/** Assigns or overwrites the record for the given key with the given value. */\r\nasync function dbSet(firebaseDependencies, tokenDetails) {\r\n const key = getKey(firebaseDependencies);\r\n const db = await getDbPromise();\r\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\r\n await tx.objectStore(OBJECT_STORE_NAME).put(tokenDetails, key);\r\n await tx.done;\r\n return tokenDetails;\r\n}\r\n/** Removes record(s) from the objectStore that match the given key. */\r\nasync function dbRemove(firebaseDependencies) {\r\n const key = getKey(firebaseDependencies);\r\n const db = await getDbPromise();\r\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\r\n await tx.objectStore(OBJECT_STORE_NAME).delete(key);\r\n await tx.done;\r\n}\r\nfunction getKey({ appConfig }) {\r\n return appConfig.appId;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst ERROR_MAP = {\r\n [\"missing-app-config-values\" /* ErrorCode.MISSING_APP_CONFIG_VALUES */]: 'Missing App configuration value: \"{$valueName}\"',\r\n [\"only-available-in-window\" /* ErrorCode.AVAILABLE_IN_WINDOW */]: 'This method is available in a Window context.',\r\n [\"only-available-in-sw\" /* ErrorCode.AVAILABLE_IN_SW */]: 'This method is available in a service worker context.',\r\n [\"permission-default\" /* ErrorCode.PERMISSION_DEFAULT */]: 'The notification permission was not granted and dismissed instead.',\r\n [\"permission-blocked\" /* ErrorCode.PERMISSION_BLOCKED */]: 'The notification permission was not granted and blocked instead.',\r\n [\"unsupported-browser\" /* ErrorCode.UNSUPPORTED_BROWSER */]: \"This browser doesn't support the API's required to use the Firebase SDK.\",\r\n [\"indexed-db-unsupported\" /* ErrorCode.INDEXED_DB_UNSUPPORTED */]: \"This browser doesn't support indexedDb.open() (ex. Safari iFrame, Firefox Private Browsing, etc)\",\r\n [\"failed-service-worker-registration\" /* ErrorCode.FAILED_DEFAULT_REGISTRATION */]: 'We are unable to register the default service worker. {$browserErrorMessage}',\r\n [\"token-subscribe-failed\" /* ErrorCode.TOKEN_SUBSCRIBE_FAILED */]: 'A problem occurred while subscribing the user to FCM: {$errorInfo}',\r\n [\"token-subscribe-no-token\" /* ErrorCode.TOKEN_SUBSCRIBE_NO_TOKEN */]: 'FCM returned no token when subscribing the user to push.',\r\n [\"token-unsubscribe-failed\" /* ErrorCode.TOKEN_UNSUBSCRIBE_FAILED */]: 'A problem occurred while unsubscribing the ' +\r\n 'user from FCM: {$errorInfo}',\r\n [\"token-update-failed\" /* ErrorCode.TOKEN_UPDATE_FAILED */]: 'A problem occurred while updating the user from FCM: {$errorInfo}',\r\n [\"token-update-no-token\" /* ErrorCode.TOKEN_UPDATE_NO_TOKEN */]: 'FCM returned no token when updating the user to push.',\r\n [\"use-sw-after-get-token\" /* ErrorCode.USE_SW_AFTER_GET_TOKEN */]: 'The useServiceWorker() method may only be called once and must be ' +\r\n 'called before calling getToken() to ensure your service worker is used.',\r\n [\"invalid-sw-registration\" /* ErrorCode.INVALID_SW_REGISTRATION */]: 'The input to useServiceWorker() must be a ServiceWorkerRegistration.',\r\n [\"invalid-bg-handler\" /* ErrorCode.INVALID_BG_HANDLER */]: 'The input to setBackgroundMessageHandler() must be a function.',\r\n [\"invalid-vapid-key\" /* ErrorCode.INVALID_VAPID_KEY */]: 'The public VAPID key must be a string.',\r\n [\"use-vapid-key-after-get-token\" /* ErrorCode.USE_VAPID_KEY_AFTER_GET_TOKEN */]: 'The usePublicVapidKey() method may only be called once and must be ' +\r\n 'called before calling getToken() to ensure your VAPID key is used.'\r\n};\r\nconst ERROR_FACTORY = new ErrorFactory('messaging', 'Messaging', ERROR_MAP);\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function requestGetToken(firebaseDependencies, subscriptionOptions) {\r\n const headers = await getHeaders(firebaseDependencies);\r\n const body = getBody(subscriptionOptions);\r\n const subscribeOptions = {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify(body)\r\n };\r\n let responseData;\r\n try {\r\n const response = await fetch(getEndpoint(firebaseDependencies.appConfig), subscribeOptions);\r\n responseData = await response.json();\r\n }\r\n catch (err) {\r\n throw ERROR_FACTORY.create(\"token-subscribe-failed\" /* ErrorCode.TOKEN_SUBSCRIBE_FAILED */, {\r\n errorInfo: err === null || err === void 0 ? void 0 : err.toString()\r\n });\r\n }\r\n if (responseData.error) {\r\n const message = responseData.error.message;\r\n throw ERROR_FACTORY.create(\"token-subscribe-failed\" /* ErrorCode.TOKEN_SUBSCRIBE_FAILED */, {\r\n errorInfo: message\r\n });\r\n }\r\n if (!responseData.token) {\r\n throw ERROR_FACTORY.create(\"token-subscribe-no-token\" /* ErrorCode.TOKEN_SUBSCRIBE_NO_TOKEN */);\r\n }\r\n return responseData.token;\r\n}\r\nasync function requestUpdateToken(firebaseDependencies, tokenDetails) {\r\n const headers = await getHeaders(firebaseDependencies);\r\n const body = getBody(tokenDetails.subscriptionOptions);\r\n const updateOptions = {\r\n method: 'PATCH',\r\n headers,\r\n body: JSON.stringify(body)\r\n };\r\n let responseData;\r\n try {\r\n const response = await fetch(`${getEndpoint(firebaseDependencies.appConfig)}/${tokenDetails.token}`, updateOptions);\r\n responseData = await response.json();\r\n }\r\n catch (err) {\r\n throw ERROR_FACTORY.create(\"token-update-failed\" /* ErrorCode.TOKEN_UPDATE_FAILED */, {\r\n errorInfo: err === null || err === void 0 ? void 0 : err.toString()\r\n });\r\n }\r\n if (responseData.error) {\r\n const message = responseData.error.message;\r\n throw ERROR_FACTORY.create(\"token-update-failed\" /* ErrorCode.TOKEN_UPDATE_FAILED */, {\r\n errorInfo: message\r\n });\r\n }\r\n if (!responseData.token) {\r\n throw ERROR_FACTORY.create(\"token-update-no-token\" /* ErrorCode.TOKEN_UPDATE_NO_TOKEN */);\r\n }\r\n return responseData.token;\r\n}\r\nasync function requestDeleteToken(firebaseDependencies, token) {\r\n const headers = await getHeaders(firebaseDependencies);\r\n const unsubscribeOptions = {\r\n method: 'DELETE',\r\n headers\r\n };\r\n try {\r\n const response = await fetch(`${getEndpoint(firebaseDependencies.appConfig)}/${token}`, unsubscribeOptions);\r\n const responseData = await response.json();\r\n if (responseData.error) {\r\n const message = responseData.error.message;\r\n throw ERROR_FACTORY.create(\"token-unsubscribe-failed\" /* ErrorCode.TOKEN_UNSUBSCRIBE_FAILED */, {\r\n errorInfo: message\r\n });\r\n }\r\n }\r\n catch (err) {\r\n throw ERROR_FACTORY.create(\"token-unsubscribe-failed\" /* ErrorCode.TOKEN_UNSUBSCRIBE_FAILED */, {\r\n errorInfo: err === null || err === void 0 ? void 0 : err.toString()\r\n });\r\n }\r\n}\r\nfunction getEndpoint({ projectId }) {\r\n return `${ENDPOINT}/projects/${projectId}/registrations`;\r\n}\r\nasync function getHeaders({ appConfig, installations }) {\r\n const authToken = await installations.getToken();\r\n return new Headers({\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json',\r\n 'x-goog-api-key': appConfig.apiKey,\r\n 'x-goog-firebase-installations-auth': `FIS ${authToken}`\r\n });\r\n}\r\nfunction getBody({ p256dh, auth, endpoint, vapidKey }) {\r\n const body = {\r\n web: {\r\n endpoint,\r\n auth,\r\n p256dh\r\n }\r\n };\r\n if (vapidKey !== DEFAULT_VAPID_KEY) {\r\n body.web.applicationPubKey = vapidKey;\r\n }\r\n return body;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// UpdateRegistration will be called once every week.\r\nconst TOKEN_EXPIRATION_MS = 7 * 24 * 60 * 60 * 1000; // 7 days\r\nasync function getTokenInternal(messaging) {\r\n const pushSubscription = await getPushSubscription(messaging.swRegistration, messaging.vapidKey);\r\n const subscriptionOptions = {\r\n vapidKey: messaging.vapidKey,\r\n swScope: messaging.swRegistration.scope,\r\n endpoint: pushSubscription.endpoint,\r\n auth: arrayToBase64(pushSubscription.getKey('auth')),\r\n p256dh: arrayToBase64(pushSubscription.getKey('p256dh'))\r\n };\r\n const tokenDetails = await dbGet(messaging.firebaseDependencies);\r\n if (!tokenDetails) {\r\n // No token, get a new one.\r\n return getNewToken(messaging.firebaseDependencies, subscriptionOptions);\r\n }\r\n else if (!isTokenValid(tokenDetails.subscriptionOptions, subscriptionOptions)) {\r\n // Invalid token, get a new one.\r\n try {\r\n await requestDeleteToken(messaging.firebaseDependencies, tokenDetails.token);\r\n }\r\n catch (e) {\r\n // Suppress errors because of #2364\r\n console.warn(e);\r\n }\r\n return getNewToken(messaging.firebaseDependencies, subscriptionOptions);\r\n }\r\n else if (Date.now() >= tokenDetails.createTime + TOKEN_EXPIRATION_MS) {\r\n // Weekly token refresh\r\n return updateToken(messaging, {\r\n token: tokenDetails.token,\r\n createTime: Date.now(),\r\n subscriptionOptions\r\n });\r\n }\r\n else {\r\n // Valid token, nothing to do.\r\n return tokenDetails.token;\r\n }\r\n}\r\n/**\r\n * This method deletes the token from the database, unsubscribes the token from FCM, and unregisters\r\n * the push subscription if it exists.\r\n */\r\nasync function deleteTokenInternal(messaging) {\r\n const tokenDetails = await dbGet(messaging.firebaseDependencies);\r\n if (tokenDetails) {\r\n await requestDeleteToken(messaging.firebaseDependencies, tokenDetails.token);\r\n await dbRemove(messaging.firebaseDependencies);\r\n }\r\n // Unsubscribe from the push subscription.\r\n const pushSubscription = await messaging.swRegistration.pushManager.getSubscription();\r\n if (pushSubscription) {\r\n return pushSubscription.unsubscribe();\r\n }\r\n // If there's no SW, consider it a success.\r\n return true;\r\n}\r\nasync function updateToken(messaging, tokenDetails) {\r\n try {\r\n const updatedToken = await requestUpdateToken(messaging.firebaseDependencies, tokenDetails);\r\n const updatedTokenDetails = Object.assign(Object.assign({}, tokenDetails), { token: updatedToken, createTime: Date.now() });\r\n await dbSet(messaging.firebaseDependencies, updatedTokenDetails);\r\n return updatedToken;\r\n }\r\n catch (e) {\r\n await deleteTokenInternal(messaging);\r\n throw e;\r\n }\r\n}\r\nasync function getNewToken(firebaseDependencies, subscriptionOptions) {\r\n const token = await requestGetToken(firebaseDependencies, subscriptionOptions);\r\n const tokenDetails = {\r\n token,\r\n createTime: Date.now(),\r\n subscriptionOptions\r\n };\r\n await dbSet(firebaseDependencies, tokenDetails);\r\n return tokenDetails.token;\r\n}\r\n/**\r\n * Gets a PushSubscription for the current user.\r\n */\r\nasync function getPushSubscription(swRegistration, vapidKey) {\r\n const subscription = await swRegistration.pushManager.getSubscription();\r\n if (subscription) {\r\n return subscription;\r\n }\r\n return swRegistration.pushManager.subscribe({\r\n userVisibleOnly: true,\r\n // Chrome <= 75 doesn't support base64-encoded VAPID key. For backward compatibility, VAPID key\r\n // submitted to pushManager#subscribe must be of type Uint8Array.\r\n applicationServerKey: base64ToArray(vapidKey)\r\n });\r\n}\r\n/**\r\n * Checks if the saved tokenDetails object matches the configuration provided.\r\n */\r\nfunction isTokenValid(dbOptions, currentOptions) {\r\n const isVapidKeyEqual = currentOptions.vapidKey === dbOptions.vapidKey;\r\n const isEndpointEqual = currentOptions.endpoint === dbOptions.endpoint;\r\n const isAuthEqual = currentOptions.auth === dbOptions.auth;\r\n const isP256dhEqual = currentOptions.p256dh === dbOptions.p256dh;\r\n return isVapidKeyEqual && isEndpointEqual && isAuthEqual && isP256dhEqual;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction externalizePayload(internalPayload) {\r\n const payload = {\r\n from: internalPayload.from,\r\n // eslint-disable-next-line camelcase\r\n collapseKey: internalPayload.collapse_key,\r\n // eslint-disable-next-line camelcase\r\n messageId: internalPayload.fcmMessageId\r\n };\r\n propagateNotificationPayload(payload, internalPayload);\r\n propagateDataPayload(payload, internalPayload);\r\n propagateFcmOptions(payload, internalPayload);\r\n return payload;\r\n}\r\nfunction propagateNotificationPayload(payload, messagePayloadInternal) {\r\n if (!messagePayloadInternal.notification) {\r\n return;\r\n }\r\n payload.notification = {};\r\n const title = messagePayloadInternal.notification.title;\r\n if (!!title) {\r\n payload.notification.title = title;\r\n }\r\n const body = messagePayloadInternal.notification.body;\r\n if (!!body) {\r\n payload.notification.body = body;\r\n }\r\n const image = messagePayloadInternal.notification.image;\r\n if (!!image) {\r\n payload.notification.image = image;\r\n }\r\n const icon = messagePayloadInternal.notification.icon;\r\n if (!!icon) {\r\n payload.notification.icon = icon;\r\n }\r\n}\r\nfunction propagateDataPayload(payload, messagePayloadInternal) {\r\n if (!messagePayloadInternal.data) {\r\n return;\r\n }\r\n payload.data = messagePayloadInternal.data;\r\n}\r\nfunction propagateFcmOptions(payload, messagePayloadInternal) {\r\n var _a, _b, _c, _d, _e;\r\n // fcmOptions.link value is written into notification.click_action. see more in b/232072111\r\n if (!messagePayloadInternal.fcmOptions &&\r\n !((_a = messagePayloadInternal.notification) === null || _a === void 0 ? void 0 : _a.click_action)) {\r\n return;\r\n }\r\n payload.fcmOptions = {};\r\n const link = (_c = (_b = messagePayloadInternal.fcmOptions) === null || _b === void 0 ? void 0 : _b.link) !== null && _c !== void 0 ? _c : (_d = messagePayloadInternal.notification) === null || _d === void 0 ? void 0 : _d.click_action;\r\n if (!!link) {\r\n payload.fcmOptions.link = link;\r\n }\r\n // eslint-disable-next-line camelcase\r\n const analyticsLabel = (_e = messagePayloadInternal.fcmOptions) === null || _e === void 0 ? void 0 : _e.analytics_label;\r\n if (!!analyticsLabel) {\r\n payload.fcmOptions.analyticsLabel = analyticsLabel;\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction isConsoleMessage(data) {\r\n // This message has a campaign ID, meaning it was sent using the Firebase Console.\r\n return typeof data === 'object' && !!data && CONSOLE_CAMPAIGN_ID in data;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n_mergeStrings('hts/frbslgigp.ogepscmv/ieo/eaylg', 'tp:/ieaeogn-agolai.o/1frlglgc/o');\r\n_mergeStrings('AzSCbw63g1R0nCw85jG8', 'Iaya3yLKwmgvh7cF0q4');\r\nfunction _mergeStrings(s1, s2) {\r\n const resultArray = [];\r\n for (let i = 0; i < s1.length; i++) {\r\n resultArray.push(s1.charAt(i));\r\n if (i < s2.length) {\r\n resultArray.push(s2.charAt(i));\r\n }\r\n }\r\n return resultArray.join('');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction extractAppConfig(app) {\r\n if (!app || !app.options) {\r\n throw getMissingValueError('App Configuration Object');\r\n }\r\n if (!app.name) {\r\n throw getMissingValueError('App Name');\r\n }\r\n // Required app config keys\r\n const configKeys = [\r\n 'projectId',\r\n 'apiKey',\r\n 'appId',\r\n 'messagingSenderId'\r\n ];\r\n const { options } = app;\r\n for (const keyName of configKeys) {\r\n if (!options[keyName]) {\r\n throw getMissingValueError(keyName);\r\n }\r\n }\r\n return {\r\n appName: app.name,\r\n projectId: options.projectId,\r\n apiKey: options.apiKey,\r\n appId: options.appId,\r\n senderId: options.messagingSenderId\r\n };\r\n}\r\nfunction getMissingValueError(valueName) {\r\n return ERROR_FACTORY.create(\"missing-app-config-values\" /* ErrorCode.MISSING_APP_CONFIG_VALUES */, {\r\n valueName\r\n });\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nclass MessagingService {\r\n constructor(app, installations, analyticsProvider) {\r\n // logging is only done with end user consent. Default to false.\r\n this.deliveryMetricsExportedToBigQueryEnabled = false;\r\n this.onBackgroundMessageHandler = null;\r\n this.onMessageHandler = null;\r\n this.logEvents = [];\r\n this.isLogServiceStarted = false;\r\n const appConfig = extractAppConfig(app);\r\n this.firebaseDependencies = {\r\n app,\r\n appConfig,\r\n installations,\r\n analyticsProvider\r\n };\r\n }\r\n _delete() {\r\n return Promise.resolve();\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function registerDefaultSw(messaging) {\r\n try {\r\n messaging.swRegistration = await navigator.serviceWorker.register(DEFAULT_SW_PATH, {\r\n scope: DEFAULT_SW_SCOPE\r\n });\r\n // The timing when browser updates sw when sw has an update is unreliable from experiment. It\r\n // leads to version conflict when the SDK upgrades to a newer version in the main page, but sw\r\n // is stuck with the old version. For example,\r\n // https://github.com/firebase/firebase-js-sdk/issues/2590 The following line reliably updates\r\n // sw if there was an update.\r\n messaging.swRegistration.update().catch(() => {\r\n /* it is non blocking and we don't care if it failed */\r\n });\r\n }\r\n catch (e) {\r\n throw ERROR_FACTORY.create(\"failed-service-worker-registration\" /* ErrorCode.FAILED_DEFAULT_REGISTRATION */, {\r\n browserErrorMessage: e === null || e === void 0 ? void 0 : e.message\r\n });\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function updateSwReg(messaging, swRegistration) {\r\n if (!swRegistration && !messaging.swRegistration) {\r\n await registerDefaultSw(messaging);\r\n }\r\n if (!swRegistration && !!messaging.swRegistration) {\r\n return;\r\n }\r\n if (!(swRegistration instanceof ServiceWorkerRegistration)) {\r\n throw ERROR_FACTORY.create(\"invalid-sw-registration\" /* ErrorCode.INVALID_SW_REGISTRATION */);\r\n }\r\n messaging.swRegistration = swRegistration;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function updateVapidKey(messaging, vapidKey) {\r\n if (!!vapidKey) {\r\n messaging.vapidKey = vapidKey;\r\n }\r\n else if (!messaging.vapidKey) {\r\n messaging.vapidKey = DEFAULT_VAPID_KEY;\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function getToken$1(messaging, options) {\r\n if (!navigator) {\r\n throw ERROR_FACTORY.create(\"only-available-in-window\" /* ErrorCode.AVAILABLE_IN_WINDOW */);\r\n }\r\n if (Notification.permission === 'default') {\r\n await Notification.requestPermission();\r\n }\r\n if (Notification.permission !== 'granted') {\r\n throw ERROR_FACTORY.create(\"permission-blocked\" /* ErrorCode.PERMISSION_BLOCKED */);\r\n }\r\n await updateVapidKey(messaging, options === null || options === void 0 ? void 0 : options.vapidKey);\r\n await updateSwReg(messaging, options === null || options === void 0 ? void 0 : options.serviceWorkerRegistration);\r\n return getTokenInternal(messaging);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function logToScion(messaging, messageType, data) {\r\n const eventType = getEventType(messageType);\r\n const analytics = await messaging.firebaseDependencies.analyticsProvider.get();\r\n analytics.logEvent(eventType, {\r\n /* eslint-disable camelcase */\r\n message_id: data[CONSOLE_CAMPAIGN_ID],\r\n message_name: data[CONSOLE_CAMPAIGN_NAME],\r\n message_time: data[CONSOLE_CAMPAIGN_TIME],\r\n message_device_time: Math.floor(Date.now() / 1000)\r\n /* eslint-enable camelcase */\r\n });\r\n}\r\nfunction getEventType(messageType) {\r\n switch (messageType) {\r\n case MessageType.NOTIFICATION_CLICKED:\r\n return 'notification_open';\r\n case MessageType.PUSH_RECEIVED:\r\n return 'notification_foreground';\r\n default:\r\n throw new Error();\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function messageEventListener(messaging, event) {\r\n const internalPayload = event.data;\r\n if (!internalPayload.isFirebaseMessaging) {\r\n return;\r\n }\r\n if (messaging.onMessageHandler &&\r\n internalPayload.messageType === MessageType.PUSH_RECEIVED) {\r\n if (typeof messaging.onMessageHandler === 'function') {\r\n messaging.onMessageHandler(externalizePayload(internalPayload));\r\n }\r\n else {\r\n messaging.onMessageHandler.next(externalizePayload(internalPayload));\r\n }\r\n }\r\n // Log to Scion if applicable\r\n const dataPayload = internalPayload.data;\r\n if (isConsoleMessage(dataPayload) &&\r\n dataPayload[CONSOLE_CAMPAIGN_ANALYTICS_ENABLED] === '1') {\r\n await logToScion(messaging, internalPayload.messageType, dataPayload);\r\n }\r\n}\n\nconst name = \"@firebase/messaging\";\nconst version = \"0.12.1\";\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst WindowMessagingFactory = (container) => {\r\n const messaging = new MessagingService(container.getProvider('app').getImmediate(), container.getProvider('installations-internal').getImmediate(), container.getProvider('analytics-internal'));\r\n navigator.serviceWorker.addEventListener('message', e => messageEventListener(messaging, e));\r\n return messaging;\r\n};\r\nconst WindowMessagingInternalFactory = (container) => {\r\n const messaging = container\r\n .getProvider('messaging')\r\n .getImmediate();\r\n const messagingInternal = {\r\n getToken: (options) => getToken$1(messaging, options)\r\n };\r\n return messagingInternal;\r\n};\r\nfunction registerMessagingInWindow() {\r\n _registerComponent(new Component('messaging', WindowMessagingFactory, \"PUBLIC\" /* ComponentType.PUBLIC */));\r\n _registerComponent(new Component('messaging-internal', WindowMessagingInternalFactory, \"PRIVATE\" /* ComponentType.PRIVATE */));\r\n registerVersion(name, version);\r\n // BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\r\n registerVersion(name, version, 'esm2017');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Checks if all required APIs exist in the browser.\r\n * @returns a Promise that resolves to a boolean.\r\n *\r\n * @public\r\n */\r\nasync function isWindowSupported() {\r\n try {\r\n // This throws if open() is unsupported, so adding it to the conditional\r\n // statement below can cause an uncaught error.\r\n await validateIndexedDBOpenable();\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n // firebase-js-sdk/issues/2393 reveals that idb#open in Safari iframe and Firefox private browsing\r\n // might be prohibited to run. In these contexts, an error would be thrown during the messaging\r\n // instantiating phase, informing the developers to import/call isSupported for special handling.\r\n return (typeof window !== 'undefined' &&\r\n isIndexedDBAvailable() &&\r\n areCookiesEnabled() &&\r\n 'serviceWorker' in navigator &&\r\n 'PushManager' in window &&\r\n 'Notification' in window &&\r\n 'fetch' in window &&\r\n ServiceWorkerRegistration.prototype.hasOwnProperty('showNotification') &&\r\n PushSubscription.prototype.hasOwnProperty('getKey'));\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function deleteToken$1(messaging) {\r\n if (!navigator) {\r\n throw ERROR_FACTORY.create(\"only-available-in-window\" /* ErrorCode.AVAILABLE_IN_WINDOW */);\r\n }\r\n if (!messaging.swRegistration) {\r\n await registerDefaultSw(messaging);\r\n }\r\n return deleteTokenInternal(messaging);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction onMessage$1(messaging, nextOrObserver) {\r\n if (!navigator) {\r\n throw ERROR_FACTORY.create(\"only-available-in-window\" /* ErrorCode.AVAILABLE_IN_WINDOW */);\r\n }\r\n messaging.onMessageHandler = nextOrObserver;\r\n return () => {\r\n messaging.onMessageHandler = null;\r\n };\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Retrieves a Firebase Cloud Messaging instance.\r\n *\r\n * @returns The Firebase Cloud Messaging instance associated with the provided firebase app.\r\n *\r\n * @public\r\n */\r\nfunction getMessagingInWindow(app = getApp()) {\r\n // Conscious decision to make this async check non-blocking during the messaging instance\r\n // initialization phase for performance consideration. An error would be thrown latter for\r\n // developer's information. Developers can then choose to import and call `isSupported` for\r\n // special handling.\r\n isWindowSupported().then(isSupported => {\r\n // If `isWindowSupported()` resolved, but returned false.\r\n if (!isSupported) {\r\n throw ERROR_FACTORY.create(\"unsupported-browser\" /* ErrorCode.UNSUPPORTED_BROWSER */);\r\n }\r\n }, _ => {\r\n // If `isWindowSupported()` rejected.\r\n throw ERROR_FACTORY.create(\"indexed-db-unsupported\" /* ErrorCode.INDEXED_DB_UNSUPPORTED */);\r\n });\r\n return _getProvider(getModularInstance(app), 'messaging').getImmediate();\r\n}\r\n/**\r\n * Subscribes the {@link Messaging} instance to push notifications. Returns an Firebase Cloud\r\n * Messaging registration token that can be used to send push messages to that {@link Messaging}\r\n * instance.\r\n *\r\n * If a notification permission isn't already granted, this method asks the user for permission. The\r\n * returned promise rejects if the user does not allow the app to show notifications.\r\n *\r\n * @param messaging - The {@link Messaging} instance.\r\n * @param options - Provides an optional vapid key and an optinoal service worker registration\r\n *\r\n * @returns The promise resolves with an FCM registration token.\r\n *\r\n * @public\r\n */\r\nasync function getToken(messaging, options) {\r\n messaging = getModularInstance(messaging);\r\n return getToken$1(messaging, options);\r\n}\r\n/**\r\n * Deletes the registration token associated with this {@link Messaging} instance and unsubscribes\r\n * the {@link Messaging} instance from the push subscription.\r\n *\r\n * @param messaging - The {@link Messaging} instance.\r\n *\r\n * @returns The promise resolves when the token has been successfully deleted.\r\n *\r\n * @public\r\n */\r\nfunction deleteToken(messaging) {\r\n messaging = getModularInstance(messaging);\r\n return deleteToken$1(messaging);\r\n}\r\n/**\r\n * When a push message is received and the user is currently on a page for your origin, the\r\n * message is passed to the page and an `onMessage()` event is dispatched with the payload of\r\n * the push message.\r\n *\r\n *\r\n * @param messaging - The {@link Messaging} instance.\r\n * @param nextOrObserver - This function, or observer object with `next` defined,\r\n * is called when a message is received and the user is currently viewing your page.\r\n * @returns To stop listening for messages execute this returned function.\r\n *\r\n * @public\r\n */\r\nfunction onMessage(messaging, nextOrObserver) {\r\n messaging = getModularInstance(messaging);\r\n return onMessage$1(messaging, nextOrObserver);\r\n}\n\n/**\r\n * Firebase Cloud Messaging\r\n *\r\n * @packageDocumentation\r\n */\r\nregisterMessagingInWindow();\n\nexport { deleteToken, getMessagingInWindow as getMessaging, getToken, isWindowSupported as isSupported, onMessage };\n//# sourceMappingURL=index.esm2017.js.map\n","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nexport default class Alert extends React.PureComponent {\n render() {\n return (
);\n }\n};\n","// Context Menu: popup/dropdown menu.\nimport React from 'react';\nimport { injectIntl, defineMessages } from 'react-intl';\n\nimport { REM_SIZE } from '../config.js';\n\nconst messages = defineMessages({\n info: {\n id: 'menu_item_info',\n defaultMessage: 'Info',\n description: 'Show extended topic information'\n },\n clear_messages: {\n id: 'menu_item_clear_messages',\n defaultMessage: 'Clear messages',\n description: 'Delete all messages'\n },\n clear_for_all: {\n id: 'menu_item_clear_messages_for_all',\n defaultMessage: 'Clear for All',\n description: 'Delete all message(s) for all members'\n },\n delete: {\n id: 'menu_item_delete',\n defaultMessage: 'Delete',\n description: 'Delete selected messages'\n },\n delete_for_all: {\n id: 'menu_item_delete_for_all',\n defaultMessage: 'Delete for All',\n description: 'Delete selected message(s) for all members'\n },\n send_retry: {\n id: 'menu_item_send_retry',\n defaultMessage: 'Retry',\n description: 'Retry sending message'\n },\n mute: {\n id: 'menu_item_mute',\n defaultMessage: 'Mute',\n description: 'Turn off notifications'\n },\n unmute: {\n id: 'menu_item_unmute',\n defaultMessage: 'Unmute',\n description: 'Turn notifications on'\n },\n reply: {\n id: 'menu_item_reply',\n defaultMessage: 'Reply',\n description: 'Reply to message'\n },\n forward: {\n id: 'menu_item_forward',\n defaultMessage: 'Forward',\n description: 'Forward message'\n },\n edit: {\n id: 'menu_item_edit',\n defaultMessage: 'Edit',\n description: 'Edit message'\n },\n topic_delete: {\n id: 'menu_item_delete_topic',\n defaultMessage: 'Delete',\n description: 'Delete entire topic'\n },\n topic_delete_warning: {\n id: 'topic_delete_warning',\n defaultMessage: 'Are you sure you want to delete this conversation? It cannot be undone.',\n description: 'Alert warning when deleting entire topic'\n },\n delete_messages_warning: {\n id: 'delete_messages_warning',\n defaultMessage: 'Are you sure you want to delete all messages for everyone? It cannot be undone.',\n description: 'Alert dialog warning when hard-deleting all messages.'\n },\n unblock: {\n id: 'menu_item_unblock',\n defaultMessage: 'Unblock',\n description: 'Unblock topic or user'\n },\n // Generic string suitable for either topic or user.\n block: {\n id: 'menu_item_block',\n defaultMessage: 'Block',\n description: 'Block topic or user'\n },\n topic_block_warning: {\n id: 'topic_block_warning',\n defaultMessage: 'Are you sure you want to block this conversation?',\n description: 'Alert warning when blocking a topic.'\n },\n member_delete: {\n id: 'menu_item_member_delete',\n defaultMessage: 'Remove',\n description: 'Remove user from topic'\n },\n archive: {\n id: 'menu_item_archive_topic',\n defaultMessage: 'Archive',\n description: 'Move topic from the list of active chats to archive'\n },\n unarchive: {\n id: 'menu_item_restore_topic',\n defaultMessage: 'Restore',\n description: 'Restore topic from archive'\n },\n edit_permissions: {\n id: 'menu_item_edit_permissions',\n defaultMessage: 'Edit permissions',\n description: 'Menu item [Edit permissions]'\n },\n clear_messages_warning: {\n id: 'clear_messages_warning',\n defaultMessage: 'Are you sure you want to clear all messages? It cannot be undone.',\n description: 'Alert dialog warning when deleting all messages.'\n },\n});\n\nclass ContextMenu extends React.Component {\n constructor(props) {\n super(props);\n\n this.selfRef = React.createRef();\n\n const {formatMessage} = props.intl;\n\n this.handlePageClick = this.handlePageClick.bind(this);\n this.handleEscapeKey = this.handleEscapeKey.bind(this);\n this.handleClick = this.handleClick.bind(this);\n\n // Preconfigured menu items.\n this.MenuItems = {\n 'topic_info': {\n id: 'topic_info',\n title: formatMessage(messages.info),\n handler: null\n },\n 'messages_clear': {\n id: 'messages_clear',\n title: formatMessage(messages.clear_messages),\n handler: (params, errorHandler) => {\n return props.onShowAlert(\n formatMessage(messages.clear_messages), // title\n formatMessage(messages.clear_messages_warning), // content\n (_ => { this.deleteMessages(true, false, params, errorHandler); }), // onConfirm\n null, // \"OK\"\n true, // Show Reject button\n null // \"Cancel\"\n );\n }\n },\n 'messages_clear_hard': {\n id: 'messages_clear_hard',\n title: formatMessage(messages.clear_for_all),\n handler: (params, errorHandler) => {\n return props.onShowAlert(\n formatMessage(messages.clear_for_all), // title\n formatMessage(messages.delete_messages_warning), // content\n (_ => { return this.deleteMessages(true, true, params, errorHandler); }),\n null, // \"OK\"\n true, // Show Reject button\n null // \"Cancel\"\n );\n }\n },\n 'message_delete': {\n id: 'message_delete',\n title: formatMessage(messages.delete),\n handler: (params, errorHandler) => {\n return this.deleteMessages(false, false, params, errorHandler);\n }\n },\n 'message_delete_hard': {\n id: 'message_delete_hard',\n title: formatMessage(messages.delete_for_all),\n handler: (params, errorHandler) => {\n return this.deleteMessages(false, true, params, errorHandler);\n }\n },\n 'menu_item_send_retry': {\n id: 'menu_item_send_retry',\n title: formatMessage(messages.send_retry),\n handler: (params, errorHandler) => {\n return this.retryMessage(params, errorHandler);\n }\n },\n 'menu_item_reply': {\n id: 'menu_item_reply',\n title: formatMessage(messages.reply),\n handler: (params, errorHandler) => {\n return this.replyToMessage(params, errorHandler);\n }\n },\n 'menu_item_forward': {\n id: 'menu_item_forward',\n title: formatMessage(messages.forward),\n handler: _ => {} /* the action is taken directly in tinode-web */\n },\n 'menu_item_edit': {\n id: 'menu_item_edit',\n title: formatMessage(messages.edit),\n handler: (params, errorHandler) => {\n return this.editMessage(params, errorHandler);\n }\n },\n 'topic_unmute': {\n id: 'topic_unmute',\n title: formatMessage(messages.unmute),\n handler: this.topicPermissionSetter.bind(this, '+P')\n },\n 'topic_mute': {\n id: 'topic_mute',\n title: formatMessage(messages.mute),\n handler: this.topicPermissionSetter.bind(this, '-P')\n },\n 'topic_unblock': {\n id: 'topic_unblock',\n title: formatMessage(messages.unblock),\n handler: this.topicPermissionSetter.bind(this, '+JP')\n },\n 'topic_block': {\n id: 'topic_block',\n title: formatMessage(messages.block),\n handler: (params, errorHandler) => {\n return props.onShowAlert(\n formatMessage(messages.block), // title\n formatMessage(messages.topic_block_warning), // content\n (_ => this.topicPermissionSetter('-JP', params, errorHandler).then(ctrl => {\n this.props.onTopicRemoved(params.topicName);\n return ctrl;\n })),\n null, // \"OK\"\n true, // Show Reject button\n null // \"Cancel\"\n );\n }\n },\n 'topic_delete': {\n id: 'topic_delete',\n title: formatMessage(messages.topic_delete),\n handler: (params, errorHandler) => {\n return props.onShowAlert(\n formatMessage(messages.topic_delete), // title\n formatMessage(messages.topic_delete_warning), // content\n (_ => {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic) {\n console.warn(\"Topic not found: \", params.topicName);\n return;\n }\n return topic.delTopic(true).catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }),\n null, // \"OK\"\n true, // Show Reject button\n null // \"Cancel\"\n );\n }\n },\n 'topic_archive': {\n id: 'topic_archive',\n title: formatMessage(messages.archive),\n handler: (params, errorHandler) => {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic) {\n console.warn(\"Topic not found: \", params.topicName);\n return;\n }\n return topic.archive(true).catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }\n },\n 'topic_restore': {\n id: 'topic_restore',\n title: formatMessage(messages.unarchive),\n handler: (params, errorHandler) => {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic) {\n console.warn(\"Topic not found: \", params.topicName);\n return;\n }\n return topic.archive(false).catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }\n },\n // menu_item_edit_permissions is defined elsewhere.\n 'permissions': {\n id: 'permissions',\n title: formatMessage(messages.edit_permissions),\n handler: null\n },\n 'member_delete': {\n id: 'member_delete',\n title: formatMessage(messages.member_delete),\n handler: (params, errorHandler) => {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic || !params.user) {\n console.warn(\"Topic or user not found: '\" + params.topicName + \"', '\" + params.user + \"'\");\n return;\n }\n return topic.delSubscription(params.user).catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }\n },\n 'member_mute': {\n id: 'member_mute',\n title: formatMessage(messages.mute),\n handler: this.topicPermissionSetter.bind(this, '-P')\n },\n 'member_unmute': {\n id: 'member_unmute',\n title: formatMessage(messages.unmute),\n handler: this.topicPermissionSetter.bind(this, '+P')\n },\n 'member_block': {\n id: 'member_block',\n title: formatMessage(messages.block),\n handler: this.topicPermissionSetter.bind(this, '-JP')\n },\n 'member_unblock': {\n id: 'member_unblock',\n title: formatMessage(messages.unblock),\n handler: this.topicPermissionSetter.bind(this, '+JP')\n },\n };\n }\n\n componentDidMount() {\n document.addEventListener('mousedown', this.handlePageClick, false);\n document.addEventListener('keyup', this.handleEscapeKey, false);\n }\n\n componentWillUnmount() {\n document.removeEventListener('mousedown', this.handlePageClick, false);\n document.removeEventListener('keyup', this.handleEscapeKey, false);\n }\n\n handlePageClick(e) {\n if (this.selfRef.current.contains(e.target)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n this.props.hide();\n }\n\n handleEscapeKey(e) {\n if (e.keyCode === 27) {\n this.props.hide();\n }\n }\n\n handleClick(e) {\n e.preventDefault();\n e.stopPropagation();\n this.props.hide();\n let item = this.props.items[e.currentTarget.dataset.id];\n if (typeof item == 'string') {\n item = this.MenuItems[item];\n }\n\n if (!item) {\n console.error(\"Invalid menu item ID\", e.currentTarget.dataset.id);\n } else {\n this.props.onAction(\n item.id,\n item.handler(this.props.params, this.props.onError),\n this.props.params);\n }\n }\n\n // Menu Actions\n\n deleteMessages(all, hard, params, errorHandler) {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic) {\n console.warn(\"Topic not found: \", params.topicName);\n return;\n }\n\n // We don't know if the message is still pending (e.g. attachment is being uploaded),\n // so try cancelling first. No harm if we can't cancel.\n // The message can be cancelled if transmission to the server has not\n // started yet or if the message send has failed.\n if (!all && topic.cancelSend(params.seq)) {\n return;\n }\n\n const promise = all ?\n topic.delMessagesAll(hard) :\n params.replace > 0 ?\n topic.delMessagesEdits(params.replace, hard) :\n topic.delMessagesList([params.seq], hard);\n\n return promise.catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }\n\n // Retries sending failed message.\n retryMessage(params, errorHandler) {\n const topic = this.props.tinode.getTopic(params.topicName);\n // Remove the existing message entry.\n if (!topic || !topic.flushMessage(params.seq)) {\n return;\n }\n const msg = topic.createMessage(params.content, false);\n return topic.publishDraft(msg).catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }\n\n // Function is used by context menu to set permissions.\n topicPermissionSetter(mode, params, errorHandler) {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic) {\n console.warn(\"Topic not found\", params.topicName);\n return;\n }\n\n let result = topic.updateMode(params.user, mode);\n if (errorHandler) {\n result = result.catch(err => errorHandler(err.message, 'err'));\n }\n return result;\n }\n\n replyToMessage(params, errorHandler) {\n params.pickReply(params.seq, params.content, params.userFrom, params.userName, errorHandler);\n }\n\n editMessage(params, errorHandler) {\n params.editMessage(params.replace || params.seq, params.content, errorHandler);\n }\n\n render() {\n const menu = [];\n let count = 0;\n this.props.items.map((item) => {\n if (typeof item == 'string') {\n item = this.MenuItems[item];\n }\n if (item && item.title) {\n menu.push(\n item.title == '-' ?\n \n :\n
{item.title}
\n );\n }\n count++;\n });\n\n // Ensure that menu is inside the app-container.\n const hSize = 12 * REM_SIZE;\n const vSize = REM_SIZE * (0.7 + menu.length * 2.5);\n const left = (this.props.bounds.right - this.props.clickAt.x < hSize) ?\n (this.props.clickAt.x - this.props.bounds.left - hSize) :\n (this.props.clickAt.x - this.props.bounds.left);\n const top = (this.props.bounds.bottom - this.props.clickAt.y < vSize) ?\n (this.props.clickAt.y - this.props.bounds.top - vSize) :\n (this.props.clickAt.y - this.props.bounds.top);\n\n const position = {\n left: left + 'px',\n top: top + 'px'\n };\n\n return (\n
\n {menu}\n
\n );\n }\n}\n\nexport default injectIntl(ContextMenu);\n","import React from 'react';\n\nconst icon_mapping = {'muted': 'notifications_off', 'banned': 'block', 'staff': 'verified_user'};\n\n/* Contact's labels: [you], or icons [muted], [blocked] */\nexport default class ContactBadges extends React.PureComponent {\n render() {\n let badges = null;\n if (this.props.badges && this.props.badges.length > 0) {\n badges = [];\n this.props.badges.map((b) => {\n const color = (b.color ? ' ' + b.color : '');\n if (b.icon) {\n badges.push({icon_mapping[b.icon] || b.icon});\n } else {\n badges.push({b.name});\n }\n });\n return <>{badges}>;\n }\n return null;\n }\n};\n","// The counter of unread messages in the topic.\nimport React from 'react';\n\nexport default class UnreadBadge extends React.PureComponent {\n render() {\n return (this.props.count > 0 ?\n {this.props.count > 9 ? \"9+\" : this.props.count}\n : null);\n }\n};\n","// Chat message describing a video or voice call.\n\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { secondsToTime } from '../lib/strformat.js';\n\nexport default class CallMessage extends React.PureComponent {\n render() {\n const isCallDropped = ['declined', 'disconnected', 'missed'].includes(this.props.callState);\n const successClass = 'material-icons medium ' + (isCallDropped ? 'red' : 'green');\n const callIcon = this.props.incoming ?\n (isCallDropped ? 'call_missed' : 'call_received') :\n (isCallDropped ? 'call_missed_outgoing' : 'call_made');\n let duration;\n if (isCallDropped) {\n switch (this.props.callState) {\n case 'declined':\n duration = ;\n break;\n case 'missed':\n duration = this.props.incoming ?\n :\n ;\n break;\n default:\n duration = ;\n break;\n }\n } else {\n duration = {secondsToTime(this.props.duration / 1000)};\n }\n return
\n
call
\n
\n
{this.props.incoming ?\n :\n \n }
\n
{callIcon} {duration}
\n
\n
;\n }\n}\n","// The counter of unread messages in the topic.\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { secondsToTime } from '../lib/strformat.js';\n\n// Props:\n// incoming: true | false.\n// success: true | false.\nexport default class CallStatus extends React.PureComponent {\n render() {\n const isCallDropped = ['declined', 'disconnected', 'missed'].includes(this.props.callState);\n const icon2 = this.props.incoming ?\n (isCallDropped ? 'call_missed' : 'call_received') :\n (isCallDropped ? 'call_missed_outgoing' : 'call_made');\n let duration;\n if (isCallDropped) {\n switch (this.props.callState) {\n case 'declined':\n duration = ;\n break;\n case 'missed':\n duration = this.props.incoming ?\n :\n ;\n break;\n default:\n duration = ;\n break;\n }\n } else if (['accepted', 'started'].includes(this.props.callState) && !this.props.duration) {\n duration = \n } else {\n duration = {secondsToTime(this.props.duration / 1000)};\n }\n return (\n <>\n
\n call{icon2}\n
{duration}\n >\n );\n }\n};\n","// Element which shows static video preview:\n// an image with duration and a play button in the middle.\n\nimport React from 'react';\n\nimport { secondsToTime } from '../lib/strformat.js'\n\nexport default class InlineVideo extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.videoRef = React.createRef();\n\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick(e) {\n if (this.props.onClick) {\n // the click target has to be the image element.\n this.props.onClick(e);\n }\n }\n\n render() {\n const duration = secondsToTime(this.props['data-duration'] / 1000);\n const className = 'inline-video' + (this.props.onClick ? ' image-clickable' : '');\n return (\n
\n );\n }\n}\n","// Image view with progress bar and a cancel button.\nimport React from 'react';\n\nimport FileProgress from './file-progress.jsx';\n\nexport default class UploadingImage extends React.PureComponent {\n constructor(props) {\n super(props);\n }\n\n render() {\n return (\n
\n {React.createElement('img', this.props)}\n
\n \n
\n
\n );\n }\n};\n","import React from 'react';\nimport { defineMessages } from 'react-intl';\n\nimport { Drafty } from 'tinode-sdk';\n\nimport AudioPlayer from '../widgets/audio-player.jsx'\nimport CallMessage from '../widgets/call-message.jsx'\nimport CallStatus from '../widgets/call-status.jsx';\nimport InlineVideo from '../widgets/inline-video.jsx';\nimport LazyImage from '../widgets/lazy-image.jsx'\nimport UploadingImage from '../widgets/uploading-image.jsx'\n\nimport { BROKEN_IMAGE_SIZE, IMAGE_THUMBNAIL_DIM, NO_DIMENSIONS_VIDEO, REM_SIZE, VIDEO_THUMBNAIL_WIDTH } from '../config.js';\nimport { base64ToBlob, blobToBase64, fitImageSize, imageScaled } from './blob-helpers.js';\nimport { idToColorClass, secondsToTime, shortenFileName } from './strformat.js';\nimport { cancelablePromise, sanitizeUrlForMime } from './utils.js';\n\nconst messages = defineMessages({\n drafty_form: {\n id: 'drafty_form',\n defaultMessage: 'Form: ',\n description: 'Comment for form in Drafty'\n },\n drafty_attachment: {\n id: 'drafty_attachment',\n defaultMessage: 'Attachment',\n description: 'Comment for attachment in Drafty'\n },\n drafty_image: {\n id: 'drafty_image',\n defaultMessage: 'Picture',\n description: 'Comment for embedded images in Drafty'\n },\n drafty_video: {\n id: 'drafty_video',\n defaultMessage: 'Video recording',\n description: 'Comment for videos embedded in Drafty'\n },\n drafty_unknown: {\n id: 'drafty_unknown',\n defaultMessage: 'Unsupported',\n description: 'Unsupported entity in drafty'\n }\n});\n\n// The main Drafty formatter: converts Drafty elements into React classes. 'this' is set by the caller.\n// 'this' must contain:\n// viewportWidth:\n// authorizeURL:\n// onImagePreview:\n// onVideoPreview:\n// onFormButtonClick:\n// onQuoteClick:\nexport function fullFormatter(style, data, values, key, stack) {\n if (stack.includes('QQ')) {\n return quoteFormatter.call(this, style, data, values, key);\n }\n\n if (!style) {\n // Unformatted.\n return values;\n }\n\n let el = Drafty.tagName(style);\n let attr = Drafty.attrValue(style, data) || {};\n attr.key = key;\n switch (style) {\n case 'AU':\n // Show audio player.\n if (attr.src) {\n attr.src = this.authorizeURL(sanitizeUrlForMime(attr.src, 'audio'));\n attr.duration = data.duration > 0 ? (data.duration | 0) : undefined;\n attr.preview = data.preview;\n attr.loading = 'lazy';\n }\n el = AudioPlayer;\n // Audio element cannot have content.\n values = null;\n break;\n case 'BR':\n values = null;\n break;\n case 'EX':\n // Ignore.\n break;\n case 'HL':\n // Highlighted text. Assign class name.\n attr.className = 'highlight';\n break;\n case 'HD':\n el = null;\n values = null;\n break;\n case 'IM':\n // Additional processing for images\n el = handleImageData.call(this, el, data, attr);\n // Image element cannot have content.\n values = null;\n break;\n case 'BN':\n // Button\n attr.onClick = this.onFormButtonClick;\n let inner = React.Children.map(values, (child) => {\n return typeof child == 'string' ? child : undefined;\n });\n if (!inner || inner.length == 0) {\n inner = [attr.name]\n }\n // Get text which will be sent back when the button is clicked.\n attr['data-title'] = inner.join('');\n break;\n case 'MN':\n // Mention\n attr.className = 'mention'\n if (data) {\n attr.className += ' ' + idToColorClass(data.val, false, true);\n }\n break;\n case 'FM':\n // Form\n attr.className = 'bot-form';\n break;\n case 'RW':\n // Form element formatting is dependent on element content.\n break;\n case 'QQ':\n // Quote/citation.\n attr.className = 'reply-quote'\n attr.onClick = this.onQuoteClick;\n break;\n case 'VC':\n el = CallMessage;\n // Video call messages do not have content.\n values = null;\n if (data) {\n attr.callState = data.state;\n attr.incoming = data.incoming;\n attr.duration = data.duration;\n }\n break;\n case 'VD':\n // Additional processing for videos.\n el = handleVideoData.call(this, el, data, attr);\n // Video element cannot have content.\n values = null;\n break;\n default:\n if (!el) {\n // Unknown element.\n el = React.Fragment;\n attr = {key: key};\n // Generate comment for unknown element.\n let body = values;\n if (!Array.isArray(values) || !values.join('').trim()) {\n body = [{this.formatMessage(messages.drafty_unknown)}];\n }\n values = [extension, ' '].concat(body);\n }\n break;\n }\n if (!el) {\n return values;\n }\n return React.createElement(el, attr, values);\n}\n\n// Additional processing of image data.\nfunction handleImageData(el, data, attr) {\n if (!data) {\n attr.src = 'img/broken_image.png';\n attr.style = {\n width: IMAGE_THUMBNAIL_DIM + 'px',\n height: IMAGE_THUMBNAIL_DIM + 'px',\n };\n return el;\n }\n\n attr.className = 'inline-image';\n const dim = fitImageSize(data.width, data.height,\n this.viewportWidth > 0 ? Math.min(this.viewportWidth - REM_SIZE * 6.5, REM_SIZE * 34.5) :\n REM_SIZE * 34.5, REM_SIZE * 24, false) ||\n {dstWidth: BROKEN_IMAGE_SIZE, dstHeight: BROKEN_IMAGE_SIZE};\n attr.style = {\n width: dim.dstWidth + 'px',\n height: dim.dstHeight + 'px',\n // Looks like a Chrome bug: broken image does not respect 'width' and 'height'.\n minWidth: dim.dstWidth + 'px',\n minHeight: dim.dstHeight + 'px'\n };\n if (!Drafty.isProcessing(data)) {\n attr.src = this.authorizeURL(sanitizeUrlForMime(attr.src, 'image'));\n attr.alt = data.name;\n if (attr.src) {\n if (Math.max(data.width || 0, data.height || 0) > IMAGE_THUMBNAIL_DIM) {\n // Allow previews for large enough images.\n attr.onClick = this.onImagePreview;\n attr.className += ' image-clickable';\n }\n attr.loading = 'lazy';\n } else {\n attr.src = null;\n }\n } else {\n // Use custom element instead of .\n el = UploadingImage;\n }\n\n return el;\n}\n\n// Additional processing of image data.\nfunction handleVideoData(el, data, attr) {\n if (!data) {\n attr.src = 'img/broken_video.png';\n attr.style = {\n width: IMAGE_THUMBNAIL_DIM + 'px',\n height: IMAGE_THUMBNAIL_DIM + 'px',\n };\n return el;\n }\n attr.className = 'inline-image';\n const dim = fitImageSize(data.width, data.height,\n this.viewportWidth > 0 ? Math.min(this.viewportWidth - REM_SIZE * 6.5, REM_SIZE * 34.5) :\n REM_SIZE * 34.5, REM_SIZE * 24, false) ||\n {dstWidth: NO_DIMENSIONS_VIDEO, dstHeight: NO_DIMENSIONS_VIDEO};\n attr.style = {\n width: dim.dstWidth + 'px',\n height: dim.dstHeight + 'px',\n // Looks like a Chrome bug: broken image does not respect 'width' and 'height'.\n minWidth: dim.dstWidth + 'px',\n minHeight: dim.dstHeight + 'px'\n };\n if (!Drafty.isProcessing(data)) {\n attr.src = this.authorizeURL(sanitizeUrlForMime(attr.src, 'image'));\n attr.alt = data.name;\n if (data.ref || data.val) {\n attr.onClick = this.onVideoPreview;\n attr.loading = 'lazy';\n } else {\n attr.src = null;\n }\n el = InlineVideo;\n } else {\n // Use custom element instead of .\n el = UploadingImage;\n }\n\n return el;\n}\n\n// Converts Drafty object into a one-line preview. 'this' is set by the caller.\n// 'this' must contain:\n// formatMessage: this.props.intl.formatMessage\n// messages: formatjs messages defined with defineMessages.\nexport function previewFormatter(style, data, values, key) {\n if (!style) {\n // Unformatted.\n return values;\n }\n\n let el = Drafty.tagName(style);\n const attr = { key: key };\n switch (style) {\n case 'AU':\n // Voicemail as '[mic] 0:00'.\n el = React.Fragment;\n values = [mic, ' ', secondsToTime(data.duration/1000)];\n break;\n case 'BR':\n // Replace new line with a space.\n el = React.Fragment;\n values = [' '];\n break;\n case 'HL':\n // Make highlight less prominent in preview.\n attr.className = 'highlight preview';\n break;\n case 'LN':\n case 'MN':\n // Disable links in previews.\n el = 'span';\n break;\n case 'IM':\n // Replace image with '[icon] Image'.\n el = React.Fragment;\n values = [photo, ' ', this.formatMessage(messages.drafty_image)];\n break;\n case 'BN':\n el = 'span';\n attr.className = 'flat-button faux';\n break;\n case 'FM':\n el = React.Fragment;\n values = [dashboard,\n this.formatMessage(messages.drafty_form)].concat(' ', values || []);\n break;\n case 'RW':\n el = React.Fragment;\n break;\n case 'EX':\n if (data) {\n if (data.mime == 'application/json') {\n // Ignore JSON attachments: they are form response payloads.\n return null;\n }\n // Clear payload.\n delete data.val;\n delete data.ref;\n }\n el = React.Fragment;\n values = [attachment, ' ', this.formatMessage(messages.drafty_attachment)];\n break;\n case 'VC':\n el = CallStatus;\n if (data) {\n attr.callState = data.state;\n attr.incoming = data.incoming;\n attr.duration = data.duration;\n }\n values = null;\n break;\n case 'QQ':\n case 'HD':\n el = null;\n values = null;\n break;\n case 'VD':\n // Replace image with '[icon] Video'.\n el = React.Fragment;\n values = [play_circle_outline, ' ', this.formatMessage(messages.drafty_video)];\n break;\n default:\n if (!el) {\n // Unknown element.\n el = React.Fragment;\n values = [extension, ' ', this.formatMessage(messages.drafty_unknown)];\n }\n break;\n }\n if (!el) {\n return values;\n }\n return React.createElement(el, attr, values);\n};\n\n// Converts Drafty object into a quoted reply; 'this' is set by the caller.\nfunction inlineImageAttr(attr, data) {\n attr.style = {\n width: IMAGE_THUMBNAIL_DIM + 'px',\n height: IMAGE_THUMBNAIL_DIM + 'px',\n maxWidth: IMAGE_THUMBNAIL_DIM + 'px',\n maxHeight: IMAGE_THUMBNAIL_DIM + 'px',\n }\n attr.className = 'inline-image';\n attr.alt = this.formatMessage(messages.drafty_image);\n if (!data) {\n attr.src = 'img/broken_image.png';\n } else {\n attr.src = attr.src || 'img/broken_image.png';\n }\n attr.title = attr.alt;\n return attr;\n}\n\n// Converts Drafty object into a quoted reply; 'this' is set by the caller.\nfunction inlineVideoAttr(attr, data) {\n const dim = fitImageSize(data.width, data.height, VIDEO_THUMBNAIL_WIDTH, IMAGE_THUMBNAIL_DIM);\n attr.style = {\n width: dim.width + 'px',\n height: dim.height + 'px',\n maxWidth: VIDEO_THUMBNAIL_WIDTH + 'px',\n maxHeight: IMAGE_THUMBNAIL_DIM + 'px',\n }\n attr.className = 'inline-image';\n attr.alt = this.formatMessage(messages.drafty_video);\n attr.title = attr.alt;\n if (!data) {\n attr.src = 'img/broken_video.png';\n } else {\n attr.src = attr.src || 'img/broken_video.png';\n }\n return attr;\n}\n\n// Displays a portion of Drafty within 'QQ' quotes. 'this' is set by the caller.\n// 'this' must contain:\n// formatMessage: this.props.intl.formatMessage\n// messages: formatjs messages defined with defineMessages.\n// authorizeURL: this.props.tinode.authorizeURL\n// onQuoteClick: this.handleQuoteClick (optional)\nfunction quoteFormatter(style, data, values, key) {\n if (['BR', 'EX', 'IM', 'MN', 'VD'].includes(style)) {\n let el = Drafty.tagName(style);\n let attr = Drafty.attrValue(style, data) || {};\n attr.key = key;\n switch(style) {\n case 'BR':\n values = null;\n break;\n case 'IM':\n attr = inlineImageAttr.call(this, attr, data);\n values = [React.createElement('img', attr, null), ' ', attr.alt];\n el = React.Fragment;\n // Fragment attributes.\n attr = {key: key};\n break;\n case 'VD':\n attr = inlineVideoAttr.call(this, attr, data);\n values = [React.createElement('img', attr, null), ' ', attr.alt];\n el = React.Fragment;\n // Fragment attributes.\n attr = {key: key};\n break;\n case 'MN':\n el = 'span';\n attr.className = 'mention'\n if (data) {\n attr.className += ' ' + idToColorClass(data.val, false, true);\n }\n break;\n case 'EX':\n let fname;\n if (data) {\n if (data.mime == 'application/json') {\n // Ignore JSON attachments: they are form response payloads.\n return null;\n }\n fname = data.name;\n // Clear payload.\n delete data.val;\n delete data.ref;\n }\n el = React.Fragment;\n values = [attachment,\n shortenFileName(fname, 16) || this.formatMessage(messages.drafty_attachment)];\n break;\n }\n return React.createElement(el, attr, values);\n }\n return previewFormatter.call(this, style, data, values, key);\n}\n\n// Create image thumbnail suitable for inclusion in a quote.\nfunction quoteImageOrVideo(data, isVideo) {\n let promise;\n let bits, ref, mime;\n if (isVideo) {\n bits = data.preview;\n mime = data.premime || 'image/jpeg';\n ref = data.preref;\n } else {\n bits = data.val;\n mime = data.mime;\n ref = data.ref;\n }\n // Get the blob from the image data.\n if (bits) {\n const blob = base64ToBlob(bits, mime);\n if (!blob) {\n throw new Error(\"Invalid image\");\n }\n promise = Promise.resolve(blob);\n } else if (ref) {\n promise = fetch(this.authorizeURL(sanitizeUrlForMime(ref, 'image')))\n .then(evt => {\n if (evt.ok) {\n return evt.blob();\n } else {\n throw new Error(`Image fetch unsuccessful: ${evt.status} ${evt.statusText}`);\n }\n });\n } else {\n throw new Error(\"Missing image data\");\n }\n\n // Scale the blob.\n return promise\n .then(blob => {\n // If it's an image, cut the square from the center of the image and shrink it.\n // If it's a video, allow it to be rectantular.\n return imageScaled(blob, isVideo ? VIDEO_THUMBNAIL_WIDTH : IMAGE_THUMBNAIL_DIM, IMAGE_THUMBNAIL_DIM, -1, !isVideo)\n }).then(scaled => {\n if (isVideo) {\n data.premime = scaled.mime;\n } else {\n data.mime = scaled.mime;\n }\n data.size = scaled.blob.size;\n data.width = scaled.width;\n data.height = scaled.height;\n delete data.ref;\n delete data.preref;\n // Keeping the original file name, if provided: ex.data.name;\n\n data.src = URL.createObjectURL(scaled.blob);\n return blobToBase64(scaled.blob);\n }).then(b64 => {\n if (isVideo) {\n data.preview = b64.bits;\n } else {\n data.val = b64.bits;\n }\n return data;\n }).catch(err => {\n delete data.val;\n delete data.preview;\n delete data.src;\n data.width = IMAGE_THUMBNAIL_DIM;\n data.height = IMAGE_THUMBNAIL_DIM;\n // Rethrow.\n throw err;\n });\n}\n\n// Create a preview of a reply.\nexport function replyFormatter(style, data, values, key, stack) {\n if (style == 'IM' || style == 'VD') {\n const isImage = style == 'IM';\n const attr = isImage ? inlineImageAttr.call(this, {key: key}, data) :\n inlineVideoAttr.call(this, {key: key}, data);\n\n let loadedPromise;\n try {\n loadedPromise = cancelablePromise(quoteImageOrVideo.call(this, data, style == 'VD'));\n } catch (error) {\n console.warn(\"Failed to quote image:\", error.message);\n loadedPromise = cancelablePromise(error);\n }\n attr.whenDone = loadedPromise;\n values = [React.createElement(LazyImage, attr, null), ' ', attr.alt];\n return React.createElement(React.Fragment, {key: key}, values);\n } else if (style == 'QQ') {\n if (stack.includes('QQ')) {\n // Quote inside quote when forwarding a message.\n return React.createElement('span', {key: key},\n [format_quote, ' ']);\n }\n\n const attr = Drafty.attrValue('QQ', data) || {};\n attr.key = key;\n attr.className = 'reply-quote'\n return React.createElement(Drafty.tagName('QQ'), attr, values);\n }\n return quoteFormatter.call(this, style, data, values, key);\n}\n","// A single topic or user.\nimport React from 'react';\nimport { FormattedMessage, injectIntl } from 'react-intl';\n\nimport ContactBadges from './contact-badges.jsx';\nimport LetterTile from './letter-tile.jsx';\nimport UnreadBadge from './unread-badge.jsx';\n\nimport { Drafty } from 'tinode-sdk';\n\nimport { previewFormatter } from '../lib/formatters.js';\nimport { deliveryMarker } from '../lib/utils.js';\n\nclass Contact extends React.Component {\n constructor(props) {\n super(props);\n\n this.handleClick = this.handleClick.bind(this);\n this.handleContextClick = this.handleContextClick.bind(this);\n }\n\n handleClick(e) {\n e.preventDefault();\n e.stopPropagation();\n if (this.props.onSelected) {\n // Index this.props.index is used by GroupManager.\n this.props.onSelected(this.props.item, this.props.index);\n }\n }\n\n handleContextClick(e) {\n e.preventDefault();\n e.stopPropagation();\n this.props.showContextMenu({ topicName: this.props.item, y: e.pageY, x: e.pageX });\n }\n\n render() {\n let title = this.props.title;\n if (!title) {\n title = ;\n } else if (title.length > 30) {\n // FIXME: this is probably wrong for RTL languages.\n title = title.substring(0, 28) + '…';\n }\n const online = this.props.now ? 'online' : 'offline';\n const avatar = this.props.avatar ? this.props.avatar : true;\n const badges = this.props.badges ? this.props.badges.slice() : [];\n const icon_badges = [];\n if (this.props.isVerified) {\n icon_badges.push({icon: 'verified', color: 'verified-color'});\n }\n if (this.props.isStaff) {\n icon_badges.push({icon: 'staff', color: 'staff-color'});\n }\n if (this.props.isDangerous) {\n icon_badges.push({icon: 'dangerous', color: 'danger-color'});\n }\n if (this.props.acs) {\n if (this.props.showMode) {\n badges.push({name: this.props.acs.getMode(), key: 'mode'});\n }\n if (this.props.acs.isMuted()) {\n icon_badges.push({icon: 'muted'});\n }\n if (!this.props.acs.isJoiner()) {\n icon_badges.push({icon: 'banned'});\n }\n }\n\n // The this.props.preview contains alreay shortened Drafty or string.\n let preview;\n if (typeof this.props.preview == 'string') {\n preview = this.props.preview;\n } else if (Drafty.isValid(this.props.preview)) {\n preview = React.createElement(React.Fragment, null, Drafty.format(this.props.preview, previewFormatter,\n {formatMessage: this.props.intl.formatMessage, previewIsResponse: this.props.previewIsResponse}));\n } else if (this.props.preview) {\n preview =\n <>warning_amber\n \n >;\n }\n\n const icon = deliveryMarker(this.props.received);\n const marker = icon ? {icon.name} : null;\n const titleClass = 'contact-title' + (this.props.deleted ? ' deleted' : '');\n\n return (\n
\n );\n }\n};\n\nexport default injectIntl(Contact);\n","// A panel included into a list of contacts with an action text.\nimport React from 'react';\nimport { injectIntl } from 'react-intl';\n\nclass ContactAction extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick(e) {\n e.preventDefault();\n e.stopPropagation();\n this.props.onAction(this.props.action);\n }\n\n render() {\n const {formatMessage} = this.props.intl;\n return (\n
\n \n );\n }\n};\n\nexport default injectIntl(SendMessage);\n","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport SendMessage from '../widgets/send-message.jsx';\n\nimport { bytesToHumanSize, shortenFileName } from '../lib/strformat.js';\n\n// Get material icon name from mime type.\nfunction iconFromMime(mime) {\n // If more icons become available in material icons, add them to this mime-to-icon mapping.\n const mimeToIcon = {default: 'insert_drive_file', image: 'image', text: 'description', video: 'theaters'};\n\n return mimeToIcon[mime] || mimeToIcon[(mime || '').split('/')[0]] || mimeToIcon['default'];\n}\n\nexport default class DocPreview extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.handleSendDoc = this.handleSendDoc.bind(this);\n }\n\n handleSendDoc(caption) {\n this.props.onClose();\n this.props.onSendMessage(this.props.content.file);\n }\n\n render() {\n if (!this.props.content) {\n return null;\n }\n return (\n
\n );\n }\n};\n","// GroupSubs: a list of group subscribers currently online.\n// Show in the topic title bar\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { MAX_ONLINE_IN_TOPIC } from '../config.js'\n\nimport LetterTile from './letter-tile.jsx';\nimport { makeImageUrl } from '../lib/blob-helpers.js';\n\nexport default class GroupSubs extends React.Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n const usersOnline = [];\n const totalCount = (this.props.subscribers || []).length;\n const countToShow = Math.min(MAX_ONLINE_IN_TOPIC, totalCount);\n\n (this.props.subscribers || []).some((sub) => {\n usersOnline.push(\n
\n );\n }\n};\n","// A single topic or user.\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nexport default class Invitation extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.handleButtonAction = this.handleButtonAction.bind(this);\n }\n\n handleButtonAction(evt, data) {\n evt.preventDefault();\n this.props.onAction(data);\n }\n\n render() {\n return (\n
\n
\n \n
\n
\n \n \n \n
\n
\n );\n }\n};\n","/* This is just a static page to display when no conversation is selected. */\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { Tinode } from 'tinode-sdk';\n\nimport { APP_NAME } from '../config.js';\n\nexport default class LogoView extends React.PureComponent {\n render() {\n const version = APP_NAME + ' (' + Tinode.getLibrary() + ')';\n return (\n
\n );\n }\n};\n","// Message bubble with non-payload content, such as an indicator of deleted content or a date stamp.\n\nimport React from 'react';\n\nexport default class MetaMessage extends React.PureComponent {\n constructor(props) {\n super(props);\n }\n\n render() {\n let content = null;\n let bubbleClass = 'bubble';\n if (this.props.date) {\n // A date badge.\n content = <>{this.props.date}>\n bubbleClass += ' date';\n }\n\n if (!content) {\n return <>{null}>\n }\n\n return (\n
\n );\n }\n};\n\nexport default injectIntl(TinodeWeb);\n","// Put all packages together.\n// Used to generate umd/index.prod.js\n\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\n\nimport { IntlProvider } from 'react-intl';\n\nimport TinodeWeb from './views/tinode-web.jsx';\nimport HashNavigation from './lib/navigation.js';\n\n// Insert google analytics script and tag if configured.\nif (FIREBASE_INIT && FIREBASE_INIT.measurementId) {\n const head = document.getElementsByTagName('head')[0];\n let script = document.createElement('script');\n script.src = 'https://www.googletagmanager.com/gtag/js?id=' + FIREBASE_INIT.measurementId;\n script.async = true;\n head.prepend(script);\n window.dataLayer = window.dataLayer || [];\n function gtag(){dataLayer.push(arguments);}\n gtag('js', new Date());\n gtag('config', FIREBASE_INIT.measurementId);\n}\n\n// Allow loading translation strings for just one language.\nconst messageLoader = {\n 'de': _ => import('./i18n.min/de.json'),\n 'en': _ => import('./i18n.min/en.json'),\n 'es': _ => import('./i18n.min/es.json'),\n 'fr': _ => import('./i18n.min/fr.json'),\n 'ko': _ => import('./i18n.min/ko.json'),\n 'ro': _ => import('./i18n.min/ro.json'),\n 'ru': _ => import('./i18n.min/ru.json'),\n 'zh': _ => import('./i18n.min/zh.json'),\n 'zh-TW': _ => import('./i18n.min/zh-TW.json')\n};\n\n// Detect human language to use in the UI:\n// Check parameters from URL hash #?hl=ru, then browser, then use 'en' as a fallback.\nconst { params } = HashNavigation.parseUrlHash(window.location.hash);\nconst language = (params && params.hl) ||\n (navigator.languages && navigator.languages[0]) ||\n navigator.language ||\n navigator.userLanguage ||\n 'en';\n\n// Make sure names like 'en_GB' and 'en-GB' consistently use '-'.\nconst normalized = language.replace('_', '-');\n// Get the base language 'en' from a more specific 'en-US' as a partial fallback.\nconst baseLanguage = normalized.split('-')[0].toLowerCase();\n\n// Try the full locale first, then the locale without the region code, fallback to 'en'.\nconst htmlLang = messageLoader[normalized] ? language : messageLoader[baseLanguage] ? baseLanguage : 'en';\n\n// Set lang attribute of the HTML element: \ndocument.getElementsByTagName('html')[0].setAttribute('lang', htmlLang);\n\n// Render the app.\nconst root = createRoot(document.getElementById('mountPoint'));\nmessageLoader[htmlLang]().then(messages =>\n root.render(\n \n \n \n));\n"],"names":["leafPrototypes","getProto","inProgress","dataWebpackPrefix","APP_NAME","PACKAGE_VERSION","API_KEY","KNOWN_HOSTS","hosted","local","DEFAULT_HOST","LOGGING_ENABLED","KEYPRESS_DELAY","READ_DELAY","MIN_TAG_LENGTH","MAX_TAG_LENGTH","MAX_TAG_COUNT","DEFAULT_P2P_ACCESS_MODE","NO_ACCESS_MODE","MEDIA_BREAKPOINT","REM_SIZE","AVATAR_SIZE","MAX_AVATAR_BYTES","BROKEN_IMAGE_SIZE","NO_DIMENSIONS_VIDEO","MESSAGES_PAGE","MAX_INBAND_ATTACHMENT_SIZE","MAX_EXTERN_ATTACHMENT_SIZE","MAX_IMAGE_DIM","IMAGE_PREVIEW_DIM","VIDEO_PREVIEW_DIM","IMAGE_THUMBNAIL_DIM","VIDEO_THUMBNAIL_WIDTH","MAX_ONLINE_IN_TOPIC","MAX_TITLE_LENGTH","MAX_TOPIC_DESCRIPTION_LENGTH","MAX_PEER_TITLE_LENGTH","MESSAGE_PREVIEW_LENGTH","QUOTED_REPLY_LENGTH","FORWARDED_PREVIEW_LENGTH","EDIT_PREVIEW_LENGTH","MIN_DURATION","MAX_DURATION","LINK_CONTACT_US","LINK_PRIVACY_POLICY","LINK_TERMS_OF_SERVICE","SUPPORTED_IMAGE_FORMATS","MIME_EXTENSIONS","makeImageUrl","photo","ref","data","type","startsWith","fitImageSize","width","height","maxWidth","maxHeight","forceSquare","Math","min","scale","size","dstWidth","dstHeight","srcWidth","srcHeight","xoffset","yoffset","fileNameForMime","fname","mime","idx","indexOf","ext","at","lastIndexOf","substring","imageScaled","fileOrBlob","maxSize","Promise","resolve","reject","img","Image","crossOrigin","onerror","err","Error","onload","async","URL","revokeObjectURL","src","dim","canvas","document","createElement","ctx","getContext","imageSmoothingEnabled","drawImage","includes","blob","toBlob","length","clearRect","name","createObjectURL","imageCrop","objURL","left","top","_","fileToBase64","file","reader","FileReader","error","bits","result","split","readAsDataURL","blobToBase64","filePasted","event","onImageSuccess","onAttachmentSuccess","onError","items","clipboardData","originalEvent","i","item","kind","getAsFile","console","base64ReEncode","str","replace","btoa","atob","base64ToBlob","bin","buf","ArrayBuffer","arr","Uint8Array","charCodeAt","Blob","intArrayToBase64","Array","isArray","forEach","b","String","fromCharCode","window","base64ToIntArray","b64","c","push","LocalStorageUtil","static","key","value","localStorage","setItem","JSON","stringify","getItem","parse","oldVal","this","getObject","setObject","Object","assign","removeItem","HashNavigation","hash","parts","params","path","arg","eq","slice","decodeURIComponent","url","location","join","args","hasOwnProperty","encodeURIComponent","parsed","parseUrlHash","composeUrlHash","sidepanel","infopanel","info","topic","shortDateFormat","then","locale","navigator","userLanguage","language","now","Date","getFullYear","getMonth","getDate","toLocaleTimeString","hour12","hour","minute","toLocaleDateString","month","day","year","relativeDateFormat","diff","floor","getTime","getTimezoneOffset","abs","Intl","RelativeTimeFormat","numeric","format","DateTimeFormat","secondsToTime","seconds","fixedMin","hours","sec","bytesToHumanSize","bytes","sizes","bucket","log2","count","pow","round","toFixed","shortenFileName","filename","maxLength","idToColorClass","id","light","fg","userId","stringToColorHash","flagEmoji","countryCode","codePoints","toUpperCase","map","char","fromCodePoint","updateFavicon","oldIcon","getElementById","head","getElementsByTagName","newIcon","rel","href","removeChild","appendChild","title","theCard","fn","imageUrl","imageMimeType","note","card","trim","Tinode","mimeType","matches","exec","arrayEqual","a","sort","l","isUrlRelative","test","sanitizeUrl","allowedSchemes","schemes","RegExp","sanitizeUrlForMime","mimeMajor","sanitizedUrl","deliveryMarker","received","color","cancelablePromise","promise","hasCanceled","isCanceled","cancel","clipStr","BAR_COLOR_DARK","messages","defineMessages","icon_title_play","defaultMessage","AudioPlayer","React","constructor","props","super","preview","state","canPlay","playing","currentTime","duration","longMin","initAudio","bind","initCanvas","resampleBars","visualize","handlePlay","handleSeek","handleError","audioPlayer","viewBuffer","canvasRef","componentDidMount","componentWillUnmount","oncanplay","ontimeupdate","onended","pause","componentDidUpdate","prevProps","setState","Audio","current","offsetWidth","offsetHeight","canvasContext","lineCap","effectiveWidth","lineWidth","drawFrame","requestAnimationFrame","thumbAt","max","LINE_WIDTH","beginPath","strokeStyle","x","y","stroke","moveTo","lineTo","arc","PI","fillStyle","fill","original","dstCount","apply","factor","amps","maxAmp","lo","hi","amp","j","e","preventDefault","play","target","rect","getBoundingClientRect","offset","clientX","render","playClass","short","onClick","intl","formatMessage","className","injectIntl","Cropper","panX","panY","originX","originY","zoom","minZoom","maxZoom","overlay","cutout","boundingBox","imageWidth","imageHeight","mouseX","mouseY","prevDistance","cutoutRect","bBoxRect","initScaling","onZoom","handleZoom","mouseDown","mouseUp","mouseMove","mouseTouch","positionAll","translate","addEventListener","passive","removeEventListener","onChange","currPan","delta","nextDiff","imgRect","imgLeft","imgRight","coLeft","coRight","imgTop","imgBottom","coTop","coBottom","touches","pageX","pageY","body","style","dX","dY","checkBound","right","bottom","touch0","touch1","distance","sqrt","t3d","orig","source","alt","transform","transformOrigin","onLoad","step","AvatarCrop","handleSubmit","handleChange","avatar","onSubmit","catch","onCancel","FormattedMessage","AvatarUpload","handleFileReceived","image","files","onImageUpdated","randId","random","readOnly","tinode","authorizeURL","uid","accept","htmlFor","show","uploading","large","clear","centered","icon_mapping","badge_verified","badge_staff","badge_danger","BadgeList","badges","trustedBadges","comment","CheckBox","checked","iconName","classList","attrs","LetterTile","isGroup","iconColor","letter","charAt","deleted","LoadSpinner","VisiblePassword","inputRef","visible","handleVisibility","handeTextChange","handleKeyDown","handleEditingFinished","autoFocus","focus","keyCode","onFinished","currentTarget","setTimeout","contains","activeElement","tabIndex","onBlur","placeholder","required","autoComplete","onKeyDown","m","exports","createRoot","hydrateRoot","module","ReactDOM","ReactIntl","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","call","n","getter","__esModule","d","getPrototypeOf","obj","t","mode","ns","create","r","def","getOwnPropertyNames","definition","o","defineProperty","enumerable","get","f","chunkId","all","keys","reduce","promises","u","g","globalThis","Function","prop","prototype","done","script","needAttach","scripts","s","getAttribute","charset","timeout","nc","setAttribute","onScriptComplete","prev","clearTimeout","doneFns","parentNode","Symbol","toStringTag","p","installedChunks","installedChunkData","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","stringToByteArray$1","out","base64","byteToCharMap_","charToByteMap_","byteToCharMapWebSafe_","charToByteMapWebSafe_","ENCODED_VALS_BASE","ENCODED_VALS","ENCODED_VALS_WEBSAFE","HAS_NATIVE_SUPPORT","encodeByteArray","input","webSafe","init_","byteToCharMap","output","byte1","haveByte2","byte2","haveByte3","byte3","outByte1","outByte2","outByte3","outByte4","encodeString","decodeString","pos","c1","c2","c3","byteArrayToString","decodeStringToByteArray","charToByteMap","byte4","base64urlEncodeWithoutPadding","utf8Bytes","base64Encode","base64Decode","getDefaultsFromGlobal","self","getGlobal","__FIREBASE_DEFAULTS__","getDefaults","process","env","defaultsJsonString","getDefaultsFromEnvVariable","match","cookie","decoded","getDefaultsFromCookie","Deferred","wrapCallback","callback","isIndexedDBAvailable","indexedDB","validateIndexedDBOpenable","preExist","DB_CHECK_NAME","open","onsuccess","close","deleteDatabase","onupgradeneeded","_a","FirebaseError","code","customData","setPrototypeOf","captureStackTrace","ErrorFactory","service","serviceName","errors","fullCode","template","PATTERN","replaceTemplate","fullMessage","deepEqual","aKeys","bKeys","k","aProp","bProp","isObject","thing","getModularInstance","_delegate","Component","instanceFactory","multipleInstances","serviceProps","instantiationMode","onInstanceCreated","setInstantiationMode","setMultipleInstances","setServiceProps","setInstanceCreatedCallback","DEFAULT_ENTRY_NAME","Provider","container","component","instances","Map","instancesDeferred","instancesOptions","onInitCallbacks","identifier","normalizedIdentifier","normalizeInstanceIdentifier","has","deferred","set","isInitialized","shouldAutoInitialize","instance","getOrInitializeService","instanceIdentifier","getImmediate","options","optional","getComponent","setComponent","isComponentEager","instanceDeferred","entries","clearInstance","delete","services","from","values","filter","INTERNAL","_delete","isComponentSet","getOptions","initialize","opts","onInit","existingCallbacks","Set","add","existingInstance","invokeOnInitCallbacks","callbacks","ComponentContainer","providers","addComponent","provider","getProvider","addOrOverwriteComponent","getProviders","LogLevel","levelStringToEnum","DEBUG","VERBOSE","INFO","WARN","ERROR","SILENT","defaultLogLevel","ConsoleMethod","defaultLogHandler","logType","logLevel","toISOString","method","idbProxyableTypes","cursorAdvanceMethods","cursorRequestMap","WeakMap","transactionDoneMap","transactionStoreNamesMap","transformCache","reverseTransformCache","idbProxyTraps","receiver","IDBTransaction","objectStoreNames","objectStore","wrap","wrapFunction","func","IDBDatabase","transaction","IDBCursor","advance","continue","continuePrimaryKey","unwrap","storeNames","tx","transformCachableValue","unlisten","complete","DOMException","cacheDonePromiseForTransaction","object","IDBObjectStore","IDBIndex","Proxy","IDBRequest","success","promisifyRequest","newValue","openDB","version","blocked","upgrade","blocking","terminated","openPromise","oldVersion","newVersion","db","deleteDB","readMethods","writeMethods","cachedMethods","getMethod","targetFuncName","useIndex","isWrite","storeName","store","index","shift","oldTraps","PlatformLoggerServiceImpl","getPlatformInfoString","isVersionServiceProvider","library","logString","name$o","version$1","logger","_logLevel","_logHandler","_userLogHandler","val","TypeError","setLogLevel","logHandler","userLogHandler","debug","log","warn","PLATFORM_LOG_STRING","_apps","_components","_addComponent","app","_registerComponent","componentName","heartbeatController","triggerHeartbeat","ERROR_FACTORY","FirebaseAppImpl","config","_isDeleted","_options","_config","_name","_automaticDataCollectionEnabled","automaticDataCollectionEnabled","_container","checkDestroyed","isDeleted","appName","initializeApp","rawConfig","existingApp","newApp","registerVersion","libraryKeyOrName","variant","libraryMismatch","versionMismatch","warning","STORE_NAME","dbPromise","getDbPromise","createObjectStore","originalErrorMessage","writeHeartbeatsToIndexedDB","heartbeatObject","put","computeKey","idbGetError","appId","HeartbeatServiceImpl","_heartbeatsCache","_storage","HeartbeatStorageImpl","_heartbeatsCachePromise","read","agent","date","getUTCDateString","lastSentHeartbeatDate","heartbeats","singleDateHeartbeat","hbTimestamp","valueOf","overwrite","heartbeatsToSend","unsentEntries","heartbeatsCache","heartbeatEntry","find","hb","dates","countBytes","pop","extractHeartbeatsForHeader","headerString","_canUseIndexedDBPromise","runIndexedDBEnvironmentCheck","readHeartbeatsFromIndexedDB","heartbeatsObject","existingHeartbeatsObject","PENDING_TIMEOUT_MS","INTERNAL_AUTH_VERSION","TOKEN_EXPIRATION_BUFFER","isServerError","getInstallationsEndpoint","projectId","extractAuthTokenInfoFromResponse","response","token","requestStatus","expiresIn","responseExpiresIn","Number","creationTime","getErrorFromResponse","requestName","errorData","json","serverCode","serverMessage","serverStatus","status","getHeaders","apiKey","Headers","Accept","getHeadersWithAuth","appConfig","refreshToken","headers","append","getAuthorizationHeader","retryIfServerError","sleep","ms","VALID_FID_PATTERN","generateFid","fidByteArray","crypto","msCrypto","getRandomValues","fid","b64String","array","substr","encode","getKey","fidChangeCallbacks","fidChanged","callFidChangeCallbacks","channel","getBroadcastChannel","postMessage","closeBroadcastChannel","broadcastFidChange","broadcastChannel","BroadcastChannel","onmessage","OBJECT_STORE_NAME","oldValue","remove","update","updateFn","getInstallationEntry","installations","registrationPromise","installationEntry","oldEntry","entry","registrationStatus","clearTimedOutRequest","updateOrCreateInstallationEntry","entryWithPromise","onLine","inProgressEntry","registrationTime","registeredInstallationEntry","heartbeatServiceProvider","endpoint","heartbeatService","heartbeatsHeader","getHeartbeatsHeader","authVersion","sdkVersion","fetch","ok","responseValue","authToken","createInstallationRequest","registerInstallation","waitUntilFidRegistration","triggerRegistrationIfNecessary","updateInstallationRequest","generateAuthTokenRequest","getGenerateAuthTokenEndpoint","installation","refreshAuthToken","forceRefresh","tokenPromise","isEntryRegistered","oldAuthToken","isAuthTokenExpired","isAuthTokenValid","updateAuthTokenRequest","waitUntilAuthTokenRequest","inProgressAuthToken","requestTime","makeAuthTokenRequestInProgressEntry","updatedInstallationEntry","fetchAuthTokenFromServer","getToken","installationsImpl","completeInstallationRegistration","getMissingValueError","valueName","INSTALLATIONS_NAME","internalFactory","getId","configKeys","keyName","extractAppConfig","DEFAULT_VAPID_KEY","CONSOLE_CAMPAIGN_ID","MessageType$1","MessageType","arrayToBase64","uint8Array","base64ToArray","base64String","repeat","rawData","outputArray","OLD_DB_NAME","OLD_OBJECT_STORE_NAME","upgradeDb","dbGet","firebaseDependencies","tokenDetails","oldTokenDetails","senderId","dbNames","databases","upgradeTransaction","oldDetails","auth","p256dh","fcmToken","createTime","subscriptionOptions","swScope","vapidKey","checkTokenDetails","migrateOldDatabase","dbSet","requestDeleteToken","unsubscribeOptions","getEndpoint","responseData","errorInfo","toString","getBody","web","applicationPubKey","getTokenInternal","messaging","pushSubscription","swRegistration","subscription","pushManager","getSubscription","subscribe","userVisibleOnly","applicationServerKey","getPushSubscription","scope","dbOptions","currentOptions","isVapidKeyEqual","isEndpointEqual","isAuthEqual","isP256dhEqual","isTokenValid","updatedToken","updateOptions","requestUpdateToken","updatedTokenDetails","deleteTokenInternal","updateToken","getNewToken","dbRemove","unsubscribe","subscribeOptions","requestGetToken","externalizePayload","internalPayload","payload","collapseKey","collapse_key","messageId","fcmMessageId","messagePayloadInternal","notification","icon","propagateNotificationPayload","propagateDataPayload","_b","_c","_d","_e","fcmOptions","click_action","link","analyticsLabel","analytics_label","propagateFcmOptions","_mergeStrings","s1","s2","resultArray","MessagingService","analyticsProvider","deliveryMetricsExportedToBigQueryEnabled","onBackgroundMessageHandler","onMessageHandler","logEvents","isLogServiceStarted","messagingSenderId","registerDefaultSw","serviceWorker","register","browserErrorMessage","getToken$1","Notification","permission","requestPermission","updateVapidKey","ServiceWorkerRegistration","updateSwReg","serviceWorkerRegistration","logToScion","messageType","eventType","NOTIFICATION_CLICKED","PUSH_RECEIVED","getEventType","logEvent","message_id","message_name","message_time","message_device_time","messageEventListener","isFirebaseMessaging","next","dataPayload","WindowMessagingInternalFactory","isWindowSupported","cookieEnabled","PushSubscription","getMessagingInWindow","isSupported","deleteToken","deleteToken$1","onMessage","nextOrObserver","onMessage$1","Alert","content","onReject","onConfirm","confirm","clear_messages","clear_for_all","delete_for_all","send_retry","mute","unmute","reply","forward","edit","topic_delete","topic_delete_warning","delete_messages_warning","unblock","block","topic_block_warning","member_delete","archive","unarchive","edit_permissions","clear_messages_warning","ContextMenu","selfRef","handlePageClick","handleEscapeKey","handleClick","MenuItems","handler","errorHandler","onShowAlert","deleteMessages","retryMessage","replyToMessage","editMessage","topicPermissionSetter","ctrl","onTopicRemoved","topicName","getTopic","delTopic","user","delSubscription","stopPropagation","hide","dataset","onAction","hard","cancelSend","seq","delMessagesAll","delMessagesEdits","delMessagesList","flushMessage","msg","createMessage","publishDraft","updateMode","pickReply","userFrom","userName","menu","hSize","vSize","position","bounds","clickAt","ContactBadges","UnreadBadge","CallMessage","isCallDropped","callState","successClass","callIcon","incoming","CallStatus","icon2","InlineVideo","videoRef","LazyImage","isvideo","padding","whenDone","FileProgress","progress","UploadingImage","onCancelUpload","drafty_form","drafty_attachment","drafty_image","drafty_video","drafty_unknown","fullFormatter","stack","quoteFormatter","el","Drafty","attr","loading","handleImageData","onFormButtonClick","inner","child","onQuoteClick","handleVideoData","concat","viewportWidth","minWidth","minHeight","onImagePreview","onVideoPreview","previewFormatter","inlineImageAttr","inlineVideoAttr","quoteImageOrVideo","isVideo","premime","preref","evt","statusText","scaled","replyFormatter","loadedPromise","Contact","handleContextClick","onSelected","showContextMenu","online","icon_badges","isVerified","isStaff","isDangerous","acs","showMode","getMode","isMuted","isJoiner","previewIsResponse","marker","titleClass","showCheckmark","selected","showOnline","isChannel","unread","small","ContactAction","action","badge_you","badge_owner","ContactList","topicSelected","contactNodes","contactsCount","contacts","filterFunc","filterOn","private","toLowerCase","public","myUserId","isOwner","forwarded","deliveryStatus","latestMessage","_status","msgStatus","showUnread","connected","trusted","verified","staff","danger","_deleted","onTopicSelected","noScroll","dangerouslySetInnerHTML","__html","emptyListMessage","SearchContacts","edited","search","handleSearchChange","handleSearch","handleClear","onSearchContacts","query","ForwardDialog","handleClose","handleSearchContacts","handleContactSelected","onInitFind","searchResults","isWriter","desription","search_placeholder","not_found_placeholder","CALL_HEAD_STARTED","RING_SOUND","CallIncoming","fullName","previousMetaDesc","resetDesc","onMetaDesc","handleRejectCall","handleAcceptCall","ringTimer","setInterval","onRinging","clearInterval","desc","onAcceptCall","onClose","MenuCancel","ErrorPanel","level","onClearError","text","whiteSpace","actionText","Chip","handleCancel","invalid","noAvatar","ChipInput","deriveStateFromProps","focused","handleTextInput","removeChipAt","handleChipCancel","handleFocusGained","handleFocusLost","chips","prompt","sortedChips","sortChips","staticMembers","chipIndex","indexChips","prevState","keep","normal","removed","onChipRemoved","onFocusLost","onEnter","avatarDisabled","onFocus","no_contacts","contacts_not_found_short","GroupManager","members","indexMembers","keepInitialMembers","requiredMember","contactFilter","noContactsMessage","selectedContacts","handleMemberRemoved","handleContactFilter","present","keepInitial","stat","sel","splice","added","doContactFiltering","joiner","writer","preser","approver","sharer","deleter","owner","PermissionsEditor","names","skip","compare","userTitle","userAvatar","modeTitle","compareTitle","InPlaceEdit","active","initialValue","handleStartEditing","handlePasswordFinished","checkValidity","spanText","spanClass","multiline","element","rows","TagManager","tags","tagInput","activated","handleTagInput","handleAddTag","handleRemoveTag","nextProps","last","tag","maxTagCount","getServerParam","onTagsChanged","minTagLength","maxTagLength","add_tags_prompt","TopicDescEdit","getAccessMode","isMe","description","newAvatar","newAvatarMime","previousOnTags","tnNewTags","handleFullNameUpdate","handleImageUpdated","handleAvatarCropped","handleAvatarCropCancel","uploadAvatar","handlePrivateUpdate","handleDescriptionUpdate","handleTagsUpdated","onTagsUpdated","onUpdateTopicDesc","readyToUpload","getLargeFileHelper","upload","du","onUpdateTags","editable","full_name_placeholder","group_name_placeholder","private_placeholder","title_tag_manager","TopicCommonView","previousTagsUpdated","getType","onUpdateTagsRequest","delete_messages","leave_chat","leave_chat_warning","block_contact","block_contact_warning","report_chat","report_chat_warning","other_user","TopicSecurity","handleDeleteTopic","handleDeleteMessages","handleLeave","handleBlock","handleReport","onDeleteTopic","onDeleteMessages","onLeaveTopic","onBlockTopic","onReportTopic","groupTopic","onLaunchPermissionsEditor","access","anon","modeGiven2","general","security","crop","perm_want","perm_given","perm_auth","perm_anon","perm_user","InfoView","admin","muted","address","selectedContact","modeGiven","modeWant","modeWant2","contactList","previousSubsUpdated","resetSubs","resetTags","onSubsUpdated","handleImageChanged","handleMuted","handleUnarchive","handlePermissionsChanged","handleLaunchPermissionsEditor","handleShowAddMembers","handleMemberUpdateRequest","handleMemberSelected","handleContextMenu","handleBackNavigate","newState","user2","subscriber","getGiven","getWant","subscribers","sub","defacs","getDefaultAccess","isAdmin","isSharer","isDeleter","archived","isArchived","isGroupType","isChannelType","chan","getMeta","startMetaQuery","withTags","build","subs","onTopicDescUpdate","ignored","onChangePermissions","ignored2","onTopicUnArchive","which","perm","onTopicDescUpdateRequest","userPermissionsEdited","toEdit","toCompare","toSkip","titleEdit","titleCompare","AccessMode","userPermissionsTitle","userPermissionsAvatar","editedPermissions","immutablePermissions","editedPermissionsTitle","immutablePermissionsTitle","editedPermissionsSkipped","onNavigate","onMemberUpdateRequest","panel","menuItems","view","panelTitle","displayMobile","errorLevel","errorText","searchableContacts","reqCredMethod","onCredAdd","onTopicTagsUpdateRequest","onCredConfirm","onCredDelete","no_members","loop","CALL_ENDED_SOUND","DIALING_SOUND","VIDEO_MUTED_EVENT","VIDEO_UNMUTED_EVENT","already_in_call","CallPanel","localStream","remoteStream","pc","dataChannel","previousOnInfo","waitingForPeer","callInitialSetupComplete","audioOnly","callAudioOnly","videoToggleInProgress","remoteVideoLive","localStreamConstraints","audio","video","isOutgoingCall","localRef","remoteRef","remoteIceCandidatesCache","onInfo","start","stop","createPeerConnection","canSendOffer","drainRemoteIceCandidatesCache","handleNegotiationNeededEvent","handleICECandidateEvent","handleNewICECandidateMsg","handleICEConnectionStateChangeEvent","handleSignalingStateChangeEvent","handleICEGatheringStateChangeEvent","handleIceCandidateErrorEvent","handleTrackEvent","handleVideoOfferMsg","handleVideoAnswerMsg","reportError","handleGetUserMediaError","stopTracks","disconnectMedia","handleCloseClick","handleToggleCameraClick","handleToggleMicClick","handleRemoteHangup","handleVideoCallAccepted","muteVideo","unmuteVideo","emptyVideoTrack","handleDataChannelEvent","handleDataChannelError","handleDataChannelMessage","handleDataChannelOpen","handleDataChannelClose","stream","getTracks","track","addTrack","enabled","removeTrack","what","fillRect","captureStream","getVideoTracks","mediaDevices","getUserMedia","srcObject","onInvite","ontrack","onremovetrack","onremovestream","onicecandidate","oniceconnectionstatechange","onsignalingstatechange","onicegatheringstatechange","onnegotiationneeded","onicecandidateerror","ondatachannel","tracks","send","onopen","onclose","iceServers","RTCPeerConnection","createDataChannel","ordered","RTCSessionDescription","setRemoteDescription","createOffer","offer","setLocalDescription","onSendOffer","localDescription","toJSON","candidate","onIceCandidate","RTCIceCandidate","addIceCandidate","iceConnectionState","signalingState","streams","dummyVideo","createAnswer","answer","onSendAnswer","onHangup","sender","getSenders","replaceTrack","finally","readyState","getAudioTracks","forceUpdate","audioTracks","videoTracks","disabled","audioIcon","videoIcon","peerTitle","pulseAnimation","remoteActive","rstream","autoPlay","playsInline","Attachment","downloader","downloadFile","mimetype","download","loaded","helperFunc","downloadUrl","downloadWidget","message_sending","message_sending_failed","message_edited_marker","ReceivedMarker","timestamp","timeStyle","BaseChatMessage","uploader","onProgress","handleProgress","handleExpandImage","handlePlayVideo","handleFormButtonClick","handleCancelUpload","handleQuoteClick","formatterContext","onExpandMedia","resp","act","onFormResponse","userIsWriter","immutable","_0","_1","tp","parseInt","ratio","replyToSeq","sideClass","sequence","bubbleClass","fullDisplay","attachments","att","tree","innerRef","IntlChatMessage","AudioRecorder","messaging_disabled","type_new_message","add_image_caption","file_attachment_too_large","cannot_initiate_upload","icon_title_record_voice","icon_title_attach_file","icon_title_add_image","icon_title_send","SendMessage","quote","audioRec","audioAvailable","keypressTimestamp","handlePasteEvent","handleAttachImage","handleAttachFile","handleAttachAudio","handleSend","handleKeyPress","handleMessageTyping","handleDropAttach","formatReply","messageEditArea","getComputedStyle","getPropertyValue","initMessage","scrollTop","scrollHeight","setSelectionRange","onAttachImage","onAttachFile","onAttachAudio","acceptBlank","noInput","onSendMessage","shiftKey","onKeyPress","messagePrompt","sendIcon","editing","onCancelReply","audioEnabled","attachImage","click","attachFile","Suspense","fallback","onRecordingProgress","onDeleted","display","DocPreview","handleSendDoc","caption","mimeToIcon","default","iconFromMime","GroupSubs","usersOnline","totalCount","countToShow","overflow","ImagePreview","handleSendImage","assignWidth","node","maxlength","Invitation","handleButtonAction","LogoView","serverVersion","serverAddress","MetaMessage","unrecognized_video_format","VideoPreview","handleSendVideo","videoWidth","videoHeight","controlist","controls","controlsList","disablePictureInPicture","poster","online_now","last_seen","not_found","invalid_content","editing_message","drag_file","isUnconfirmed","ex","getExcessive","isPeerRestricted","getMissing","shouldPresentCallPanel","MessagesView","getDerivedStateFromProps","leave","sendMessage","retrySend","sendImageAttachment","sendVideoAttachment","sendFileAttachment","sendAudioAttachment","sendKeyPress","handleScrollReference","mountDnDEvents","handleScrollEvent","handleDescChange","handleSubsUpdated","handleMessageUpdate","handleAllMessagesReceived","handleInfoReceipt","handleExpandMedia","handleClosePreview","handleFormResponse","handleShowMessageContextMenu","handleNewChatAcceptance","handleEnablePeer","handleAttachImageOrVideo","postReadNotification","clearNotificationQueue","goToLatestMessage","handleFileDrop","handlePickReply","handleEditMessage","handleCancelReply","handleCallHangup","isDragEnabled","handleDragIn","handleDragOut","handleDrag","handleDrop","chatMessageRefs","getOrCreateMessageRef","dragCounter","dndRef","readNotificationQueue","readNotificationTimer","keyPressTimer","seqId","messagesScroller","messageCount","scrollPosition","rtcPanel","callSeq","onData","onAllMessagesReceived","onPres","applicationVisible","ready","_new","isP2PType","withDesc","nextState","docPreview","imagePreview","imagePostview","videoPreview","videoPostview","typingIndicator","fetchingMessages","showGoToLastButton","contentToEdit","dragging","forwardMessage","onlineSubs","peer","p2pPeerDesc","peerMessagingDisabled","latestClearId","maxClearId","callTopic","isReader","readingBlocked","unconformed","unconfirmed","isSubscribed","newTopic","newTopicParams","_topicName","getQuery","withLaterDesc","withLaterSub","withLaterData","withLaterDel","setQuery","onNewTopicCreated","calls","queuedMessages","pub","_sending","webrtc","blankState","oldTopicName","isTopicCached","oldTopic","msgHasMoreMessages","getMessagesPage","dnd","sendAt","noteRead","setMilliseconds","getMilliseconds","isNewMessage","searchParams","messageSpecificMenuItems","onNewChat","noteRecording","noteKeyPress","uploadCompletionPromise","maxInbandAttachmentSize","urlPromise","maxExternAttachmentSize","limit","onVideoCallClosed","onCallHangup","_tempPreview","videoBlob","previewBlob","uploads","b64s","v64","i64","b64conv","found","findMessage","_cancelled","senderName","onCancelForwardMessage","scrollIntoView","behavior","dataTransfer","clearData","hideSelf","component2","onCallInvite","onCallSendOffer","onCallIceCandidate","onCallSendAnswer","messageNodes","previousFrom","prevDate","chatBoxClass","nextFrom","thisFrom","isReply","userDesc","isNaN","thisDate","ts","toDateString","isChan","_uploader","lastSeen","cont","getMeTopic","getContact","seen","when","messagesComponent","onHideMessagesView","ButtonBack","onBack","MenuContacts","onNewTopic","onSettings","MenuStart","onSignUp","SideNavbar","archived_contacts_title","ContactsView","handleAction","unreadThreads","archivedCount","chatList","arch","touched","action_ignored","onShowArchive","EditAccountView","handleCheckboxClick","onToggleMessageSounds","onTogglePushNotifications","onToggleIncognitoMode","messageSounds","desktopAlertsEnabled","desktopAlerts","incognitoMode","delete_account","delete_account_warning","AccSecurityView","me","blockedCount","showPermissionEditorFor","handlePasswordUpdate","handleHidePermissionsEditor","handleDeleteAccount","pwd","password","onUpdatePassword","onUpdateAccountDesc","onDeleteAccount","password_unchanged","onLogout","onShowBlocked","AccSupportView","LoginView","login","hostName","saveToken","persist","handleLoginChange","handlePasswordChange","handleToggleSaveToken","onPersistenceChange","onLogin","submitClasses","login_prompt","autoCorrect","autoCapitalize","password_prompt","invalid_id","NewTopicById","groupId","prefix","NewTopicGroup","handleFieldEdit","handleTagsChanged","handleChannelToggle","search_for_contacts","search_no_results","NewTopicView","tabSelected","searchQuery","handleTabClick","handleSearchResultSelected","handleNewGroupSubmit","handleGroupByID","onCreateTopic","dataUrl","priv","no_contacts_placeholder","HostSelector","changed","handleHostNameChange","onServerAddressChange","hostOptions","list","SettingsView","transport","secureConnection","handleTransportSelected","handleServerAddressChange","handleToggleSecure","onUpdate","ws","lp","transportOptions","phone","email","ValidationView","credCode","codeReceived","handleCodeChange","credMethod","credToken","numbers_only","AccountSettingsView","CreateAccountView","PasswordResetView","settings","notif","support","newtpk","cred","reset","SidepanelView","handleNewTopic","errorAction","errorActionText","loadSpinnerVisible","loginDisabled","onLoginRequest","onShowCountrySelector","onCreateAccount","onGlobalSettings","onUpdateAccountTags","onValidateCredentials","onRequest","onPasswordResetRequest","onReset","onResetPassword","detectServerAddress","host","protocol","hostname","port","isSecureConnection","PhoneCountrySelector","POP_SOUND","reconnect_countdown","reconnect_now","push_init_failed","invalid_security_token","no_connection","code_doesnot_match","menu_item_info","menu_item_audio_call","menu_item_video_call","cred_confirmed_successfully","TinodeWeb","getBlankState","handleResize","handleHashRoute","handleOnline","checkForAppUpdate","handleVisibilityEvent","handleLoginRequest","handlePersistenceChange","handleConnected","handleAutoreconnectIteration","doLogin","handleLoginSuccessful","handleDisconnect","tnMeMetaDesc","tnMeContactUpdate","tnMeSubsUpdated","resetContactList","tnInitFind","tnFndSubsUpdated","handleTopicSelected","handleHideMessagesView","handleSendMessage","handleNewChatInvitation","handleNewAccount","handleNewAccountRequest","handleUpdatePasswordRequest","handleUpdateAccountTagsRequest","handleToggleIncognitoMode","handleSettings","handleGlobalSettings","handleShowArchive","handleShowBlocked","handleToggleMessageSounds","handleCredAdd","handleCredDelete","handleCredConfirm","initFCMessaging","toggleFCMToken","handlePushMessage","handleSidepanelCancel","handleStartTopicRequest","handleNewTopicCreated","handleTopicUpdateRequest","handleChangePermissions","handleTagsUpdateRequest","handleLogout","handleDeleteTopicRequest","handleDeleteMessagesRequest","handleLeaveUnsubRequest","handleBlockTopicRequest","handleReportTopic","handleShowContextMenu","defaultTopicContextMenu","handleHideContextMenu","handleShowAlert","handleShowInfoView","handleValidateCredentialsRequest","handlePasswordResetRequest","handleResetPassword","handleContextMenuAction","handleShowCountrySelector","handleShowForwardDialog","handleHideForwardDialog","handleStartVideoCall","handleStartAudioCall","handleInfoMessage","handleDataMessage","handleCallClose","handleCallInvite","handleCallRinging","handleCallSendOffer","handleCallIceCandidate","handleCallSendAnswer","handleCallAccept","sendMessageToTopic","callTimeoutTimer","autoLogin","messageSoundsOff","firebaseInitApp","FIREBASE_INIT","firebaseToken","hidden","sidePanelSelected","sidePanelTitle","sidePanelAvatar","myTrustedBadges","liveConnection","topicSelectedOnline","topicSelectedAcs","innerWidth","infoPanel","mobilePanel","callShouldStart","contextMenuVisible","contextMenuBounds","contextMenuClickAt","contextMenuParams","contextMenuItems","forwardDialogVisible","alertVisible","alertParams","requestedTopic","documentElement","clientWidth","viewportHeight","clientHeight","tnSetup","onConnect","onDisconnect","onAutoreconnectIteration","onInfoMessage","onDataMessage","parsedNav","expires","setAuthToken","connect","readTimer","readTimerCallback","cred_done","persistentCache","onSetupCompleted","secure","setHumanLanguage","enableLogging","oobNotification","fcm","firebaseGetMessaging","getRegistration","reg","installing","requestFCMToken","setDeviceToken","firebaseOnMessage","sw","firebaseGetToken","messagingVapidKey","mobile","onupdatefound","installingWorker","onstatechange","controller","newTopicTabSelected","tab","getTopicAccessMode","stateForError","reconnectCountdown","reconnect","isConnected","meth","initStorage","clearStorage","getServerInfo","ver","reqCred","prom","fmtTime","tmpToken","isAuthenticated","getAuthToken","loginPromise","connectionPromise","loginBasic","loginToken","navigateToCredentialsView","goToTopic","onContactUpdate","getCurrentUserID","withCred","disconnect","urlHash","isPresencer","unused","foundContacts","merged","updated","past","prepareSearchableContacts","fnd","getFndTopic","withSub","setMeta","isTopicOnline","completion","subscribePromise","publishMessage","am","updateWant","login_","password_","public_","cred_","tags_","createAccountBasic","on","firebaseDelToken","delCredential","scheme","basicNavigator","infoNavigator","newGroupTopicName","oldName","newName","updateAccountBasic","getCurrentLogin","updateGiven","cleared","Promose","delCurrentUser","report","header","msgPreview","self_blocked","subscribed","keepForwardedMessage","confirmText","rejectText","invite","requestResetAuthSecret","newPassword","tempAuth","secret","dial","selectedCallback","aonly","videoCall","sdp","latestMsgVersion","myUserName","onAddMember","handleManageGroupMembers","measurementId","gtag","dataLayer","arguments","prepend","messageLoader","hl","languages","normalized","baseLanguage","htmlLang","root","IntlProvider","textComponent"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"index.prod.js","mappings":"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","sources":["webpack://tinode-webapp/webpack/runtime/create fake namespace object","webpack://tinode-webapp/webpack/runtime/load script","webpack://tinode-webapp/./src/config.js","webpack://tinode-webapp/./src/lib/blob-helpers.js","webpack://tinode-webapp/./src/lib/local-storage.js","webpack://tinode-webapp/./src/lib/navigation.js","webpack://tinode-webapp/./src/lib/strformat.js","webpack://tinode-webapp/./src/lib/utils.js","webpack://tinode-webapp/./src/version.js","webpack://tinode-webapp/./src/widgets/audio-player.jsx","webpack://tinode-webapp/./src/widgets/cropper.jsx","webpack://tinode-webapp/./src/widgets/avatar-crop.jsx","webpack://tinode-webapp/./src/widgets/avatar-upload.jsx","webpack://tinode-webapp/./src/widgets/badge-list.jsx","webpack://tinode-webapp/./src/widgets/checkbox.jsx","webpack://tinode-webapp/./src/widgets/letter-tile.jsx","webpack://tinode-webapp/./src/widgets/load-spinner.jsx","webpack://tinode-webapp/./src/widgets/visible-password.jsx","webpack://tinode-webapp/./node_modules/react-dom/client.js","webpack://tinode-webapp/external var \"React\"","webpack://tinode-webapp/external var \"ReactDOM\"","webpack://tinode-webapp/external var \"ReactIntl\"","webpack://tinode-webapp/external var \"Tinode\"","webpack://tinode-webapp/webpack/bootstrap","webpack://tinode-webapp/webpack/runtime/compat get default export","webpack://tinode-webapp/webpack/runtime/define property getters","webpack://tinode-webapp/webpack/runtime/ensure chunk","webpack://tinode-webapp/webpack/runtime/get javascript chunk filename","webpack://tinode-webapp/webpack/runtime/global","webpack://tinode-webapp/webpack/runtime/hasOwnProperty shorthand","webpack://tinode-webapp/webpack/runtime/make namespace object","webpack://tinode-webapp/webpack/runtime/publicPath","webpack://tinode-webapp/webpack/runtime/jsonp chunk loading","webpack://tinode-webapp/./node_modules/@firebase/util/dist/index.esm2017.js","webpack://tinode-webapp/./node_modules/@firebase/component/dist/esm/index.esm2017.js","webpack://tinode-webapp/./node_modules/@firebase/logger/dist/esm/index.esm2017.js","webpack://tinode-webapp/./node_modules/idb/build/wrap-idb-value.js","webpack://tinode-webapp/./node_modules/idb/build/index.js","webpack://tinode-webapp/./node_modules/@firebase/app/dist/esm/index.esm2017.js","webpack://tinode-webapp/./node_modules/firebase/app/dist/esm/index.esm.js","webpack://tinode-webapp/./node_modules/@firebase/installations/dist/esm/index.esm2017.js","webpack://tinode-webapp/./node_modules/@firebase/messaging/dist/esm/index.esm2017.js","webpack://tinode-webapp/./src/widgets/alert.jsx","webpack://tinode-webapp/./src/widgets/context-menu.jsx","webpack://tinode-webapp/./src/widgets/contact-badges.jsx","webpack://tinode-webapp/./src/widgets/unread-badge.jsx","webpack://tinode-webapp/./src/widgets/call-message.jsx","webpack://tinode-webapp/./src/widgets/call-status.jsx","webpack://tinode-webapp/./src/widgets/inline-video.jsx","webpack://tinode-webapp/./src/widgets/lazy-image.jsx","webpack://tinode-webapp/./src/widgets/file-progress.jsx","webpack://tinode-webapp/./src/widgets/uploading-image.jsx","webpack://tinode-webapp/./src/lib/formatters.js","webpack://tinode-webapp/./src/widgets/contact.jsx","webpack://tinode-webapp/./src/widgets/contact-action.jsx","webpack://tinode-webapp/./src/widgets/contact-list.jsx","webpack://tinode-webapp/./src/widgets/search-contacts.jsx","webpack://tinode-webapp/./src/widgets/forward-dialog.jsx","webpack://tinode-webapp/./src/constants.js","webpack://tinode-webapp/./src/widgets/call-incoming.jsx","webpack://tinode-webapp/./src/widgets/menu-cancel.jsx","webpack://tinode-webapp/./src/widgets/error-panel.jsx","webpack://tinode-webapp/./src/widgets/chip.jsx","webpack://tinode-webapp/./src/widgets/chip-input.jsx","webpack://tinode-webapp/./src/widgets/group-manager.jsx","webpack://tinode-webapp/./src/widgets/permissions-editor.jsx","webpack://tinode-webapp/./src/widgets/in-place-edit.jsx","webpack://tinode-webapp/./src/widgets/tag-manager.jsx","webpack://tinode-webapp/./src/widgets/topic-desc-edit.jsx","webpack://tinode-webapp/./src/views/topic-common-view.jsx","webpack://tinode-webapp/./src/widgets/topic-security.jsx","webpack://tinode-webapp/./src/views/info-view.jsx","webpack://tinode-webapp/./src/widgets/call-panel.jsx","webpack://tinode-webapp/./src/widgets/attachment.jsx","webpack://tinode-webapp/./src/widgets/received-marker.jsx","webpack://tinode-webapp/./src/widgets/chat-message.jsx","webpack://tinode-webapp/./src/widgets/send-message.jsx","webpack://tinode-webapp/./src/widgets/doc-preview.jsx","webpack://tinode-webapp/./src/widgets/group-subs.jsx","webpack://tinode-webapp/./src/widgets/image-preview.jsx","webpack://tinode-webapp/./src/widgets/invitation.jsx","webpack://tinode-webapp/./src/views/logo-view.jsx","webpack://tinode-webapp/./src/widgets/meta-message.jsx","webpack://tinode-webapp/./src/widgets/video-preview.jsx","webpack://tinode-webapp/./src/views/messages-view.jsx","webpack://tinode-webapp/./src/widgets/button-back.jsx","webpack://tinode-webapp/./src/widgets/menu-contacts.jsx","webpack://tinode-webapp/./src/widgets/menu-start.jsx","webpack://tinode-webapp/./src/widgets/side-navbar.jsx","webpack://tinode-webapp/./src/views/contacts-view.jsx","webpack://tinode-webapp/./src/views/acc-notifications-view.jsx","webpack://tinode-webapp/./src/views/acc-security-view.jsx","webpack://tinode-webapp/./src/views/acc-support-view.jsx","webpack://tinode-webapp/./src/views/login-view.jsx","webpack://tinode-webapp/./src/widgets/new-topic-by-id.jsx","webpack://tinode-webapp/./src/widgets/new-topic-group.jsx","webpack://tinode-webapp/./src/views/new-topic-view.jsx","webpack://tinode-webapp/./src/widgets/host-selector.jsx","webpack://tinode-webapp/./src/views/settings-view.jsx","webpack://tinode-webapp/./src/views/validation-view.jsx","webpack://tinode-webapp/./src/views/sidepanel-view.jsx","webpack://tinode-webapp/./src/lib/host-name.js","webpack://tinode-webapp/./src/views/tinode-web.jsx","webpack://tinode-webapp/./src/index.js"],"sourcesContent":["var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"tinode-webapp:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t};\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","import { PACKAGE_VERSION } from './version.js';\n\n// Name of this application, used in the User-Agent.\nexport const APP_NAME = 'TinodeWeb/' + (PACKAGE_VERSION || '0.21');\n\n// API key. Use https://github.com/tinode/chat/tree/master/keygen to generate your own\nexport const API_KEY = 'AQEAAAABAAD_rAp4DJh05a1HAwFT3A6K';\n\n// The array of possible hosts to connect to.\nexport const KNOWN_HOSTS = {hosted: 'web.tinode.co', local: 'localhost:6060'};\n\n// Default host name and port to connect to.\nexport const DEFAULT_HOST = KNOWN_HOSTS.hosted;\n\n// Enable console logging.\nexport const LOGGING_ENABLED = true;\n\n// Minimum time between two keypress notifications, milliseconds.\nexport const KEYPRESS_DELAY = 3_000;\n// Delay before sending a read notification, milliseconds.\nexport const READ_DELAY = 1_500;\n\n// The default shortest allowed tag length. Matches the value on the server.\nexport const MIN_TAG_LENGTH = 2;\n// The default greatest allowed tag length. Matches the value on the server.\nexport const MAX_TAG_LENGTH = 96;\n// The default maximum number of tags allowed. Matches the value on the server.\nexport const MAX_TAG_COUNT = 16;\n\n// Access mode for P2P subscriptions initiated by the current user.\nexport const DEFAULT_P2P_ACCESS_MODE = 'JRWPS';\n// Access mode for new group topics created by the current user.\nexport const NEW_GRP_ACCESS_MODE = 'JRWPSAO';\n// Access mode for a channel.\nexport const CHANNEL_ACCESS_MODE = 'JR';\n\n// Access mode for no access.\nexport const NO_ACCESS_MODE = 'N';\n\n// Mediaquery breakpoint between desktop and mobile, in px. Should match the value\n// in @media (max-size: 640px) in base.css\nexport const MEDIA_BREAKPOINT = 640;\n// Size of css 'rem' unit in pixels. Default 1rem = 10pt = 13px.\nexport const REM_SIZE = 13;\n\n// Size of the avatar image: when image dimensions are greater or the image is not square, it's resized to\n// a square of this size or less.\nexport const AVATAR_SIZE = 384;\n\n// Maximum size of an avatar in bytes for sending in-band. Bigger avatars will be sent out of band (as uploads).\nexport const MAX_AVATAR_BYTES = 4096;\n\n// Size of the broken_image shown in MessagesView\nexport const BROKEN_IMAGE_SIZE = 32;\n\n// Size of video preview when dimensions are missing.\nexport const NO_DIMENSIONS_VIDEO = 128;\n\n// Number of chat messages to fetch in one call.\nexport const MESSAGES_PAGE = 24;\n\n// Default maximum in-band (included directly into the message) attachment size which fits into\n// a message of 256K in size. Used when the server-provided value is unavailable. The actual\n// binary size of the attachment should be smaller due to base64 encoding expansion and some overhead,\n// for instance 1024 bytes.\n// Increase this limit to a greater value in production, if desired. Also increase\n// max_message_size in the server config.\nexport const MAX_INBAND_ATTACHMENT_SIZE = 262_144;\n\n// Default absolute maximum attachment size to be used with the server = 8MB.\n// Used when the server-provided value is unavailable. Increase to something like 100MB in production.\nexport const MAX_EXTERN_ATTACHMENT_SIZE = 1 << 23;\n\n// Maximum allowed linear dimension (pixels) of an image sent inline. Larger images will be shrunk\n// to make the larger dimension fit under this size. You may want to adjust it to 1600 or\n// 2400 for production.\nexport const MAX_IMAGE_DIM = 1024;\n\n// Linear dimensions of image preview: shrink image under this size for previews.\nexport const IMAGE_PREVIEW_DIM = 64;\n\n// Linear dimensions of video screencapture: shrink image under this size for previews.\nexport const VIDEO_PREVIEW_DIM = 96;\n\n// Linear dimensions of image thumbnail: shrink image under this size for thumbnails in reply quote previews.\nexport const IMAGE_THUMBNAIL_DIM = 36;\n// Width of video thumbnail: allow it to be wider, but not taller. Use IMAGE_THUMBNAIL_DIM for height.\nexport const VIDEO_THUMBNAIL_WIDTH = 48;\n\n// Maximum number of online users to be shown in a topic title bar. Others will be\n// hidden under \"+X more\"\nexport const MAX_ONLINE_IN_TOPIC = 4;\n\n// Maximum length of user name, topic title, and private comment.\nexport const MAX_TITLE_LENGTH = 60;\n// Maximum length of topic description.\nexport const MAX_TOPIC_DESCRIPTION_LENGTH = 360;\n// Maximum length of user name when displaying a video call.\nexport const MAX_PEER_TITLE_LENGTH = 20;\n\n// Length of message previews in chat list, in characters.\nexport const MESSAGE_PREVIEW_LENGTH = 80;\n\n// Length of a quote in quoted reply (for outgoing messages).\nexport const QUOTED_REPLY_LENGTH = 30;\n// Length of a preview of a forwarded message.\nexport const FORWARDED_PREVIEW_LENGTH = 84;\n// Length of preview for a message being edited.\nexport const EDIT_PREVIEW_LENGTH = 48;\n\n// Minimum duration of an audio recording in milliseconds (2 sec).\nexport const MIN_DURATION = 2_000;\n// Maximum duration of an audio recording in milliseconds (10 min).\nexport const MAX_DURATION = 600_000;\n\n// Link for \"Contact Us\".\nexport const LINK_CONTACT_US = 'mailto:support@tinode.co';\n\n// Link to Privacy Policy.\nexport const LINK_PRIVACY_POLICY = 'https://tinode.co/privacy.html';\n\n// Link to Terms of Service.\nexport const LINK_TERMS_OF_SERVICE = 'https://tinode.co/terms.html';\n\n","// File and image helper functions.\n\n// Supported image MIME types and corresponding file extensions.\nexport const SUPPORTED_IMAGE_FORMATS = ['image/jpeg', 'image/gif', 'image/png', 'image/svg', 'image/svg+xml'];\nexport const MIME_EXTENSIONS = ['jpg', 'gif', 'png', 'svg', 'svg'];\n\n// Get an URL from a theCard photo: either create a data: URL or return reference URL.\nexport function makeImageUrl(photo) {\n if (photo && typeof photo == 'object') {\n if (photo.ref) {\n return photo.ref\n }\n if (photo.data && photo.type) {\n const mime = photo.type.startsWith('image/') ? photo.type : ('image/' + photo.type);\n return 'data:' + mime + ';base64,' + photo.data;\n }\n }\n return null;\n}\n\n// Calculate linear dimensions for scaling image down to fit under a certain size.\n// Returns an object which contains destination sizes, source sizes, and offsets\n// into source (when making square images).\nexport function fitImageSize(width, height, maxWidth, maxHeight, forceSquare) {\n // Sanitize input\n width = width | 0;\n height = height | 0;\n maxWidth = maxWidth | 0;\n maxHeight = maxHeight | 0;\n\n if (width <= 0 || height <= 0 || maxWidth <= 0 || maxHeight <= 0) {\n return null;\n }\n\n if (forceSquare) {\n maxWidth = maxHeight = Math.min(maxWidth, maxHeight);\n }\n\n const scale = Math.min(\n Math.min(width, maxWidth) / width,\n Math.min(height, maxHeight) / height\n );\n\n const size = {\n dstWidth: (width * scale) | 0,\n dstHeight: (height * scale) | 0,\n };\n\n if (forceSquare) {\n // Also calculate parameters for making the image square.\n size.dstWidth = size.dstHeight = Math.min(size.dstWidth, size.dstHeight);\n size.srcWidth = size.srcHeight = Math.min(width, height);\n size.xoffset = ((width - size.srcWidth) / 2) | 0;\n size.yoffset = ((height - size.srcWidth) / 2) | 0;\n } else {\n size.xoffset = size.yoffset = 0;\n size.srcWidth = width;\n size.srcHeight = height;\n }\n return size;\n}\n\n// Ensure file's extension matches mime content type\nexport function fileNameForMime(fname, mime) {\n const idx = SUPPORTED_IMAGE_FORMATS.indexOf(mime);\n if (idx < 0 || !fname) {\n // Unknown mime or empty name.\n return fname;\n }\n const ext = MIME_EXTENSIONS[idx];\n\n const at = fname.lastIndexOf('.');\n if (at >= 0) {\n fname = fname.substring(0, at);\n }\n return fname + '.' + ext;\n}\n\n// Scale uploaded image to fit under certain dimensions and byte size, optionally constraining to a square.\n// Returns a promise which is resolven on success or rejected on failure.\nexport function imageScaled(fileOrBlob, maxWidth, maxHeight, maxSize, forceSquare) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = 'Anonymous';\n img.onerror = function(err) {\n reject(new Error(\"Image format unrecognized\"));\n }\n img.onload = async function() {\n // Once the image is loaded, the URL is no longer needed.\n URL.revokeObjectURL(img.src);\n\n // Calculate the desired image dimensions.\n const dim = fitImageSize(img.width, img.height, maxWidth, maxHeight, forceSquare);\n if (!dim) {\n reject(new Error(\"Invalid image\"));\n return;\n }\n let canvas = document.createElement('canvas');\n canvas.width = dim.dstWidth;\n canvas.height = dim.dstHeight;\n let ctx = canvas.getContext('2d');\n ctx.imageSmoothingEnabled = true;\n ctx.drawImage(img, dim.xoffset, dim.yoffset, dim.srcWidth, dim.srcHeight,\n 0, 0, dim.dstWidth, dim.dstHeight);\n\n const mime = SUPPORTED_IMAGE_FORMATS.includes(fileOrBlob.type) ? fileOrBlob.type : 'image/jpeg';\n // Generate blob to check size of the image.\n let blob = await new Promise(resolve => canvas.toBlob(resolve, mime));\n if (!blob) {\n reject(new Error(\"Unsupported image format\"));\n return;\n }\n // Ensure the image is not too large. Shrink the image keeping the aspect ratio.\n // Do nothing if maxsize is <= 0.\n while (maxSize > 0 && blob.length > maxSize) {\n dim.dstWidth = (dim.dstWidth * 0.70710678118) | 0;\n dim.dstHeight = (dim.dstHeight * 0.70710678118) | 0;\n canvas.width = dim.dstWidth;\n canvas.height = dim.dstHeight;\n ctx = canvas.getContext('2d');\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.drawImage(img, dim.xoffset, dim.yoffset, dim.srcWidth, dim.srcHeight,\n 0, 0, dim.dstWidth, dim.dstHeight);\n blob = await new Promise(resolve => canvas.toBlob(resolve, mime));\n }\n\n canvas = null;\n resolve({mime: mime, blob: blob, width: dim.dstWidth, height: dim.dstHeight, name: fileNameForMime(fileOrBlob.name, mime)});\n };\n img.src = URL.createObjectURL(fileOrBlob);\n });\n}\n\n// Scale and crop image according to specified dimensions.\n// The coordinates are in unscaled image pixels, i.e. cut the rectangle first then scale it.\n// returns a promise.\nexport function imageCrop(mime, objURL, left, top, width, height, scale) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = 'Anonymous';\n img.onerror = _ => {\n reject(new Error(\"Image format unrecognized\"));\n };\n img.onload = _ => {\n // Once the image is loaded, the URL is no longer needed.\n URL.revokeObjectURL(img.src);\n\n let canvas = document.createElement('canvas');\n canvas.width = width * scale;\n canvas.height = height * scale;\n let ctx = canvas.getContext('2d');\n ctx.imageSmoothingEnabled = true;\n ctx.drawImage(img, left, top, width, height, 0, 0, canvas.width, canvas.height);\n\n mime = SUPPORTED_IMAGE_FORMATS.includes(mime) ? mime : 'image/jpeg';\n // Generate blob to check size of the image.\n canvas.toBlob((blob) => {\n // Allow GC.\n canvas = null;\n if (blob) {\n resolve({mime: mime, blob: blob, width: width, height: height});\n } else {\n reject(new Error(\"Unsupported image format\"));\n }\n }, mime);\n };\n img.src = objURL;\n });\n}\n\n// Convert file to base64 string.\nexport function fileToBase64(file) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onerror = _ => {\n reject(reader.error);\n };\n reader.onload = _ => {\n resolve({mime: file.type, bits: reader.result.split(',')[1], name: file.name});\n };\n reader.readAsDataURL(file);\n });\n}\n\n// Convert Blob to base64 string. Returns a promise resolved with the base64 string and mime.\nexport function blobToBase64(blob) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onerror = _ => {\n reject(reader.error);\n };\n reader.onload = _ => {\n resolve({mime: blob.type, bits: reader.result.split(',')[1]});\n };\n reader.readAsDataURL(blob);\n });\n}\n\n// File pasted from the clipboard. It's either an inline image or a file attachment.\nexport function filePasted(event, onImageSuccess, onAttachmentSuccess, onError) {\n const items = (event.clipboardData || event.originalEvent.clipboardData || {}).items;\n if (!items || !items.length) {\n return false;\n }\n\n for (let i in items) {\n const item = items[i];\n if (item.kind === 'file') {\n const file = item.getAsFile();\n if (!file) {\n console.error(\"Failed to get file object from pasted file item\", item.kind, item.type);\n onError(\"Failed to get file object from pasted file item\");\n continue;\n }\n if (file.type && file.type.split('/')[0] == 'image') {\n onImageSuccess(file);\n } else {\n onAttachmentSuccess(file);\n }\n // Indicate that the pasted data contains a file.\n return true;\n }\n }\n // No file found.\n return false;\n}\n\n// Get mime type from data URL header.\nexport function getMimeType(header) {\n var mime = /^data:(image\\/[-+a-z0-9.]+);base64/.exec(header);\n return (mime && mime.length > 1) ? mime[1] : null;\n}\n\n// Given length of a binary object in bytes, calculate the length after\n// base64 encoding.\nexport function base64EncodedLen(n) {\n return Math.floor((n + 2) / 3) * 4;\n}\n\n// Given length of a base64-encoded object, calculate decoded size of the\n// pbject in bytes.\nexport function base64DecodedLen(n) {\n return Math.floor(n / 4) * 3;\n}\n\n// Re-encode string to standard base64 encoding with padding.\n// The string may be base64-URL encoded without the padding.\nexport function base64ReEncode(str) {\n if (str) {\n str = str.replace(/-/g, '+').replace(/_/g, '/');\n try {\n str = btoa(atob(str));\n } catch(err) {\n console.error(\"Failed to base64 re-encode string.\", err);\n str = null;\n }\n }\n return str;\n}\n\n// Convert a base64 encoded string with the provided mime type into a Blob.\nexport function base64ToBlob(str, mime) {\n if (!str) {\n return null;\n }\n\n try {\n // Make blob.\n const bin = atob(str);\n const length = bin.length;\n const buf = new ArrayBuffer(length);\n const arr = new Uint8Array(buf);\n for (let i = 0; i < length; i++) {\n arr[i] = bin.charCodeAt(i);\n }\n\n return new Blob([buf], { type: mime });\n } catch(err) {\n console.error(\"Failed to convert base64 to blob: \", err);\n }\n\n return null;\n}\n\nexport function intArrayToBase64(arr) {\n if (!Array.isArray(arr)) {\n return null;\n }\n try {\n let bin = '';\n new Uint8Array(arr).forEach(b => bin += String.fromCharCode(b));\n return window.btoa(bin);\n } catch (err) {}\n return null;\n}\n\nexport function base64ToIntArray(b64) {\n const arr = [];\n try {\n const bin = window.atob(b64);\n [...bin].forEach(c => {\n arr.push(c.charCodeAt(0));\n });\n return arr;\n } catch (err) {}\n return null;\n}\n","// Helper functions for storing values in localStorage.\n// By default localStorage can store only strings, not objects or other types.\n\nexport default class LocalStorageUtil {\n // Replace old object with the new one.\n static setObject(key, value) {\n localStorage.setItem(key, JSON.stringify(value));\n }\n\n // Get stored object.\n static getObject(key) {\n const value = localStorage.getItem(key);\n return value && JSON.parse(value);\n }\n\n // Partially or wholly update stored object.\n static updateObject(key, value) {\n const oldVal = this.getObject(key);\n this.setObject(key, Object.assign(oldVal || {}, value));\n }\n\n // Just a wrapper.\n static removeItem(key) {\n localStorage.removeItem(key);\n }\n}\n","// Utility class for hash navigation.\n\nexport default class HashNavigation {\n // Parse hash as in http://www.example.com/path#hash as if it were\n // path and arguments.\n static parseUrlHash(hash) {\n // Split path from args, path -> parts[0], args->path[1]\n const parts = hash.split('?', 2);\n const params = {};\n let path = [];\n if (parts[0]) {\n path = parts[0].replace('#', '').split('/');\n }\n if (parts[1]) {\n parts[1].split('&').forEach((arg) => {\n // Can't use split() because the value may contain '='.\n const eq = arg.indexOf('=');\n if (eq > 0) {\n params[arg.slice(0, eq)] = decodeURIComponent(arg.slice(eq + 1));\n }\n });\n }\n return {path: path, params: params};\n }\n\n static navigateTo(url) {\n window.location.hash = url;\n }\n\n static composeUrlHash(path, params) {\n let url = path.join('/');\n const args = [];\n for (const key in params) {\n if (params.hasOwnProperty(key)) {\n args.push(key + '=' + encodeURIComponent(params[key]));\n }\n }\n if (args.length > 0) {\n url += '?' + args.join('&');\n }\n return url;\n }\n\n static addUrlParam(hash, key, value) {\n const parsed = HashNavigation.parseUrlHash(hash);\n parsed.params[key] = value;\n return HashNavigation.composeUrlHash(parsed.path, parsed.params);\n }\n\n static removeUrlParam(hash, key) {\n const parsed = HashNavigation.parseUrlHash(hash);\n delete parsed.params[key];\n return HashNavigation.composeUrlHash(parsed.path, parsed.params);\n }\n\n static setUrlSidePanel(hash, sidepanel) {\n const parsed = HashNavigation.parseUrlHash(hash);\n parsed.path[0] = sidepanel;\n return HashNavigation.composeUrlHash(parsed.path, parsed.params);\n }\n\n static setUrlInfoPanel(hash, infopanel) {\n const parsed = HashNavigation.parseUrlHash(hash);\n if (infopanel) {\n parsed.params.info = infopanel;\n } else {\n delete parsed.params.info;\n }\n return HashNavigation.composeUrlHash(parsed.path, parsed.params);\n }\n\n static setUrlTopic(hash, topic) {\n const parsed = HashNavigation.parseUrlHash(hash);\n parsed.path[1] = topic;\n // Close InfoView on topic change.\n delete parsed.params.info;\n return HashNavigation.composeUrlHash(parsed.path, parsed.params);\n }\n}\n","// Short representation of time in the past.\nexport function shortDateFormat(then, locale) {\n locale = locale || window.navigator.userLanguage || window.navigator.language;\n const now = new Date();\n if (then.getFullYear() == now.getFullYear()) {\n // Same year.\n if (then.getMonth() == now.getMonth() && then.getDate() == now.getDate()) {\n // Same month and day, show time only.\n return then.toLocaleTimeString(locale, {hour12: false, hour: '2-digit', minute: '2-digit'});\n }\n // Different month and/or day, show month day, time.\n return then.toLocaleDateString(locale,\n {hour12: false, month: 'short', day: 'numeric', hour: '2-digit', minute: '2-digit'});\n }\n // Different year: just show the date.\n return then.toLocaleDateString(locale, {year: 'numeric', month: 'short', day: 'numeric'});\n}\n\n// Representation a date relative to now.\nexport function relativeDateFormat(then, locale) {\n locale = locale || window.navigator.userLanguage || window.navigator.language;\n const now = new Date();\n const thenDays = Math.floor((then.getTime() - then.getTimezoneOffset() * 60_000) / 86_400_000);\n const nowDays = Math.floor((now.getTime() - now.getTimezoneOffset() * 60_000) / 86_400_000);\n const diff = thenDays - nowDays;\n if (Math.abs(diff) < 2) {\n // Today or yesterday.\n return new Intl.RelativeTimeFormat(locale, { numeric: 'auto' }).format(diff, 'day')\n }\n // More than two days: just show the date.\n return new Intl.DateTimeFormat(locale).format(then);\n}\n\n// Convert seconds to [hours:]minutes:seconds, i.e. 156 sec -> 2:36, 3756 sec -> 1:02:36.\n// If fixedMins is true, then minutes are represented by at least two digits.\nexport function secondsToTime(seconds, fixedMin) {\n if (typeof seconds != 'number') {\n return '';\n }\n\n let min = (Math.floor(seconds / 60) | 0) % 60;\n let hours = Math.floor(seconds / 36000) | 0;\n\n if (fixedMin || hours > 0) {\n min = min < 10 ? `0${min}` : min;\n }\n let sec = (seconds | 0) % 60;\n sec = sec < 10 ? `0${sec}` : sec;\n if (hours == 0) {\n return `${min}:${sec}`;\n }\n return `${hours}:${min}:${sec}`;\n}\n\n// Convert a number of bytes to human-readable format.\nexport function bytesToHumanSize(bytes) {\n if (!bytes || bytes == 0) {\n return '0 Bytes';\n }\n\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB'];\n const bucket = Math.min(Math.floor(Math.log2(bytes) / 10) | 0, sizes.length-1);\n const count = bytes / Math.pow(1024, bucket);\n const round = bucket > 0 ? (count < 3 ? 2 : (count < 30 ? 1 : 0)) : 0;\n return count.toFixed(round) + ' ' + sizes[bucket];\n}\n\n// Shorten a file name to be under maxLength by clipping out the middle.\nexport function shortenFileName(filename, maxLength) {\n if (typeof filename != 'string') {\n return filename;\n }\n return filename.length > maxLength ?\n filename.slice(0, maxLength/2 - 1) + '…' + filename.slice(1 - maxLength/2) : filename;\n}\n\n// Get 32 bit integer hash value for a string. Ideally it should produce the same value\n// as Java's String#hash().\nfunction stringToColorHash(value) {\n let hash = 0;\n value = '' + value;\n for (let i = 0; i < value.length; i++) {\n hash = ((hash << 5) - hash) + value.charCodeAt(i);\n hash = hash & hash; // Convert to 32bit integer\n }\n return hash;\n}\n\n// User avatar letter color id.\nexport function letterTileColorId(userId) {\n return Math.abs(stringToColorHash(userId)) % 16;\n}\n\n// Converts user or topic ID to a CSS color class. Ideally it should produce the same color value as Java version.\n// params:\n// - {string} id: user or topic ID\n// - {boolean} light: light or dark version of the color.\n// - {boolean} fg: foreground (text) or background color.\nexport function idToColorClass(id, light, fg) {\n return (light ? 'lt-' : 'dk-') + (fg ? 'fg-' : 'bg-') + letterTileColorId(id);\n}\n\n// Takes ISO Alpha-2 country code, like 'US' and converts it to a flag emoji.\nexport function flagEmoji(countryCode) {\n const codePoints = countryCode\n .toUpperCase()\n .split('')\n .map(char => 0x1F1A5 + char.charCodeAt());\n return String.fromCodePoint(...codePoints);\n}\n","// Odds and ends\n\nimport { Tinode } from 'tinode-sdk';\n\n// Make shortcut icon appear with a green dot + show unread count in title.\nexport function updateFavicon(count) {\n const oldIcon = document.getElementById('shortcut-icon');\n const head = document.head || document.getElementsByTagName('head')[0];\n const newIcon = document.createElement('link');\n newIcon.type = 'image/png';\n newIcon.id = 'shortcut-icon';\n newIcon.rel = 'shortcut icon';\n newIcon.href = 'img/logo32x32' + (count > 0 ? 'a' : '') + '.png';\n if (oldIcon) {\n head.removeChild(oldIcon);\n }\n head.appendChild(newIcon);\n\n document.title = (count > 0 ? '('+count+') ' : '') + 'Tinode';\n}\n\n// Create theCard which represents user's or topic's \"public\" info.\nexport function theCard(fn, imageUrl, imageMimeType, note) {\n let card = null;\n fn = fn && fn.trim();\n note = note && note.trim();\n\n if (fn) {\n card = {\n fn: fn\n };\n }\n\n if (typeof note == 'string') {\n card = card || {};\n card.note = note ? note : Tinode.DEL_CHAR;\n }\n\n if (imageUrl) {\n card = card || {};\n let mimeType = imageMimeType;\n // Is this a data URL \"data:[][;base64],\"?\n const matches = /^data:(image\\/[-a-z0-9+.]+)?(;base64)?,/i.exec(imageUrl);\n if (matches) {\n mimeType = matches[1];\n card.photo = {\n data: imageUrl.substring(imageUrl.indexOf(',') + 1),\n ref: Tinode.DEL_CHAR\n };\n } else {\n card.photo = {\n data: Tinode.DEL_CHAR,\n ref: imageUrl\n };\n }\n card.photo.type = (mimeType || 'image/jpeg').substring('image/'.length);\n }\n\n return card;\n}\n\n// Deep-shallow compare two arrays: shallow compare each element.\nexport function arrayEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (!Array.isArray(a) || !Array.isArray(b)) {\n return false;\n }\n\n // Compare lengths first.\n if (a.length != b.length) {\n return false;\n }\n // Order of elements is ignored.\n a.sort();\n b.sort();\n for (let i = 0, l = a.length; i < l; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\n\n// Checks (loosely) if the given string is a phone. If so, returns the phone number in a format\n// as close to E.164 as possible.\nexport function asPhone(val) {\n val = val.trim();\n if (/^(?:\\+?(\\d{1,3}))?[- (.]*(\\d{3})[- ).]*(\\d{3})[- .]*(\\d{2})[- .]*(\\d{2})?$/.test(val)) {\n return val.replace(/[- ().]*/, '');\n }\n return null;\n}\n\n// Checks (loosely) if the given string is an email. If so returns the email.\nexport function asEmail(val) {\n val = val.trim();\n if (/^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$/.test(val)) {\n return val;\n }\n return null;\n}\n\n// Checks if URL is a relative url, i.e. has no 'scheme://', including the case of missing scheme '//'.\n// The scheme is expected to be RFC-compliant, e.g. [a-z][a-z0-9+.-]*\n// example.html - ok\n// https:example.com - not ok.\n// http:/example.com - not ok.\n// ' ↲ https://example.com' - not ok. (↲ means carriage return)\nexport function isUrlRelative(url) {\n return url && !/^\\s*([a-z][a-z0-9+.-]*:|\\/\\/)/im.test(url);\n}\n\n// Ensure URL does not present an XSS risk. Optional allowedSchemes may contain an array of\n// strings with permitted URL schemes, such as ['ftp', 'ftps']; otherwise accept http and https only.\nexport function sanitizeUrl(url, allowedSchemes) {\n if (typeof url != 'string') {\n return url;\n }\n\n // Strip control characters and whitespace. They are not valid URL characters anyway.\n url = url.replace(/[^\\x20-\\x7E]/gmi, '').trim();\n\n // Relative URLs are safe.\n // Relative URL does not start with ':', abcd123: or '//'.\n if (!/^([a-z][a-z0-9+.-]*:|\\/\\/)/i.test(url)) {\n return url;\n }\n\n // Blob URLs are safe.\n if (/^blob:http/.test(url)) {\n return url;\n }\n\n // Absolute URL. Accept only safe schemes, or no scheme.\n const schemes = Array.isArray(allowedSchemes) ? allowedSchemes.join('|') : 'http|https';\n const re = new RegExp('^((' + schemes + '):|//)', 'i');\n if (!re.test(url)) {\n return null;\n }\n\n return url;\n}\n\n// Ensure URL is suitable as a source like field: the URL must be a relative URL or\n// have http:, https:, blob: or data: scheme.\n// In case of data: scheme, the URL must must be of the right MIME type such as 'data:{mimeMajor}/XXXX;base64,'.\nexport function sanitizeUrlForMime(url, mimeMajor) {\n if (!url) {\n return null;\n }\n\n const sanitizedUrl = sanitizeUrl(url);\n if (sanitizedUrl) {\n return sanitizedUrl;\n }\n\n // Is this a data: URL of the appropriate mime type?\n const re = new RegExp(`data:${mimeMajor}\\/[a-z0-9.-]+;base64,`, 'i');\n if (re.test(url.trim())) {\n return url;\n }\n\n return null;\n}\n\n// Given message's received status, return name and color of a delivery indicator icon.\nexport function deliveryMarker(received) {\n switch (received) {\n case Tinode.MESSAGE_STATUS_SENDING:\n return { name: 'access_time' }; // watch face\n case Tinode.MESSAGE_STATUS_FAILED:\n return { name: 'warning', color: 'danger-color' }; // yellow icon /!\\\n case Tinode.MESSAGE_STATUS_SENT:\n return { name: 'done' }; // checkmark\n case Tinode.MESSAGE_STATUS_RECEIVED:\n return { name: 'done_all' }; // double checkmark\n case Tinode.MESSAGE_STATUS_READ:\n return { name: 'done_all', color: 'blue' }; // blue double checkmark\n }\n return null;\n}\n\n// Wraps a promise to make it cancelable.\n// The parameter can be either a promise or an error. If it's an error, the wrapped promise is\n// created in a rejected state.\nexport function cancelablePromise(promise) {\n let hasCanceled = false;\n\n const wrappedPromise = promise instanceof Error ?\n Promise.reject(promise) :\n new Promise((resolve, reject) => {\n promise.then(\n result => hasCanceled ? reject({isCanceled: true}) : resolve(result),\n error => hasCanceled ? reject({isCanceled: true}) : reject(error)\n );\n });\n\n return {\n promise: wrappedPromise,\n cancel() {\n hasCanceled = true;\n },\n };\n};\n\n// Clips string to the specified length.\nexport function clipStr(str, length) {\n return str && str.substring(0, length);\n}\n","// This is a generated file. Don't edit.\n\nexport const PACKAGE_VERSION = \"0.21.0\";\n","// Audio recorder widget.\n\nimport React from 'react';\nimport { defineMessages, injectIntl } from 'react-intl';\n\nimport { secondsToTime } from '../lib/strformat';\nimport { base64ToIntArray } from '../lib/blob-helpers';\n\n// Make canvas bigger than the element size to reduce blurring.\nconst CANVAS_UPSCALING = 2.0;\n// Thickness of a visualization bar.\nconst LINE_WIDTH = 3 * CANVAS_UPSCALING;\n// Spacing between two visualization bars.\nconst SPACING = 2 * CANVAS_UPSCALING;\n// Color of histogram bars.\nconst BAR_COLOR = '#888A';\nconst BAR_COLOR_DARK = '#666C';\nconst THUMB_COLOR = '#444E';\n// Minimum number of amplitude bars to draw.\nconst MIN_PREVIEW_LENGTH = 16;\n\nconst messages = defineMessages({\n icon_title_play: {\n id: 'icon_title_play',\n defaultMessage: 'Play recording',\n description: 'Icon tool tip for starting audio playback'\n }\n});\n\nclass AudioPlayer extends React.PureComponent {\n constructor(props) {\n super(props);\n\n let preview = base64ToIntArray(this.props.preview);\n if (!Array.isArray(preview) || preview.length < MIN_PREVIEW_LENGTH) {\n preview = null;\n }\n\n this.state = {\n canPlay: false,\n playing: false,\n currentTime: '0:00',\n duration: this.props.duration > 0 ? secondsToTime(this.props.duration / 1000) : '-:--',\n longMin: this.props.duration >= 600000,\n preview: preview\n };\n\n this.initAudio = this.initAudio.bind(this);\n this.initCanvas = this.initCanvas.bind(this);\n this.resampleBars = this.resampleBars.bind(this);\n this.visualize = this.visualize.bind(this);\n\n this.handlePlay = this.handlePlay.bind(this);\n this.handleSeek = this.handleSeek.bind(this);\n this.handleError = this.handleError.bind(this);\n\n this.audioPlayer = null;\n\n this.viewBuffer = [];\n this.canvasRef = React.createRef();\n }\n\n componentDidMount() {\n if (this.props.src) {\n this.initAudio();\n }\n\n this.initCanvas();\n }\n\n componentWillUnmount() {\n if (this.audioPlayer) {\n this.audioPlayer.oncanplay = null;\n this.audioPlayer.ontimeupdate = null;\n this.audioPlayer.onended = null;\n this.audioPlayer.pause();\n this.audioPlayer = null;\n }\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.src != prevProps.src) {\n this.initAudio();\n }\n\n if (this.props.preview != prevProps.preview) {\n let preview = base64ToIntArray(this.props.preview);\n if (!Array.isArray(preview) || preview.length < MIN_PREVIEW_LENGTH) {\n preview = null;\n }\n this.setState({preview: preview}, this.initCanvas);\n }\n }\n\n initAudio() {\n this.audioPlayer = new Audio(this.props.src);\n this.audioPlayer.oncanplay = _ => this.setState({canPlay: true});\n this.audioPlayer.ontimeupdate = _ => this.setState({\n currentTime: secondsToTime(this.audioPlayer.currentTime, this.state.longMin)\n });\n this.audioPlayer.onended = _ => {\n this.audioPlayer.currentTime = 0;\n this.setState({playing: false, currentTime: secondsToTime(0, this.state.longMin)})\n }\n }\n\n initCanvas() {\n // Force canvas aspect ratio to match one of the element + upscale canvas to reduce blurring.\n this.canvasRef.current.width = this.canvasRef.current.offsetWidth * CANVAS_UPSCALING;\n this.canvasRef.current.height = this.canvasRef.current.offsetHeight * CANVAS_UPSCALING;\n\n this.canvasContext = this.canvasRef.current.getContext('2d');\n this.canvasContext.lineCap = 'round';\n\n this.viewBuffer = this.resampleBars(this.state.preview);\n this.visualize();\n }\n\n // Draw amplitude of sound.\n visualize() {\n if (!this.canvasRef.current) {\n return;\n }\n\n const width = this.effectiveWidth;\n const height = this.canvasRef.current.height;\n\n this.canvasContext.lineWidth = LINE_WIDTH;\n\n const drawFrame = _ => {\n if (!this.canvasRef.current || !this.audioPlayer) {\n // The component is unmounted.\n return;\n }\n\n this.canvasContext.clearRect(0, 0, this.canvasRef.current.width, height);\n\n if (this.viewBuffer) {\n if (this.state.playing) {\n window.requestAnimationFrame(drawFrame);\n }\n\n // Current playback position.\n const thumbAt = this.props.duration ?\n Math.max(0, Math.min(this.audioPlayer.currentTime * 1000 / this.props.duration, 1)) * (width - LINE_WIDTH * 2) : -1;\n\n // Draw amplitude bars.\n this.canvasContext.beginPath();\n this.canvasContext.strokeStyle = BAR_COLOR_DARK;\n for (let i = 0; i < this.viewBuffer.length; i++) {\n let x = 1 + i * (LINE_WIDTH + SPACING) + LINE_WIDTH * 0.5;\n let y = this.viewBuffer[i] * height * 0.9;\n\n const color = x < thumbAt ? BAR_COLOR_DARK : BAR_COLOR;\n if (this.canvasContext.strokeStyle != color) {\n this.canvasContext.stroke();\n this.canvasContext.beginPath();\n this.canvasContext.strokeStyle = color;\n }\n\n this.canvasContext.moveTo(x, (height - y) * 0.5);\n this.canvasContext.lineTo(x, height * 0.5 + y * 0.5);\n }\n // Actually draw the bars on canvas.\n this.canvasContext.stroke();\n\n // Draw thumb.\n if (this.props.duration) {\n this.canvasContext.beginPath();\n this.canvasContext.arc(thumbAt + LINE_WIDTH * 2, height * 0.5, LINE_WIDTH * 2, 0, 2 * Math.PI);\n this.canvasContext.fillStyle = THUMB_COLOR;\n this.canvasContext.fill();\n }\n }\n }\n\n drawFrame();\n }\n\n // Quick and dirty downsampling of the original preview bars into a smaller (or equal) number of bars we can display here.\n resampleBars(original) {\n const dstCount = ((this.canvasRef.current.width - SPACING) / (LINE_WIDTH + SPACING)) | 0;\n // Remove extra padding on the right due to fractional bar which is not drawn.\n this.effectiveWidth = dstCount * (LINE_WIDTH + SPACING) + SPACING;\n\n if (!Array.isArray(original) || original.length == 0) {\n return Array.apply(null, Array(dstCount)).map(_ => 0.01);\n }\n\n const factor = original.length / dstCount;\n let amps = [];\n let maxAmp = -1;\n for (let i=0; i 0) {\n return amps.map(a => a / maxAmp);\n }\n return Array.apply(null, Array(dstCount)).map(_ => 0.01);\n }\n\n handlePlay(e) {\n e.preventDefault();\n if (!this.state.canPlay) {\n return;\n }\n if (this.state.playing) {\n this.audioPlayer.pause();\n this.setState({playing: false});\n } else {\n this.audioPlayer.play();\n this.setState({playing: true}, this.visualize);\n }\n }\n\n handleError(err) {\n console.error(err);\n }\n\n handleSeek(e) {\n e.preventDefault();\n if (e.target && this.props.duration) {\n const rect = e.target.getBoundingClientRect();\n const offset = (e.clientX - rect.left) / this.effectiveWidth * CANVAS_UPSCALING;\n this.audioPlayer.currentTime = this.props.duration * offset / 1000;\n this.setState({currentTime: secondsToTime(this.audioPlayer.currentTime, this.state.longMin)});\n if (!this.state.playing) {\n this.visualize();\n }\n }\n }\n\n render() {\n const playClass = 'material-icons' +\n (this.props.short ? '' : ' large') +\n (this.state.canPlay ? '' : ' disabled');\n const play = (\n {this.state.playing ? 'pause_circle' :\n (this.state.canPlay ? 'play_circle' : 'not_interested')}\n );\n return (
\n );\n }\n};\n","import React from 'react';\n\nimport LetterTile from './letter-tile.jsx';\nimport LoadSpinner from './load-spinner.jsx';\n\nimport { sanitizeUrlForMime } from '../lib/utils.js';\n\nimport { AVATAR_SIZE } from '../config.js';\n\nexport default class AvatarUpload extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n source: props.avatar\n };\n\n this.handleFileReceived = this.handleFileReceived.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.avatar != prevProps.avatar) {\n this.setState({source: this.props.avatar});\n }\n }\n\n handleFileReceived(e) {\n const image = e.target.files[0];\n this.props.onImageUpdated(image.type, URL.createObjectURL(image), image.name);\n // Clear the value so the same file can be uploaded again.\n e.target.value = '';\n }\n\n render() {\n // Randomize id value in case more than one AvatarUpload is shown\n // at the same time.\n const randId = 'file-input-avatar-' + ('' + Math.random()).substring(0, 4);\n const className = 'avatar-upload' + (this.props.readOnly ? ' read-only' : '');\n return (\n
\n );\n }\n}\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","module.exports = React;","module.exports = ReactDOM;","module.exports = ReactIntl;","module.exports = Tinode;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".prod.js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/umd/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t826: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunktinode_webapp\"] = globalThis[\"webpackChunktinode_webapp\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview Firebase constants. Some of these (@defines) can be overridden at compile-time.\r\n */\r\nconst CONSTANTS = {\r\n /**\r\n * @define {boolean} Whether this is the client Node.js SDK.\r\n */\r\n NODE_CLIENT: false,\r\n /**\r\n * @define {boolean} Whether this is the Admin Node.js SDK.\r\n */\r\n NODE_ADMIN: false,\r\n /**\r\n * Firebase SDK Version\r\n */\r\n SDK_VERSION: '${JSCORE_VERSION}'\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Throws an error if the provided assertion is falsy\r\n */\r\nconst assert = function (assertion, message) {\r\n if (!assertion) {\r\n throw assertionError(message);\r\n }\r\n};\r\n/**\r\n * Returns an Error object suitable for throwing.\r\n */\r\nconst assertionError = function (message) {\r\n return new Error('Firebase Database (' +\r\n CONSTANTS.SDK_VERSION +\r\n ') INTERNAL ASSERT FAILED: ' +\r\n message);\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst stringToByteArray$1 = function (str) {\r\n // TODO(user): Use native implementations if/when available\r\n const out = [];\r\n let p = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n let c = str.charCodeAt(i);\r\n if (c < 128) {\r\n out[p++] = c;\r\n }\r\n else if (c < 2048) {\r\n out[p++] = (c >> 6) | 192;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else if ((c & 0xfc00) === 0xd800 &&\r\n i + 1 < str.length &&\r\n (str.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\r\n // Surrogate Pair\r\n c = 0x10000 + ((c & 0x03ff) << 10) + (str.charCodeAt(++i) & 0x03ff);\r\n out[p++] = (c >> 18) | 240;\r\n out[p++] = ((c >> 12) & 63) | 128;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else {\r\n out[p++] = (c >> 12) | 224;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n }\r\n return out;\r\n};\r\n/**\r\n * Turns an array of numbers into the string given by the concatenation of the\r\n * characters to which the numbers correspond.\r\n * @param bytes Array of numbers representing characters.\r\n * @return Stringification of the array.\r\n */\r\nconst byteArrayToString = function (bytes) {\r\n // TODO(user): Use native implementations if/when available\r\n const out = [];\r\n let pos = 0, c = 0;\r\n while (pos < bytes.length) {\r\n const c1 = bytes[pos++];\r\n if (c1 < 128) {\r\n out[c++] = String.fromCharCode(c1);\r\n }\r\n else if (c1 > 191 && c1 < 224) {\r\n const c2 = bytes[pos++];\r\n out[c++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));\r\n }\r\n else if (c1 > 239 && c1 < 365) {\r\n // Surrogate Pair\r\n const c2 = bytes[pos++];\r\n const c3 = bytes[pos++];\r\n const c4 = bytes[pos++];\r\n const u = (((c1 & 7) << 18) | ((c2 & 63) << 12) | ((c3 & 63) << 6) | (c4 & 63)) -\r\n 0x10000;\r\n out[c++] = String.fromCharCode(0xd800 + (u >> 10));\r\n out[c++] = String.fromCharCode(0xdc00 + (u & 1023));\r\n }\r\n else {\r\n const c2 = bytes[pos++];\r\n const c3 = bytes[pos++];\r\n out[c++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\r\n }\r\n }\r\n return out.join('');\r\n};\r\n// We define it as an object literal instead of a class because a class compiled down to es5 can't\r\n// be treeshaked. https://github.com/rollup/rollup/issues/1691\r\n// Static lookup maps, lazily populated by init_()\r\nconst base64 = {\r\n /**\r\n * Maps bytes to characters.\r\n */\r\n byteToCharMap_: null,\r\n /**\r\n * Maps characters to bytes.\r\n */\r\n charToByteMap_: null,\r\n /**\r\n * Maps bytes to websafe characters.\r\n * @private\r\n */\r\n byteToCharMapWebSafe_: null,\r\n /**\r\n * Maps websafe characters to bytes.\r\n * @private\r\n */\r\n charToByteMapWebSafe_: null,\r\n /**\r\n * Our default alphabet, shared between\r\n * ENCODED_VALS and ENCODED_VALS_WEBSAFE\r\n */\r\n ENCODED_VALS_BASE: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789',\r\n /**\r\n * Our default alphabet. Value 64 (=) is special; it means \"nothing.\"\r\n */\r\n get ENCODED_VALS() {\r\n return this.ENCODED_VALS_BASE + '+/=';\r\n },\r\n /**\r\n * Our websafe alphabet.\r\n */\r\n get ENCODED_VALS_WEBSAFE() {\r\n return this.ENCODED_VALS_BASE + '-_.';\r\n },\r\n /**\r\n * Whether this browser supports the atob and btoa functions. This extension\r\n * started at Mozilla but is now implemented by many browsers. We use the\r\n * ASSUME_* variables to avoid pulling in the full useragent detection library\r\n * but still allowing the standard per-browser compilations.\r\n *\r\n */\r\n HAS_NATIVE_SUPPORT: typeof atob === 'function',\r\n /**\r\n * Base64-encode an array of bytes.\r\n *\r\n * @param input An array of bytes (numbers with\r\n * value in [0, 255]) to encode.\r\n * @param webSafe Boolean indicating we should use the\r\n * alternative alphabet.\r\n * @return The base64 encoded string.\r\n */\r\n encodeByteArray(input, webSafe) {\r\n if (!Array.isArray(input)) {\r\n throw Error('encodeByteArray takes an array as a parameter');\r\n }\r\n this.init_();\r\n const byteToCharMap = webSafe\r\n ? this.byteToCharMapWebSafe_\r\n : this.byteToCharMap_;\r\n const output = [];\r\n for (let i = 0; i < input.length; i += 3) {\r\n const byte1 = input[i];\r\n const haveByte2 = i + 1 < input.length;\r\n const byte2 = haveByte2 ? input[i + 1] : 0;\r\n const haveByte3 = i + 2 < input.length;\r\n const byte3 = haveByte3 ? input[i + 2] : 0;\r\n const outByte1 = byte1 >> 2;\r\n const outByte2 = ((byte1 & 0x03) << 4) | (byte2 >> 4);\r\n let outByte3 = ((byte2 & 0x0f) << 2) | (byte3 >> 6);\r\n let outByte4 = byte3 & 0x3f;\r\n if (!haveByte3) {\r\n outByte4 = 64;\r\n if (!haveByte2) {\r\n outByte3 = 64;\r\n }\r\n }\r\n output.push(byteToCharMap[outByte1], byteToCharMap[outByte2], byteToCharMap[outByte3], byteToCharMap[outByte4]);\r\n }\r\n return output.join('');\r\n },\r\n /**\r\n * Base64-encode a string.\r\n *\r\n * @param input A string to encode.\r\n * @param webSafe If true, we should use the\r\n * alternative alphabet.\r\n * @return The base64 encoded string.\r\n */\r\n encodeString(input, webSafe) {\r\n // Shortcut for Mozilla browsers that implement\r\n // a native base64 encoder in the form of \"btoa/atob\"\r\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\r\n return btoa(input);\r\n }\r\n return this.encodeByteArray(stringToByteArray$1(input), webSafe);\r\n },\r\n /**\r\n * Base64-decode a string.\r\n *\r\n * @param input to decode.\r\n * @param webSafe True if we should use the\r\n * alternative alphabet.\r\n * @return string representing the decoded value.\r\n */\r\n decodeString(input, webSafe) {\r\n // Shortcut for Mozilla browsers that implement\r\n // a native base64 encoder in the form of \"btoa/atob\"\r\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\r\n return atob(input);\r\n }\r\n return byteArrayToString(this.decodeStringToByteArray(input, webSafe));\r\n },\r\n /**\r\n * Base64-decode a string.\r\n *\r\n * In base-64 decoding, groups of four characters are converted into three\r\n * bytes. If the encoder did not apply padding, the input length may not\r\n * be a multiple of 4.\r\n *\r\n * In this case, the last group will have fewer than 4 characters, and\r\n * padding will be inferred. If the group has one or two characters, it decodes\r\n * to one byte. If the group has three characters, it decodes to two bytes.\r\n *\r\n * @param input Input to decode.\r\n * @param webSafe True if we should use the web-safe alphabet.\r\n * @return bytes representing the decoded value.\r\n */\r\n decodeStringToByteArray(input, webSafe) {\r\n this.init_();\r\n const charToByteMap = webSafe\r\n ? this.charToByteMapWebSafe_\r\n : this.charToByteMap_;\r\n const output = [];\r\n for (let i = 0; i < input.length;) {\r\n const byte1 = charToByteMap[input.charAt(i++)];\r\n const haveByte2 = i < input.length;\r\n const byte2 = haveByte2 ? charToByteMap[input.charAt(i)] : 0;\r\n ++i;\r\n const haveByte3 = i < input.length;\r\n const byte3 = haveByte3 ? charToByteMap[input.charAt(i)] : 64;\r\n ++i;\r\n const haveByte4 = i < input.length;\r\n const byte4 = haveByte4 ? charToByteMap[input.charAt(i)] : 64;\r\n ++i;\r\n if (byte1 == null || byte2 == null || byte3 == null || byte4 == null) {\r\n throw Error();\r\n }\r\n const outByte1 = (byte1 << 2) | (byte2 >> 4);\r\n output.push(outByte1);\r\n if (byte3 !== 64) {\r\n const outByte2 = ((byte2 << 4) & 0xf0) | (byte3 >> 2);\r\n output.push(outByte2);\r\n if (byte4 !== 64) {\r\n const outByte3 = ((byte3 << 6) & 0xc0) | byte4;\r\n output.push(outByte3);\r\n }\r\n }\r\n }\r\n return output;\r\n },\r\n /**\r\n * Lazy static initialization function. Called before\r\n * accessing any of the static map variables.\r\n * @private\r\n */\r\n init_() {\r\n if (!this.byteToCharMap_) {\r\n this.byteToCharMap_ = {};\r\n this.charToByteMap_ = {};\r\n this.byteToCharMapWebSafe_ = {};\r\n this.charToByteMapWebSafe_ = {};\r\n // We want quick mappings back and forth, so we precompute two maps.\r\n for (let i = 0; i < this.ENCODED_VALS.length; i++) {\r\n this.byteToCharMap_[i] = this.ENCODED_VALS.charAt(i);\r\n this.charToByteMap_[this.byteToCharMap_[i]] = i;\r\n this.byteToCharMapWebSafe_[i] = this.ENCODED_VALS_WEBSAFE.charAt(i);\r\n this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[i]] = i;\r\n // Be forgiving when decoding and correctly decode both encodings.\r\n if (i >= this.ENCODED_VALS_BASE.length) {\r\n this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(i)] = i;\r\n this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(i)] = i;\r\n }\r\n }\r\n }\r\n }\r\n};\r\n/**\r\n * URL-safe base64 encoding\r\n */\r\nconst base64Encode = function (str) {\r\n const utf8Bytes = stringToByteArray$1(str);\r\n return base64.encodeByteArray(utf8Bytes, true);\r\n};\r\n/**\r\n * URL-safe base64 encoding (without \".\" padding in the end).\r\n * e.g. Used in JSON Web Token (JWT) parts.\r\n */\r\nconst base64urlEncodeWithoutPadding = function (str) {\r\n // Use base64url encoding and remove padding in the end (dot characters).\r\n return base64Encode(str).replace(/\\./g, '');\r\n};\r\n/**\r\n * URL-safe base64 decoding\r\n *\r\n * NOTE: DO NOT use the global atob() function - it does NOT support the\r\n * base64Url variant encoding.\r\n *\r\n * @param str To be decoded\r\n * @return Decoded result, if possible\r\n */\r\nconst base64Decode = function (str) {\r\n try {\r\n return base64.decodeString(str, true);\r\n }\r\n catch (e) {\r\n console.error('base64Decode failed: ', e);\r\n }\r\n return null;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Do a deep-copy of basic JavaScript Objects or Arrays.\r\n */\r\nfunction deepCopy(value) {\r\n return deepExtend(undefined, value);\r\n}\r\n/**\r\n * Copy properties from source to target (recursively allows extension\r\n * of Objects and Arrays). Scalar values in the target are over-written.\r\n * If target is undefined, an object of the appropriate type will be created\r\n * (and returned).\r\n *\r\n * We recursively copy all child properties of plain Objects in the source- so\r\n * that namespace- like dictionaries are merged.\r\n *\r\n * Note that the target can be a function, in which case the properties in\r\n * the source Object are copied onto it as static properties of the Function.\r\n *\r\n * Note: we don't merge __proto__ to prevent prototype pollution\r\n */\r\nfunction deepExtend(target, source) {\r\n if (!(source instanceof Object)) {\r\n return source;\r\n }\r\n switch (source.constructor) {\r\n case Date:\r\n // Treat Dates like scalars; if the target date object had any child\r\n // properties - they will be lost!\r\n const dateValue = source;\r\n return new Date(dateValue.getTime());\r\n case Object:\r\n if (target === undefined) {\r\n target = {};\r\n }\r\n break;\r\n case Array:\r\n // Always copy the array source and overwrite the target.\r\n target = [];\r\n break;\r\n default:\r\n // Not a plain Object - treat it as a scalar.\r\n return source;\r\n }\r\n for (const prop in source) {\r\n // use isValidKey to guard against prototype pollution. See https://snyk.io/vuln/SNYK-JS-LODASH-450202\r\n if (!source.hasOwnProperty(prop) || !isValidKey(prop)) {\r\n continue;\r\n }\r\n target[prop] = deepExtend(target[prop], source[prop]);\r\n }\r\n return target;\r\n}\r\nfunction isValidKey(key) {\r\n return key !== '__proto__';\r\n}\n\n/**\r\n * @license\r\n * Copyright 2022 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Polyfill for `globalThis` object.\r\n * @returns the `globalThis` object for the given environment.\r\n * @public\r\n */\r\nfunction getGlobal() {\r\n if (typeof self !== 'undefined') {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined') {\r\n return window;\r\n }\r\n if (typeof global !== 'undefined') {\r\n return global;\r\n }\r\n throw new Error('Unable to locate global object.');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2022 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst getDefaultsFromGlobal = () => getGlobal().__FIREBASE_DEFAULTS__;\r\n/**\r\n * Attempt to read defaults from a JSON string provided to\r\n * process(.)env(.)__FIREBASE_DEFAULTS__ or a JSON file whose path is in\r\n * process(.)env(.)__FIREBASE_DEFAULTS_PATH__\r\n * The dots are in parens because certain compilers (Vite?) cannot\r\n * handle seeing that variable in comments.\r\n * See https://github.com/firebase/firebase-js-sdk/issues/6838\r\n */\r\nconst getDefaultsFromEnvVariable = () => {\r\n if (typeof process === 'undefined' || typeof process.env === 'undefined') {\r\n return;\r\n }\r\n const defaultsJsonString = process.env.__FIREBASE_DEFAULTS__;\r\n if (defaultsJsonString) {\r\n return JSON.parse(defaultsJsonString);\r\n }\r\n};\r\nconst getDefaultsFromCookie = () => {\r\n if (typeof document === 'undefined') {\r\n return;\r\n }\r\n let match;\r\n try {\r\n match = document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/);\r\n }\r\n catch (e) {\r\n // Some environments such as Angular Universal SSR have a\r\n // `document` object but error on accessing `document.cookie`.\r\n return;\r\n }\r\n const decoded = match && base64Decode(match[1]);\r\n return decoded && JSON.parse(decoded);\r\n};\r\n/**\r\n * Get the __FIREBASE_DEFAULTS__ object. It checks in order:\r\n * (1) if such an object exists as a property of `globalThis`\r\n * (2) if such an object was provided on a shell environment variable\r\n * (3) if such an object exists in a cookie\r\n * @public\r\n */\r\nconst getDefaults = () => {\r\n try {\r\n return (getDefaultsFromGlobal() ||\r\n getDefaultsFromEnvVariable() ||\r\n getDefaultsFromCookie());\r\n }\r\n catch (e) {\r\n /**\r\n * Catch-all for being unable to get __FIREBASE_DEFAULTS__ due\r\n * to any environment case we have not accounted for. Log to\r\n * info instead of swallowing so we can find these unknown cases\r\n * and add paths for them if needed.\r\n */\r\n console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`);\r\n return;\r\n }\r\n};\r\n/**\r\n * Returns emulator host stored in the __FIREBASE_DEFAULTS__ object\r\n * for the given product.\r\n * @returns a URL host formatted like `127.0.0.1:9999` or `[::1]:4000` if available\r\n * @public\r\n */\r\nconst getDefaultEmulatorHost = (productName) => { var _a, _b; return (_b = (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a.emulatorHosts) === null || _b === void 0 ? void 0 : _b[productName]; };\r\n/**\r\n * Returns emulator hostname and port stored in the __FIREBASE_DEFAULTS__ object\r\n * for the given product.\r\n * @returns a pair of hostname and port like `[\"::1\", 4000]` if available\r\n * @public\r\n */\r\nconst getDefaultEmulatorHostnameAndPort = (productName) => {\r\n const host = getDefaultEmulatorHost(productName);\r\n if (!host) {\r\n return undefined;\r\n }\r\n const separatorIndex = host.lastIndexOf(':'); // Finding the last since IPv6 addr also has colons.\r\n if (separatorIndex <= 0 || separatorIndex + 1 === host.length) {\r\n throw new Error(`Invalid host ${host} with no separate hostname and port!`);\r\n }\r\n // eslint-disable-next-line no-restricted-globals\r\n const port = parseInt(host.substring(separatorIndex + 1), 10);\r\n if (host[0] === '[') {\r\n // Bracket-quoted `[ipv6addr]:port` => return \"ipv6addr\" (without brackets).\r\n return [host.substring(1, separatorIndex - 1), port];\r\n }\r\n else {\r\n return [host.substring(0, separatorIndex), port];\r\n }\r\n};\r\n/**\r\n * Returns Firebase app config stored in the __FIREBASE_DEFAULTS__ object.\r\n * @public\r\n */\r\nconst getDefaultAppConfig = () => { var _a; return (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a.config; };\r\n/**\r\n * Returns an experimental setting on the __FIREBASE_DEFAULTS__ object (properties\r\n * prefixed by \"_\")\r\n * @public\r\n */\r\nconst getExperimentalSetting = (name) => { var _a; return (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a[`_${name}`]; };\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nclass Deferred {\r\n constructor() {\r\n this.reject = () => { };\r\n this.resolve = () => { };\r\n this.promise = new Promise((resolve, reject) => {\r\n this.resolve = resolve;\r\n this.reject = reject;\r\n });\r\n }\r\n /**\r\n * Our API internals are not promiseified and cannot because our callback APIs have subtle expectations around\r\n * invoking promises inline, which Promises are forbidden to do. This method accepts an optional node-style callback\r\n * and returns a node-style callback which will resolve or reject the Deferred's promise.\r\n */\r\n wrapCallback(callback) {\r\n return (error, value) => {\r\n if (error) {\r\n this.reject(error);\r\n }\r\n else {\r\n this.resolve(value);\r\n }\r\n if (typeof callback === 'function') {\r\n // Attaching noop handler just in case developer wasn't expecting\r\n // promises\r\n this.promise.catch(() => { });\r\n // Some of our callbacks don't expect a value and our own tests\r\n // assert that the parameter length is 1\r\n if (callback.length === 1) {\r\n callback(error);\r\n }\r\n else {\r\n callback(error, value);\r\n }\r\n }\r\n };\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction createMockUserToken(token, projectId) {\r\n if (token.uid) {\r\n throw new Error('The \"uid\" field is no longer supported by mockUserToken. Please use \"sub\" instead for Firebase Auth User ID.');\r\n }\r\n // Unsecured JWTs use \"none\" as the algorithm.\r\n const header = {\r\n alg: 'none',\r\n type: 'JWT'\r\n };\r\n const project = projectId || 'demo-project';\r\n const iat = token.iat || 0;\r\n const sub = token.sub || token.user_id;\r\n if (!sub) {\r\n throw new Error(\"mockUserToken must contain 'sub' or 'user_id' field!\");\r\n }\r\n const payload = Object.assign({ \r\n // Set all required fields to decent defaults\r\n iss: `https://securetoken.google.com/${project}`, aud: project, iat, exp: iat + 3600, auth_time: iat, sub, user_id: sub, firebase: {\r\n sign_in_provider: 'custom',\r\n identities: {}\r\n } }, token);\r\n // Unsecured JWTs use the empty string as a signature.\r\n const signature = '';\r\n return [\r\n base64urlEncodeWithoutPadding(JSON.stringify(header)),\r\n base64urlEncodeWithoutPadding(JSON.stringify(payload)),\r\n signature\r\n ].join('.');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns navigator.userAgent string or '' if it's not defined.\r\n * @return user agent string\r\n */\r\nfunction getUA() {\r\n if (typeof navigator !== 'undefined' &&\r\n typeof navigator['userAgent'] === 'string') {\r\n return navigator['userAgent'];\r\n }\r\n else {\r\n return '';\r\n }\r\n}\r\n/**\r\n * Detect Cordova / PhoneGap / Ionic frameworks on a mobile device.\r\n *\r\n * Deliberately does not rely on checking `file://` URLs (as this fails PhoneGap\r\n * in the Ripple emulator) nor Cordova `onDeviceReady`, which would normally\r\n * wait for a callback.\r\n */\r\nfunction isMobileCordova() {\r\n return (typeof window !== 'undefined' &&\r\n // @ts-ignore Setting up an broadly applicable index signature for Window\r\n // just to deal with this case would probably be a bad idea.\r\n !!(window['cordova'] || window['phonegap'] || window['PhoneGap']) &&\r\n /ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(getUA()));\r\n}\r\n/**\r\n * Detect Node.js.\r\n *\r\n * @return true if Node.js environment is detected or specified.\r\n */\r\n// Node detection logic from: https://github.com/iliakan/detect-node/\r\nfunction isNode() {\r\n var _a;\r\n const forceEnvironment = (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a.forceEnvironment;\r\n if (forceEnvironment === 'node') {\r\n return true;\r\n }\r\n else if (forceEnvironment === 'browser') {\r\n return false;\r\n }\r\n try {\r\n return (Object.prototype.toString.call(global.process) === '[object process]');\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n}\r\n/**\r\n * Detect Browser Environment\r\n */\r\nfunction isBrowser() {\r\n return typeof self === 'object' && self.self === self;\r\n}\r\nfunction isBrowserExtension() {\r\n const runtime = typeof chrome === 'object'\r\n ? chrome.runtime\r\n : typeof browser === 'object'\r\n ? browser.runtime\r\n : undefined;\r\n return typeof runtime === 'object' && runtime.id !== undefined;\r\n}\r\n/**\r\n * Detect React Native.\r\n *\r\n * @return true if ReactNative environment is detected.\r\n */\r\nfunction isReactNative() {\r\n return (typeof navigator === 'object' && navigator['product'] === 'ReactNative');\r\n}\r\n/** Detects Electron apps. */\r\nfunction isElectron() {\r\n return getUA().indexOf('Electron/') >= 0;\r\n}\r\n/** Detects Internet Explorer. */\r\nfunction isIE() {\r\n const ua = getUA();\r\n return ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\r\n}\r\n/** Detects Universal Windows Platform apps. */\r\nfunction isUWP() {\r\n return getUA().indexOf('MSAppHost/') >= 0;\r\n}\r\n/**\r\n * Detect whether the current SDK build is the Node version.\r\n *\r\n * @return true if it's the Node SDK build.\r\n */\r\nfunction isNodeSdk() {\r\n return CONSTANTS.NODE_CLIENT === true || CONSTANTS.NODE_ADMIN === true;\r\n}\r\n/** Returns true if we are running in Safari. */\r\nfunction isSafari() {\r\n return (!isNode() &&\r\n navigator.userAgent.includes('Safari') &&\r\n !navigator.userAgent.includes('Chrome'));\r\n}\r\n/**\r\n * This method checks if indexedDB is supported by current browser/service worker context\r\n * @return true if indexedDB is supported by current browser/service worker context\r\n */\r\nfunction isIndexedDBAvailable() {\r\n try {\r\n return typeof indexedDB === 'object';\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n}\r\n/**\r\n * This method validates browser/sw context for indexedDB by opening a dummy indexedDB database and reject\r\n * if errors occur during the database open operation.\r\n *\r\n * @throws exception if current browser/sw context can't run idb.open (ex: Safari iframe, Firefox\r\n * private browsing)\r\n */\r\nfunction validateIndexedDBOpenable() {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n let preExist = true;\r\n const DB_CHECK_NAME = 'validate-browser-context-for-indexeddb-analytics-module';\r\n const request = self.indexedDB.open(DB_CHECK_NAME);\r\n request.onsuccess = () => {\r\n request.result.close();\r\n // delete database only when it doesn't pre-exist\r\n if (!preExist) {\r\n self.indexedDB.deleteDatabase(DB_CHECK_NAME);\r\n }\r\n resolve(true);\r\n };\r\n request.onupgradeneeded = () => {\r\n preExist = false;\r\n };\r\n request.onerror = () => {\r\n var _a;\r\n reject(((_a = request.error) === null || _a === void 0 ? void 0 : _a.message) || '');\r\n };\r\n }\r\n catch (error) {\r\n reject(error);\r\n }\r\n });\r\n}\r\n/**\r\n *\r\n * This method checks whether cookie is enabled within current browser\r\n * @return true if cookie is enabled within current browser\r\n */\r\nfunction areCookiesEnabled() {\r\n if (typeof navigator === 'undefined' || !navigator.cookieEnabled) {\r\n return false;\r\n }\r\n return true;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview Standardized Firebase Error.\r\n *\r\n * Usage:\r\n *\r\n * // Typescript string literals for type-safe codes\r\n * type Err =\r\n * 'unknown' |\r\n * 'object-not-found'\r\n * ;\r\n *\r\n * // Closure enum for type-safe error codes\r\n * // at-enum {string}\r\n * var Err = {\r\n * UNKNOWN: 'unknown',\r\n * OBJECT_NOT_FOUND: 'object-not-found',\r\n * }\r\n *\r\n * let errors: Map = {\r\n * 'generic-error': \"Unknown error\",\r\n * 'file-not-found': \"Could not find file: {$file}\",\r\n * };\r\n *\r\n * // Type-safe function - must pass a valid error code as param.\r\n * let error = new ErrorFactory('service', 'Service', errors);\r\n *\r\n * ...\r\n * throw error.create(Err.GENERIC);\r\n * ...\r\n * throw error.create(Err.FILE_NOT_FOUND, {'file': fileName});\r\n * ...\r\n * // Service: Could not file file: foo.txt (service/file-not-found).\r\n *\r\n * catch (e) {\r\n * assert(e.message === \"Could not find file: foo.txt.\");\r\n * if ((e as FirebaseError)?.code === 'service/file-not-found') {\r\n * console.log(\"Could not read file: \" + e['file']);\r\n * }\r\n * }\r\n */\r\nconst ERROR_NAME = 'FirebaseError';\r\n// Based on code from:\r\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Custom_Error_Types\r\nclass FirebaseError extends Error {\r\n constructor(\r\n /** The error code for this error. */\r\n code, message, \r\n /** Custom data for this error. */\r\n customData) {\r\n super(message);\r\n this.code = code;\r\n this.customData = customData;\r\n /** The custom name for all FirebaseErrors. */\r\n this.name = ERROR_NAME;\r\n // Fix For ES5\r\n // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\r\n Object.setPrototypeOf(this, FirebaseError.prototype);\r\n // Maintains proper stack trace for where our error was thrown.\r\n // Only available on V8.\r\n if (Error.captureStackTrace) {\r\n Error.captureStackTrace(this, ErrorFactory.prototype.create);\r\n }\r\n }\r\n}\r\nclass ErrorFactory {\r\n constructor(service, serviceName, errors) {\r\n this.service = service;\r\n this.serviceName = serviceName;\r\n this.errors = errors;\r\n }\r\n create(code, ...data) {\r\n const customData = data[0] || {};\r\n const fullCode = `${this.service}/${code}`;\r\n const template = this.errors[code];\r\n const message = template ? replaceTemplate(template, customData) : 'Error';\r\n // Service Name: Error message (service/code).\r\n const fullMessage = `${this.serviceName}: ${message} (${fullCode}).`;\r\n const error = new FirebaseError(fullCode, fullMessage, customData);\r\n return error;\r\n }\r\n}\r\nfunction replaceTemplate(template, data) {\r\n return template.replace(PATTERN, (_, key) => {\r\n const value = data[key];\r\n return value != null ? String(value) : `<${key}?>`;\r\n });\r\n}\r\nconst PATTERN = /\\{\\$([^}]+)}/g;\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Evaluates a JSON string into a javascript object.\r\n *\r\n * @param {string} str A string containing JSON.\r\n * @return {*} The javascript object representing the specified JSON.\r\n */\r\nfunction jsonEval(str) {\r\n return JSON.parse(str);\r\n}\r\n/**\r\n * Returns JSON representing a javascript object.\r\n * @param {*} data Javascript object to be stringified.\r\n * @return {string} The JSON contents of the object.\r\n */\r\nfunction stringify(data) {\r\n return JSON.stringify(data);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Decodes a Firebase auth. token into constituent parts.\r\n *\r\n * Notes:\r\n * - May return with invalid / incomplete claims if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst decode = function (token) {\r\n let header = {}, claims = {}, data = {}, signature = '';\r\n try {\r\n const parts = token.split('.');\r\n header = jsonEval(base64Decode(parts[0]) || '');\r\n claims = jsonEval(base64Decode(parts[1]) || '');\r\n signature = parts[2];\r\n data = claims['d'] || {};\r\n delete claims['d'];\r\n }\r\n catch (e) { }\r\n return {\r\n header,\r\n claims,\r\n data,\r\n signature\r\n };\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its time-based claims. Will return true if the\r\n * token is within the time window authorized by the 'nbf' (not-before) and 'iat' (issued-at) claims.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst isValidTimestamp = function (token) {\r\n const claims = decode(token).claims;\r\n const now = Math.floor(new Date().getTime() / 1000);\r\n let validSince = 0, validUntil = 0;\r\n if (typeof claims === 'object') {\r\n if (claims.hasOwnProperty('nbf')) {\r\n validSince = claims['nbf'];\r\n }\r\n else if (claims.hasOwnProperty('iat')) {\r\n validSince = claims['iat'];\r\n }\r\n if (claims.hasOwnProperty('exp')) {\r\n validUntil = claims['exp'];\r\n }\r\n else {\r\n // token will expire after 24h by default\r\n validUntil = validSince + 86400;\r\n }\r\n }\r\n return (!!now &&\r\n !!validSince &&\r\n !!validUntil &&\r\n now >= validSince &&\r\n now <= validUntil);\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and returns its issued at time if valid, null otherwise.\r\n *\r\n * Notes:\r\n * - May return null if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst issuedAtTime = function (token) {\r\n const claims = decode(token).claims;\r\n if (typeof claims === 'object' && claims.hasOwnProperty('iat')) {\r\n return claims['iat'];\r\n }\r\n return null;\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its format. Expects a valid issued-at time.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst isValidFormat = function (token) {\r\n const decoded = decode(token), claims = decoded.claims;\r\n return !!claims && typeof claims === 'object' && claims.hasOwnProperty('iat');\r\n};\r\n/**\r\n * Attempts to peer into an auth token and determine if it's an admin auth token by looking at the claims portion.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst isAdmin = function (token) {\r\n const claims = decode(token).claims;\r\n return typeof claims === 'object' && claims['admin'] === true;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction contains(obj, key) {\r\n return Object.prototype.hasOwnProperty.call(obj, key);\r\n}\r\nfunction safeGet(obj, key) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n return obj[key];\r\n }\r\n else {\r\n return undefined;\r\n }\r\n}\r\nfunction isEmpty(obj) {\r\n for (const key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction map(obj, fn, contextObj) {\r\n const res = {};\r\n for (const key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n res[key] = fn.call(contextObj, obj[key], key, obj);\r\n }\r\n }\r\n return res;\r\n}\r\n/**\r\n * Deep equal two objects. Support Arrays and Objects.\r\n */\r\nfunction deepEqual(a, b) {\r\n if (a === b) {\r\n return true;\r\n }\r\n const aKeys = Object.keys(a);\r\n const bKeys = Object.keys(b);\r\n for (const k of aKeys) {\r\n if (!bKeys.includes(k)) {\r\n return false;\r\n }\r\n const aProp = a[k];\r\n const bProp = b[k];\r\n if (isObject(aProp) && isObject(bProp)) {\r\n if (!deepEqual(aProp, bProp)) {\r\n return false;\r\n }\r\n }\r\n else if (aProp !== bProp) {\r\n return false;\r\n }\r\n }\r\n for (const k of bKeys) {\r\n if (!aKeys.includes(k)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction isObject(thing) {\r\n return thing !== null && typeof thing === 'object';\r\n}\n\n/**\r\n * @license\r\n * Copyright 2022 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Rejects if the given promise doesn't resolve in timeInMS milliseconds.\r\n * @internal\r\n */\r\nfunction promiseWithTimeout(promise, timeInMS = 2000) {\r\n const deferredPromise = new Deferred();\r\n setTimeout(() => deferredPromise.reject('timeout!'), timeInMS);\r\n promise.then(deferredPromise.resolve, deferredPromise.reject);\r\n return deferredPromise.promise;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns a querystring-formatted string (e.g. &arg=val&arg2=val2) from a\r\n * params object (e.g. {arg: 'val', arg2: 'val2'})\r\n * Note: You must prepend it with ? when adding it to a URL.\r\n */\r\nfunction querystring(querystringParams) {\r\n const params = [];\r\n for (const [key, value] of Object.entries(querystringParams)) {\r\n if (Array.isArray(value)) {\r\n value.forEach(arrayVal => {\r\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(arrayVal));\r\n });\r\n }\r\n else {\r\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));\r\n }\r\n }\r\n return params.length ? '&' + params.join('&') : '';\r\n}\r\n/**\r\n * Decodes a querystring (e.g. ?arg=val&arg2=val2) into a params object\r\n * (e.g. {arg: 'val', arg2: 'val2'})\r\n */\r\nfunction querystringDecode(querystring) {\r\n const obj = {};\r\n const tokens = querystring.replace(/^\\?/, '').split('&');\r\n tokens.forEach(token => {\r\n if (token) {\r\n const [key, value] = token.split('=');\r\n obj[decodeURIComponent(key)] = decodeURIComponent(value);\r\n }\r\n });\r\n return obj;\r\n}\r\n/**\r\n * Extract the query string part of a URL, including the leading question mark (if present).\r\n */\r\nfunction extractQuerystring(url) {\r\n const queryStart = url.indexOf('?');\r\n if (!queryStart) {\r\n return '';\r\n }\r\n const fragmentStart = url.indexOf('#', queryStart);\r\n return url.substring(queryStart, fragmentStart > 0 ? fragmentStart : undefined);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview SHA-1 cryptographic hash.\r\n * Variable names follow the notation in FIPS PUB 180-3:\r\n * http://csrc.nist.gov/publications/fips/fips180-3/fips180-3_final.pdf.\r\n *\r\n * Usage:\r\n * var sha1 = new sha1();\r\n * sha1.update(bytes);\r\n * var hash = sha1.digest();\r\n *\r\n * Performance:\r\n * Chrome 23: ~400 Mbit/s\r\n * Firefox 16: ~250 Mbit/s\r\n *\r\n */\r\n/**\r\n * SHA-1 cryptographic hash constructor.\r\n *\r\n * The properties declared here are discussed in the above algorithm document.\r\n * @constructor\r\n * @final\r\n * @struct\r\n */\r\nclass Sha1 {\r\n constructor() {\r\n /**\r\n * Holds the previous values of accumulated variables a-e in the compress_\r\n * function.\r\n * @private\r\n */\r\n this.chain_ = [];\r\n /**\r\n * A buffer holding the partially computed hash result.\r\n * @private\r\n */\r\n this.buf_ = [];\r\n /**\r\n * An array of 80 bytes, each a part of the message to be hashed. Referred to\r\n * as the message schedule in the docs.\r\n * @private\r\n */\r\n this.W_ = [];\r\n /**\r\n * Contains data needed to pad messages less than 64 bytes.\r\n * @private\r\n */\r\n this.pad_ = [];\r\n /**\r\n * @private {number}\r\n */\r\n this.inbuf_ = 0;\r\n /**\r\n * @private {number}\r\n */\r\n this.total_ = 0;\r\n this.blockSize = 512 / 8;\r\n this.pad_[0] = 128;\r\n for (let i = 1; i < this.blockSize; ++i) {\r\n this.pad_[i] = 0;\r\n }\r\n this.reset();\r\n }\r\n reset() {\r\n this.chain_[0] = 0x67452301;\r\n this.chain_[1] = 0xefcdab89;\r\n this.chain_[2] = 0x98badcfe;\r\n this.chain_[3] = 0x10325476;\r\n this.chain_[4] = 0xc3d2e1f0;\r\n this.inbuf_ = 0;\r\n this.total_ = 0;\r\n }\r\n /**\r\n * Internal compress helper function.\r\n * @param buf Block to compress.\r\n * @param offset Offset of the block in the buffer.\r\n * @private\r\n */\r\n compress_(buf, offset) {\r\n if (!offset) {\r\n offset = 0;\r\n }\r\n const W = this.W_;\r\n // get 16 big endian words\r\n if (typeof buf === 'string') {\r\n for (let i = 0; i < 16; i++) {\r\n // TODO(user): [bug 8140122] Recent versions of Safari for Mac OS and iOS\r\n // have a bug that turns the post-increment ++ operator into pre-increment\r\n // during JIT compilation. We have code that depends heavily on SHA-1 for\r\n // correctness and which is affected by this bug, so I've removed all uses\r\n // of post-increment ++ in which the result value is used. We can revert\r\n // this change once the Safari bug\r\n // (https://bugs.webkit.org/show_bug.cgi?id=109036) has been fixed and\r\n // most clients have been updated.\r\n W[i] =\r\n (buf.charCodeAt(offset) << 24) |\r\n (buf.charCodeAt(offset + 1) << 16) |\r\n (buf.charCodeAt(offset + 2) << 8) |\r\n buf.charCodeAt(offset + 3);\r\n offset += 4;\r\n }\r\n }\r\n else {\r\n for (let i = 0; i < 16; i++) {\r\n W[i] =\r\n (buf[offset] << 24) |\r\n (buf[offset + 1] << 16) |\r\n (buf[offset + 2] << 8) |\r\n buf[offset + 3];\r\n offset += 4;\r\n }\r\n }\r\n // expand to 80 words\r\n for (let i = 16; i < 80; i++) {\r\n const t = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\r\n W[i] = ((t << 1) | (t >>> 31)) & 0xffffffff;\r\n }\r\n let a = this.chain_[0];\r\n let b = this.chain_[1];\r\n let c = this.chain_[2];\r\n let d = this.chain_[3];\r\n let e = this.chain_[4];\r\n let f, k;\r\n // TODO(user): Try to unroll this loop to speed up the computation.\r\n for (let i = 0; i < 80; i++) {\r\n if (i < 40) {\r\n if (i < 20) {\r\n f = d ^ (b & (c ^ d));\r\n k = 0x5a827999;\r\n }\r\n else {\r\n f = b ^ c ^ d;\r\n k = 0x6ed9eba1;\r\n }\r\n }\r\n else {\r\n if (i < 60) {\r\n f = (b & c) | (d & (b | c));\r\n k = 0x8f1bbcdc;\r\n }\r\n else {\r\n f = b ^ c ^ d;\r\n k = 0xca62c1d6;\r\n }\r\n }\r\n const t = (((a << 5) | (a >>> 27)) + f + e + k + W[i]) & 0xffffffff;\r\n e = d;\r\n d = c;\r\n c = ((b << 30) | (b >>> 2)) & 0xffffffff;\r\n b = a;\r\n a = t;\r\n }\r\n this.chain_[0] = (this.chain_[0] + a) & 0xffffffff;\r\n this.chain_[1] = (this.chain_[1] + b) & 0xffffffff;\r\n this.chain_[2] = (this.chain_[2] + c) & 0xffffffff;\r\n this.chain_[3] = (this.chain_[3] + d) & 0xffffffff;\r\n this.chain_[4] = (this.chain_[4] + e) & 0xffffffff;\r\n }\r\n update(bytes, length) {\r\n // TODO(johnlenz): tighten the function signature and remove this check\r\n if (bytes == null) {\r\n return;\r\n }\r\n if (length === undefined) {\r\n length = bytes.length;\r\n }\r\n const lengthMinusBlock = length - this.blockSize;\r\n let n = 0;\r\n // Using local instead of member variables gives ~5% speedup on Firefox 16.\r\n const buf = this.buf_;\r\n let inbuf = this.inbuf_;\r\n // The outer while loop should execute at most twice.\r\n while (n < length) {\r\n // When we have no data in the block to top up, we can directly process the\r\n // input buffer (assuming it contains sufficient data). This gives ~25%\r\n // speedup on Chrome 23 and ~15% speedup on Firefox 16, but requires that\r\n // the data is provided in large chunks (or in multiples of 64 bytes).\r\n if (inbuf === 0) {\r\n while (n <= lengthMinusBlock) {\r\n this.compress_(bytes, n);\r\n n += this.blockSize;\r\n }\r\n }\r\n if (typeof bytes === 'string') {\r\n while (n < length) {\r\n buf[inbuf] = bytes.charCodeAt(n);\r\n ++inbuf;\r\n ++n;\r\n if (inbuf === this.blockSize) {\r\n this.compress_(buf);\r\n inbuf = 0;\r\n // Jump to the outer loop so we use the full-block optimization.\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n while (n < length) {\r\n buf[inbuf] = bytes[n];\r\n ++inbuf;\r\n ++n;\r\n if (inbuf === this.blockSize) {\r\n this.compress_(buf);\r\n inbuf = 0;\r\n // Jump to the outer loop so we use the full-block optimization.\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n this.inbuf_ = inbuf;\r\n this.total_ += length;\r\n }\r\n /** @override */\r\n digest() {\r\n const digest = [];\r\n let totalBits = this.total_ * 8;\r\n // Add pad 0x80 0x00*.\r\n if (this.inbuf_ < 56) {\r\n this.update(this.pad_, 56 - this.inbuf_);\r\n }\r\n else {\r\n this.update(this.pad_, this.blockSize - (this.inbuf_ - 56));\r\n }\r\n // Add # bits.\r\n for (let i = this.blockSize - 1; i >= 56; i--) {\r\n this.buf_[i] = totalBits & 255;\r\n totalBits /= 256; // Don't use bit-shifting here!\r\n }\r\n this.compress_(this.buf_);\r\n let n = 0;\r\n for (let i = 0; i < 5; i++) {\r\n for (let j = 24; j >= 0; j -= 8) {\r\n digest[n] = (this.chain_[i] >> j) & 255;\r\n ++n;\r\n }\r\n }\r\n return digest;\r\n }\r\n}\n\n/**\r\n * Helper to make a Subscribe function (just like Promise helps make a\r\n * Thenable).\r\n *\r\n * @param executor Function which can make calls to a single Observer\r\n * as a proxy.\r\n * @param onNoObservers Callback when count of Observers goes to zero.\r\n */\r\nfunction createSubscribe(executor, onNoObservers) {\r\n const proxy = new ObserverProxy(executor, onNoObservers);\r\n return proxy.subscribe.bind(proxy);\r\n}\r\n/**\r\n * Implement fan-out for any number of Observers attached via a subscribe\r\n * function.\r\n */\r\nclass ObserverProxy {\r\n /**\r\n * @param executor Function which can make calls to a single Observer\r\n * as a proxy.\r\n * @param onNoObservers Callback when count of Observers goes to zero.\r\n */\r\n constructor(executor, onNoObservers) {\r\n this.observers = [];\r\n this.unsubscribes = [];\r\n this.observerCount = 0;\r\n // Micro-task scheduling by calling task.then().\r\n this.task = Promise.resolve();\r\n this.finalized = false;\r\n this.onNoObservers = onNoObservers;\r\n // Call the executor asynchronously so subscribers that are called\r\n // synchronously after the creation of the subscribe function\r\n // can still receive the very first value generated in the executor.\r\n this.task\r\n .then(() => {\r\n executor(this);\r\n })\r\n .catch(e => {\r\n this.error(e);\r\n });\r\n }\r\n next(value) {\r\n this.forEachObserver((observer) => {\r\n observer.next(value);\r\n });\r\n }\r\n error(error) {\r\n this.forEachObserver((observer) => {\r\n observer.error(error);\r\n });\r\n this.close(error);\r\n }\r\n complete() {\r\n this.forEachObserver((observer) => {\r\n observer.complete();\r\n });\r\n this.close();\r\n }\r\n /**\r\n * Subscribe function that can be used to add an Observer to the fan-out list.\r\n *\r\n * - We require that no event is sent to a subscriber sychronously to their\r\n * call to subscribe().\r\n */\r\n subscribe(nextOrObserver, error, complete) {\r\n let observer;\r\n if (nextOrObserver === undefined &&\r\n error === undefined &&\r\n complete === undefined) {\r\n throw new Error('Missing Observer.');\r\n }\r\n // Assemble an Observer object when passed as callback functions.\r\n if (implementsAnyMethods(nextOrObserver, [\r\n 'next',\r\n 'error',\r\n 'complete'\r\n ])) {\r\n observer = nextOrObserver;\r\n }\r\n else {\r\n observer = {\r\n next: nextOrObserver,\r\n error,\r\n complete\r\n };\r\n }\r\n if (observer.next === undefined) {\r\n observer.next = noop;\r\n }\r\n if (observer.error === undefined) {\r\n observer.error = noop;\r\n }\r\n if (observer.complete === undefined) {\r\n observer.complete = noop;\r\n }\r\n const unsub = this.unsubscribeOne.bind(this, this.observers.length);\r\n // Attempt to subscribe to a terminated Observable - we\r\n // just respond to the Observer with the final error or complete\r\n // event.\r\n if (this.finalized) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(() => {\r\n try {\r\n if (this.finalError) {\r\n observer.error(this.finalError);\r\n }\r\n else {\r\n observer.complete();\r\n }\r\n }\r\n catch (e) {\r\n // nothing\r\n }\r\n return;\r\n });\r\n }\r\n this.observers.push(observer);\r\n return unsub;\r\n }\r\n // Unsubscribe is synchronous - we guarantee that no events are sent to\r\n // any unsubscribed Observer.\r\n unsubscribeOne(i) {\r\n if (this.observers === undefined || this.observers[i] === undefined) {\r\n return;\r\n }\r\n delete this.observers[i];\r\n this.observerCount -= 1;\r\n if (this.observerCount === 0 && this.onNoObservers !== undefined) {\r\n this.onNoObservers(this);\r\n }\r\n }\r\n forEachObserver(fn) {\r\n if (this.finalized) {\r\n // Already closed by previous event....just eat the additional values.\r\n return;\r\n }\r\n // Since sendOne calls asynchronously - there is no chance that\r\n // this.observers will become undefined.\r\n for (let i = 0; i < this.observers.length; i++) {\r\n this.sendOne(i, fn);\r\n }\r\n }\r\n // Call the Observer via one of it's callback function. We are careful to\r\n // confirm that the observe has not been unsubscribed since this asynchronous\r\n // function had been queued.\r\n sendOne(i, fn) {\r\n // Execute the callback asynchronously\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(() => {\r\n if (this.observers !== undefined && this.observers[i] !== undefined) {\r\n try {\r\n fn(this.observers[i]);\r\n }\r\n catch (e) {\r\n // Ignore exceptions raised in Observers or missing methods of an\r\n // Observer.\r\n // Log error to console. b/31404806\r\n if (typeof console !== 'undefined' && console.error) {\r\n console.error(e);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n close(err) {\r\n if (this.finalized) {\r\n return;\r\n }\r\n this.finalized = true;\r\n if (err !== undefined) {\r\n this.finalError = err;\r\n }\r\n // Proxy is no longer needed - garbage collect references\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(() => {\r\n this.observers = undefined;\r\n this.onNoObservers = undefined;\r\n });\r\n }\r\n}\r\n/** Turn synchronous function into one called asynchronously. */\r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\nfunction async(fn, onError) {\r\n return (...args) => {\r\n Promise.resolve(true)\r\n .then(() => {\r\n fn(...args);\r\n })\r\n .catch((error) => {\r\n if (onError) {\r\n onError(error);\r\n }\r\n });\r\n };\r\n}\r\n/**\r\n * Return true if the object passed in implements any of the named methods.\r\n */\r\nfunction implementsAnyMethods(obj, methods) {\r\n if (typeof obj !== 'object' || obj === null) {\r\n return false;\r\n }\r\n for (const method of methods) {\r\n if (method in obj && typeof obj[method] === 'function') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction noop() {\r\n // do nothing\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Check to make sure the appropriate number of arguments are provided for a public function.\r\n * Throws an error if it fails.\r\n *\r\n * @param fnName The function name\r\n * @param minCount The minimum number of arguments to allow for the function call\r\n * @param maxCount The maximum number of argument to allow for the function call\r\n * @param argCount The actual number of arguments provided.\r\n */\r\nconst validateArgCount = function (fnName, minCount, maxCount, argCount) {\r\n let argError;\r\n if (argCount < minCount) {\r\n argError = 'at least ' + minCount;\r\n }\r\n else if (argCount > maxCount) {\r\n argError = maxCount === 0 ? 'none' : 'no more than ' + maxCount;\r\n }\r\n if (argError) {\r\n const error = fnName +\r\n ' failed: Was called with ' +\r\n argCount +\r\n (argCount === 1 ? ' argument.' : ' arguments.') +\r\n ' Expects ' +\r\n argError +\r\n '.';\r\n throw new Error(error);\r\n }\r\n};\r\n/**\r\n * Generates a string to prefix an error message about failed argument validation\r\n *\r\n * @param fnName The function name\r\n * @param argName The name of the argument\r\n * @return The prefix to add to the error thrown for validation.\r\n */\r\nfunction errorPrefix(fnName, argName) {\r\n return `${fnName} failed: ${argName} argument `;\r\n}\r\n/**\r\n * @param fnName\r\n * @param argumentNumber\r\n * @param namespace\r\n * @param optional\r\n */\r\nfunction validateNamespace(fnName, namespace, optional) {\r\n if (optional && !namespace) {\r\n return;\r\n }\r\n if (typeof namespace !== 'string') {\r\n //TODO: I should do more validation here. We only allow certain chars in namespaces.\r\n throw new Error(errorPrefix(fnName, 'namespace') + 'must be a valid firebase namespace.');\r\n }\r\n}\r\nfunction validateCallback(fnName, argumentName, \r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\ncallback, optional) {\r\n if (optional && !callback) {\r\n return;\r\n }\r\n if (typeof callback !== 'function') {\r\n throw new Error(errorPrefix(fnName, argumentName) + 'must be a valid function.');\r\n }\r\n}\r\nfunction validateContextObject(fnName, argumentName, context, optional) {\r\n if (optional && !context) {\r\n return;\r\n }\r\n if (typeof context !== 'object' || context === null) {\r\n throw new Error(errorPrefix(fnName, argumentName) + 'must be a valid context object.');\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// Code originally came from goog.crypt.stringToUtf8ByteArray, but for some reason they\r\n// automatically replaced '\\r\\n' with '\\n', and they didn't handle surrogate pairs,\r\n// so it's been modified.\r\n// Note that not all Unicode characters appear as single characters in JavaScript strings.\r\n// fromCharCode returns the UTF-16 encoding of a character - so some Unicode characters\r\n// use 2 characters in Javascript. All 4-byte UTF-8 characters begin with a first\r\n// character in the range 0xD800 - 0xDBFF (the first character of a so-called surrogate\r\n// pair).\r\n// See http://www.ecma-international.org/ecma-262/5.1/#sec-15.1.3\r\n/**\r\n * @param {string} str\r\n * @return {Array}\r\n */\r\nconst stringToByteArray = function (str) {\r\n const out = [];\r\n let p = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n let c = str.charCodeAt(i);\r\n // Is this the lead surrogate in a surrogate pair?\r\n if (c >= 0xd800 && c <= 0xdbff) {\r\n const high = c - 0xd800; // the high 10 bits.\r\n i++;\r\n assert(i < str.length, 'Surrogate pair missing trail surrogate.');\r\n const low = str.charCodeAt(i) - 0xdc00; // the low 10 bits.\r\n c = 0x10000 + (high << 10) + low;\r\n }\r\n if (c < 128) {\r\n out[p++] = c;\r\n }\r\n else if (c < 2048) {\r\n out[p++] = (c >> 6) | 192;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else if (c < 65536) {\r\n out[p++] = (c >> 12) | 224;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else {\r\n out[p++] = (c >> 18) | 240;\r\n out[p++] = ((c >> 12) & 63) | 128;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n }\r\n return out;\r\n};\r\n/**\r\n * Calculate length without actually converting; useful for doing cheaper validation.\r\n * @param {string} str\r\n * @return {number}\r\n */\r\nconst stringLength = function (str) {\r\n let p = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n const c = str.charCodeAt(i);\r\n if (c < 128) {\r\n p++;\r\n }\r\n else if (c < 2048) {\r\n p += 2;\r\n }\r\n else if (c >= 0xd800 && c <= 0xdbff) {\r\n // Lead surrogate of a surrogate pair. The pair together will take 4 bytes to represent.\r\n p += 4;\r\n i++; // skip trail surrogate.\r\n }\r\n else {\r\n p += 3;\r\n }\r\n }\r\n return p;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2022 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Copied from https://stackoverflow.com/a/2117523\r\n * Generates a new uuid.\r\n * @public\r\n */\r\nconst uuidv4 = function () {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\r\n const r = (Math.random() * 16) | 0, v = c === 'x' ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n};\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * The amount of milliseconds to exponentially increase.\r\n */\r\nconst DEFAULT_INTERVAL_MILLIS = 1000;\r\n/**\r\n * The factor to backoff by.\r\n * Should be a number greater than 1.\r\n */\r\nconst DEFAULT_BACKOFF_FACTOR = 2;\r\n/**\r\n * The maximum milliseconds to increase to.\r\n *\r\n *
Visible for testing\r\n */\r\nconst MAX_VALUE_MILLIS = 4 * 60 * 60 * 1000; // Four hours, like iOS and Android.\r\n/**\r\n * The percentage of backoff time to randomize by.\r\n * See\r\n * http://go/safe-client-behavior#step-1-determine-the-appropriate-retry-interval-to-handle-spike-traffic\r\n * for context.\r\n *\r\n *
Visible for testing\r\n */\r\nconst RANDOM_FACTOR = 0.5;\r\n/**\r\n * Based on the backoff method from\r\n * https://github.com/google/closure-library/blob/master/closure/goog/math/exponentialbackoff.js.\r\n * Extracted here so we don't need to pass metadata and a stateful ExponentialBackoff object around.\r\n */\r\nfunction calculateBackoffMillis(backoffCount, intervalMillis = DEFAULT_INTERVAL_MILLIS, backoffFactor = DEFAULT_BACKOFF_FACTOR) {\r\n // Calculates an exponentially increasing value.\r\n // Deviation: calculates value from count and a constant interval, so we only need to save value\r\n // and count to restore state.\r\n const currBaseValue = intervalMillis * Math.pow(backoffFactor, backoffCount);\r\n // A random \"fuzz\" to avoid waves of retries.\r\n // Deviation: randomFactor is required.\r\n const randomWait = Math.round(\r\n // A fraction of the backoff value to add/subtract.\r\n // Deviation: changes multiplication order to improve readability.\r\n RANDOM_FACTOR *\r\n currBaseValue *\r\n // A random float (rounded to int by Math.round above) in the range [-1, 1]. Determines\r\n // if we add or subtract.\r\n (Math.random() - 0.5) *\r\n 2);\r\n // Limits backoff to max to avoid effectively permanent backoff.\r\n return Math.min(MAX_VALUE_MILLIS, currBaseValue + randomWait);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Provide English ordinal letters after a number\r\n */\r\nfunction ordinal(i) {\r\n if (!Number.isFinite(i)) {\r\n return `${i}`;\r\n }\r\n return i + indicator(i);\r\n}\r\nfunction indicator(i) {\r\n i = Math.abs(i);\r\n const cent = i % 100;\r\n if (cent >= 10 && cent <= 20) {\r\n return 'th';\r\n }\r\n const dec = i % 10;\r\n if (dec === 1) {\r\n return 'st';\r\n }\r\n if (dec === 2) {\r\n return 'nd';\r\n }\r\n if (dec === 3) {\r\n return 'rd';\r\n }\r\n return 'th';\r\n}\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction getModularInstance(service) {\r\n if (service && service._delegate) {\r\n return service._delegate;\r\n }\r\n else {\r\n return service;\r\n }\r\n}\n\nexport { CONSTANTS, Deferred, ErrorFactory, FirebaseError, MAX_VALUE_MILLIS, RANDOM_FACTOR, Sha1, areCookiesEnabled, assert, assertionError, async, base64, base64Decode, base64Encode, base64urlEncodeWithoutPadding, calculateBackoffMillis, contains, createMockUserToken, createSubscribe, decode, deepCopy, deepEqual, deepExtend, errorPrefix, extractQuerystring, getDefaultAppConfig, getDefaultEmulatorHost, getDefaultEmulatorHostnameAndPort, getDefaults, getExperimentalSetting, getGlobal, getModularInstance, getUA, isAdmin, isBrowser, isBrowserExtension, isElectron, isEmpty, isIE, isIndexedDBAvailable, isMobileCordova, isNode, isNodeSdk, isReactNative, isSafari, isUWP, isValidFormat, isValidTimestamp, issuedAtTime, jsonEval, map, ordinal, promiseWithTimeout, querystring, querystringDecode, safeGet, stringLength, stringToByteArray, stringify, uuidv4, validateArgCount, validateCallback, validateContextObject, validateIndexedDBOpenable, validateNamespace };\n//# sourceMappingURL=index.esm2017.js.map\n","import { Deferred } from '@firebase/util';\n\n/**\r\n * Component for service name T, e.g. `auth`, `auth-internal`\r\n */\r\nclass Component {\r\n /**\r\n *\r\n * @param name The public service name, e.g. app, auth, firestore, database\r\n * @param instanceFactory Service factory responsible for creating the public interface\r\n * @param type whether the service provided by the component is public or private\r\n */\r\n constructor(name, instanceFactory, type) {\r\n this.name = name;\r\n this.instanceFactory = instanceFactory;\r\n this.type = type;\r\n this.multipleInstances = false;\r\n /**\r\n * Properties to be added to the service namespace\r\n */\r\n this.serviceProps = {};\r\n this.instantiationMode = \"LAZY\" /* InstantiationMode.LAZY */;\r\n this.onInstanceCreated = null;\r\n }\r\n setInstantiationMode(mode) {\r\n this.instantiationMode = mode;\r\n return this;\r\n }\r\n setMultipleInstances(multipleInstances) {\r\n this.multipleInstances = multipleInstances;\r\n return this;\r\n }\r\n setServiceProps(props) {\r\n this.serviceProps = props;\r\n return this;\r\n }\r\n setInstanceCreatedCallback(callback) {\r\n this.onInstanceCreated = callback;\r\n return this;\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst DEFAULT_ENTRY_NAME = '[DEFAULT]';\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Provider for instance for service name T, e.g. 'auth', 'auth-internal'\r\n * NameServiceMapping[T] is an alias for the type of the instance\r\n */\r\nclass Provider {\r\n constructor(name, container) {\r\n this.name = name;\r\n this.container = container;\r\n this.component = null;\r\n this.instances = new Map();\r\n this.instancesDeferred = new Map();\r\n this.instancesOptions = new Map();\r\n this.onInitCallbacks = new Map();\r\n }\r\n /**\r\n * @param identifier A provider can provide mulitple instances of a service\r\n * if this.component.multipleInstances is true.\r\n */\r\n get(identifier) {\r\n // if multipleInstances is not supported, use the default name\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\r\n if (!this.instancesDeferred.has(normalizedIdentifier)) {\r\n const deferred = new Deferred();\r\n this.instancesDeferred.set(normalizedIdentifier, deferred);\r\n if (this.isInitialized(normalizedIdentifier) ||\r\n this.shouldAutoInitialize()) {\r\n // initialize the service if it can be auto-initialized\r\n try {\r\n const instance = this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier\r\n });\r\n if (instance) {\r\n deferred.resolve(instance);\r\n }\r\n }\r\n catch (e) {\r\n // when the instance factory throws an exception during get(), it should not cause\r\n // a fatal error. We just return the unresolved promise in this case.\r\n }\r\n }\r\n }\r\n return this.instancesDeferred.get(normalizedIdentifier).promise;\r\n }\r\n getImmediate(options) {\r\n var _a;\r\n // if multipleInstances is not supported, use the default name\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(options === null || options === void 0 ? void 0 : options.identifier);\r\n const optional = (_a = options === null || options === void 0 ? void 0 : options.optional) !== null && _a !== void 0 ? _a : false;\r\n if (this.isInitialized(normalizedIdentifier) ||\r\n this.shouldAutoInitialize()) {\r\n try {\r\n return this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier\r\n });\r\n }\r\n catch (e) {\r\n if (optional) {\r\n return null;\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n }\r\n else {\r\n // In case a component is not initialized and should/can not be auto-initialized at the moment, return null if the optional flag is set, or throw\r\n if (optional) {\r\n return null;\r\n }\r\n else {\r\n throw Error(`Service ${this.name} is not available`);\r\n }\r\n }\r\n }\r\n getComponent() {\r\n return this.component;\r\n }\r\n setComponent(component) {\r\n if (component.name !== this.name) {\r\n throw Error(`Mismatching Component ${component.name} for Provider ${this.name}.`);\r\n }\r\n if (this.component) {\r\n throw Error(`Component for ${this.name} has already been provided`);\r\n }\r\n this.component = component;\r\n // return early without attempting to initialize the component if the component requires explicit initialization (calling `Provider.initialize()`)\r\n if (!this.shouldAutoInitialize()) {\r\n return;\r\n }\r\n // if the service is eager, initialize the default instance\r\n if (isComponentEager(component)) {\r\n try {\r\n this.getOrInitializeService({ instanceIdentifier: DEFAULT_ENTRY_NAME });\r\n }\r\n catch (e) {\r\n // when the instance factory for an eager Component throws an exception during the eager\r\n // initialization, it should not cause a fatal error.\r\n // TODO: Investigate if we need to make it configurable, because some component may want to cause\r\n // a fatal error in this case?\r\n }\r\n }\r\n // Create service instances for the pending promises and resolve them\r\n // NOTE: if this.multipleInstances is false, only the default instance will be created\r\n // and all promises with resolve with it regardless of the identifier.\r\n for (const [instanceIdentifier, instanceDeferred] of this.instancesDeferred.entries()) {\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(instanceIdentifier);\r\n try {\r\n // `getOrInitializeService()` should always return a valid instance since a component is guaranteed. use ! to make typescript happy.\r\n const instance = this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier\r\n });\r\n instanceDeferred.resolve(instance);\r\n }\r\n catch (e) {\r\n // when the instance factory throws an exception, it should not cause\r\n // a fatal error. We just leave the promise unresolved.\r\n }\r\n }\r\n }\r\n clearInstance(identifier = DEFAULT_ENTRY_NAME) {\r\n this.instancesDeferred.delete(identifier);\r\n this.instancesOptions.delete(identifier);\r\n this.instances.delete(identifier);\r\n }\r\n // app.delete() will call this method on every provider to delete the services\r\n // TODO: should we mark the provider as deleted?\r\n async delete() {\r\n const services = Array.from(this.instances.values());\r\n await Promise.all([\r\n ...services\r\n .filter(service => 'INTERNAL' in service) // legacy services\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n .map(service => service.INTERNAL.delete()),\r\n ...services\r\n .filter(service => '_delete' in service) // modularized services\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n .map(service => service._delete())\r\n ]);\r\n }\r\n isComponentSet() {\r\n return this.component != null;\r\n }\r\n isInitialized(identifier = DEFAULT_ENTRY_NAME) {\r\n return this.instances.has(identifier);\r\n }\r\n getOptions(identifier = DEFAULT_ENTRY_NAME) {\r\n return this.instancesOptions.get(identifier) || {};\r\n }\r\n initialize(opts = {}) {\r\n const { options = {} } = opts;\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(opts.instanceIdentifier);\r\n if (this.isInitialized(normalizedIdentifier)) {\r\n throw Error(`${this.name}(${normalizedIdentifier}) has already been initialized`);\r\n }\r\n if (!this.isComponentSet()) {\r\n throw Error(`Component ${this.name} has not been registered yet`);\r\n }\r\n const instance = this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier,\r\n options\r\n });\r\n // resolve any pending promise waiting for the service instance\r\n for (const [instanceIdentifier, instanceDeferred] of this.instancesDeferred.entries()) {\r\n const normalizedDeferredIdentifier = this.normalizeInstanceIdentifier(instanceIdentifier);\r\n if (normalizedIdentifier === normalizedDeferredIdentifier) {\r\n instanceDeferred.resolve(instance);\r\n }\r\n }\r\n return instance;\r\n }\r\n /**\r\n *\r\n * @param callback - a function that will be invoked after the provider has been initialized by calling provider.initialize().\r\n * The function is invoked SYNCHRONOUSLY, so it should not execute any longrunning tasks in order to not block the program.\r\n *\r\n * @param identifier An optional instance identifier\r\n * @returns a function to unregister the callback\r\n */\r\n onInit(callback, identifier) {\r\n var _a;\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\r\n const existingCallbacks = (_a = this.onInitCallbacks.get(normalizedIdentifier)) !== null && _a !== void 0 ? _a : new Set();\r\n existingCallbacks.add(callback);\r\n this.onInitCallbacks.set(normalizedIdentifier, existingCallbacks);\r\n const existingInstance = this.instances.get(normalizedIdentifier);\r\n if (existingInstance) {\r\n callback(existingInstance, normalizedIdentifier);\r\n }\r\n return () => {\r\n existingCallbacks.delete(callback);\r\n };\r\n }\r\n /**\r\n * Invoke onInit callbacks synchronously\r\n * @param instance the service instance`\r\n */\r\n invokeOnInitCallbacks(instance, identifier) {\r\n const callbacks = this.onInitCallbacks.get(identifier);\r\n if (!callbacks) {\r\n return;\r\n }\r\n for (const callback of callbacks) {\r\n try {\r\n callback(instance, identifier);\r\n }\r\n catch (_a) {\r\n // ignore errors in the onInit callback\r\n }\r\n }\r\n }\r\n getOrInitializeService({ instanceIdentifier, options = {} }) {\r\n let instance = this.instances.get(instanceIdentifier);\r\n if (!instance && this.component) {\r\n instance = this.component.instanceFactory(this.container, {\r\n instanceIdentifier: normalizeIdentifierForFactory(instanceIdentifier),\r\n options\r\n });\r\n this.instances.set(instanceIdentifier, instance);\r\n this.instancesOptions.set(instanceIdentifier, options);\r\n /**\r\n * Invoke onInit listeners.\r\n * Note this.component.onInstanceCreated is different, which is used by the component creator,\r\n * while onInit listeners are registered by consumers of the provider.\r\n */\r\n this.invokeOnInitCallbacks(instance, instanceIdentifier);\r\n /**\r\n * Order is important\r\n * onInstanceCreated() should be called after this.instances.set(instanceIdentifier, instance); which\r\n * makes `isInitialized()` return true.\r\n */\r\n if (this.component.onInstanceCreated) {\r\n try {\r\n this.component.onInstanceCreated(this.container, instanceIdentifier, instance);\r\n }\r\n catch (_a) {\r\n // ignore errors in the onInstanceCreatedCallback\r\n }\r\n }\r\n }\r\n return instance || null;\r\n }\r\n normalizeInstanceIdentifier(identifier = DEFAULT_ENTRY_NAME) {\r\n if (this.component) {\r\n return this.component.multipleInstances ? identifier : DEFAULT_ENTRY_NAME;\r\n }\r\n else {\r\n return identifier; // assume multiple instances are supported before the component is provided.\r\n }\r\n }\r\n shouldAutoInitialize() {\r\n return (!!this.component &&\r\n this.component.instantiationMode !== \"EXPLICIT\" /* InstantiationMode.EXPLICIT */);\r\n }\r\n}\r\n// undefined should be passed to the service factory for the default instance\r\nfunction normalizeIdentifierForFactory(identifier) {\r\n return identifier === DEFAULT_ENTRY_NAME ? undefined : identifier;\r\n}\r\nfunction isComponentEager(component) {\r\n return component.instantiationMode === \"EAGER\" /* InstantiationMode.EAGER */;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * ComponentContainer that provides Providers for service name T, e.g. `auth`, `auth-internal`\r\n */\r\nclass ComponentContainer {\r\n constructor(name) {\r\n this.name = name;\r\n this.providers = new Map();\r\n }\r\n /**\r\n *\r\n * @param component Component being added\r\n * @param overwrite When a component with the same name has already been registered,\r\n * if overwrite is true: overwrite the existing component with the new component and create a new\r\n * provider with the new component. It can be useful in tests where you want to use different mocks\r\n * for different tests.\r\n * if overwrite is false: throw an exception\r\n */\r\n addComponent(component) {\r\n const provider = this.getProvider(component.name);\r\n if (provider.isComponentSet()) {\r\n throw new Error(`Component ${component.name} has already been registered with ${this.name}`);\r\n }\r\n provider.setComponent(component);\r\n }\r\n addOrOverwriteComponent(component) {\r\n const provider = this.getProvider(component.name);\r\n if (provider.isComponentSet()) {\r\n // delete the existing provider from the container, so we can register the new component\r\n this.providers.delete(component.name);\r\n }\r\n this.addComponent(component);\r\n }\r\n /**\r\n * getProvider provides a type safe interface where it can only be called with a field name\r\n * present in NameServiceMapping interface.\r\n *\r\n * Firebase SDKs providing services should extend NameServiceMapping interface to register\r\n * themselves.\r\n */\r\n getProvider(name) {\r\n if (this.providers.has(name)) {\r\n return this.providers.get(name);\r\n }\r\n // create a Provider for a service that hasn't registered with Firebase\r\n const provider = new Provider(name, this);\r\n this.providers.set(name, provider);\r\n return provider;\r\n }\r\n getProviders() {\r\n return Array.from(this.providers.values());\r\n }\r\n}\n\nexport { Component, ComponentContainer, Provider };\n//# sourceMappingURL=index.esm2017.js.map\n","/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * A container for all of the Logger instances\r\n */\r\nconst instances = [];\r\n/**\r\n * The JS SDK supports 5 log levels and also allows a user the ability to\r\n * silence the logs altogether.\r\n *\r\n * The order is a follows:\r\n * DEBUG < VERBOSE < INFO < WARN < ERROR\r\n *\r\n * All of the log types above the current log level will be captured (i.e. if\r\n * you set the log level to `INFO`, errors will still be logged, but `DEBUG` and\r\n * `VERBOSE` logs will not)\r\n */\r\nvar LogLevel;\r\n(function (LogLevel) {\r\n LogLevel[LogLevel[\"DEBUG\"] = 0] = \"DEBUG\";\r\n LogLevel[LogLevel[\"VERBOSE\"] = 1] = \"VERBOSE\";\r\n LogLevel[LogLevel[\"INFO\"] = 2] = \"INFO\";\r\n LogLevel[LogLevel[\"WARN\"] = 3] = \"WARN\";\r\n LogLevel[LogLevel[\"ERROR\"] = 4] = \"ERROR\";\r\n LogLevel[LogLevel[\"SILENT\"] = 5] = \"SILENT\";\r\n})(LogLevel || (LogLevel = {}));\r\nconst levelStringToEnum = {\r\n 'debug': LogLevel.DEBUG,\r\n 'verbose': LogLevel.VERBOSE,\r\n 'info': LogLevel.INFO,\r\n 'warn': LogLevel.WARN,\r\n 'error': LogLevel.ERROR,\r\n 'silent': LogLevel.SILENT\r\n};\r\n/**\r\n * The default log level\r\n */\r\nconst defaultLogLevel = LogLevel.INFO;\r\n/**\r\n * By default, `console.debug` is not displayed in the developer console (in\r\n * chrome). To avoid forcing users to have to opt-in to these logs twice\r\n * (i.e. once for firebase, and once in the console), we are sending `DEBUG`\r\n * logs to the `console.log` function.\r\n */\r\nconst ConsoleMethod = {\r\n [LogLevel.DEBUG]: 'log',\r\n [LogLevel.VERBOSE]: 'log',\r\n [LogLevel.INFO]: 'info',\r\n [LogLevel.WARN]: 'warn',\r\n [LogLevel.ERROR]: 'error'\r\n};\r\n/**\r\n * The default log handler will forward DEBUG, VERBOSE, INFO, WARN, and ERROR\r\n * messages on to their corresponding console counterparts (if the log method\r\n * is supported by the current log level)\r\n */\r\nconst defaultLogHandler = (instance, logType, ...args) => {\r\n if (logType < instance.logLevel) {\r\n return;\r\n }\r\n const now = new Date().toISOString();\r\n const method = ConsoleMethod[logType];\r\n if (method) {\r\n console[method](`[${now}] ${instance.name}:`, ...args);\r\n }\r\n else {\r\n throw new Error(`Attempted to log a message with an invalid logType (value: ${logType})`);\r\n }\r\n};\r\nclass Logger {\r\n /**\r\n * Gives you an instance of a Logger to capture messages according to\r\n * Firebase's logging scheme.\r\n *\r\n * @param name The name that the logs will be associated with\r\n */\r\n constructor(name) {\r\n this.name = name;\r\n /**\r\n * The log level of the given Logger instance.\r\n */\r\n this._logLevel = defaultLogLevel;\r\n /**\r\n * The main (internal) log handler for the Logger instance.\r\n * Can be set to a new function in internal package code but not by user.\r\n */\r\n this._logHandler = defaultLogHandler;\r\n /**\r\n * The optional, additional, user-defined log handler for the Logger instance.\r\n */\r\n this._userLogHandler = null;\r\n /**\r\n * Capture the current instance for later use\r\n */\r\n instances.push(this);\r\n }\r\n get logLevel() {\r\n return this._logLevel;\r\n }\r\n set logLevel(val) {\r\n if (!(val in LogLevel)) {\r\n throw new TypeError(`Invalid value \"${val}\" assigned to \\`logLevel\\``);\r\n }\r\n this._logLevel = val;\r\n }\r\n // Workaround for setter/getter having to be the same type.\r\n setLogLevel(val) {\r\n this._logLevel = typeof val === 'string' ? levelStringToEnum[val] : val;\r\n }\r\n get logHandler() {\r\n return this._logHandler;\r\n }\r\n set logHandler(val) {\r\n if (typeof val !== 'function') {\r\n throw new TypeError('Value assigned to `logHandler` must be a function');\r\n }\r\n this._logHandler = val;\r\n }\r\n get userLogHandler() {\r\n return this._userLogHandler;\r\n }\r\n set userLogHandler(val) {\r\n this._userLogHandler = val;\r\n }\r\n /**\r\n * The functions below are all based on the `console` interface\r\n */\r\n debug(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.DEBUG, ...args);\r\n this._logHandler(this, LogLevel.DEBUG, ...args);\r\n }\r\n log(...args) {\r\n this._userLogHandler &&\r\n this._userLogHandler(this, LogLevel.VERBOSE, ...args);\r\n this._logHandler(this, LogLevel.VERBOSE, ...args);\r\n }\r\n info(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.INFO, ...args);\r\n this._logHandler(this, LogLevel.INFO, ...args);\r\n }\r\n warn(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.WARN, ...args);\r\n this._logHandler(this, LogLevel.WARN, ...args);\r\n }\r\n error(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.ERROR, ...args);\r\n this._logHandler(this, LogLevel.ERROR, ...args);\r\n }\r\n}\r\nfunction setLogLevel(level) {\r\n instances.forEach(inst => {\r\n inst.setLogLevel(level);\r\n });\r\n}\r\nfunction setUserLogHandler(logCallback, options) {\r\n for (const instance of instances) {\r\n let customLogLevel = null;\r\n if (options && options.level) {\r\n customLogLevel = levelStringToEnum[options.level];\r\n }\r\n if (logCallback === null) {\r\n instance.userLogHandler = null;\r\n }\r\n else {\r\n instance.userLogHandler = (instance, level, ...args) => {\r\n const message = args\r\n .map(arg => {\r\n if (arg == null) {\r\n return null;\r\n }\r\n else if (typeof arg === 'string') {\r\n return arg;\r\n }\r\n else if (typeof arg === 'number' || typeof arg === 'boolean') {\r\n return arg.toString();\r\n }\r\n else if (arg instanceof Error) {\r\n return arg.message;\r\n }\r\n else {\r\n try {\r\n return JSON.stringify(arg);\r\n }\r\n catch (ignored) {\r\n return null;\r\n }\r\n }\r\n })\r\n .filter(arg => arg)\r\n .join(' ');\r\n if (level >= (customLogLevel !== null && customLogLevel !== void 0 ? customLogLevel : instance.logLevel)) {\r\n logCallback({\r\n level: LogLevel[level].toLowerCase(),\r\n message,\r\n args,\r\n type: instance.name\r\n });\r\n }\r\n };\r\n }\r\n }\r\n}\n\nexport { LogLevel, Logger, setLogLevel, setUserLogHandler };\n//# sourceMappingURL=index.esm2017.js.map\n","const instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c);\n\nlet idbProxyableTypes;\nlet cursorAdvanceMethods;\n// This is a function to prevent it throwing up in node environments.\nfunction getIdbProxyableTypes() {\n return (idbProxyableTypes ||\n (idbProxyableTypes = [\n IDBDatabase,\n IDBObjectStore,\n IDBIndex,\n IDBCursor,\n IDBTransaction,\n ]));\n}\n// This is a function to prevent it throwing up in node environments.\nfunction getCursorAdvanceMethods() {\n return (cursorAdvanceMethods ||\n (cursorAdvanceMethods = [\n IDBCursor.prototype.advance,\n IDBCursor.prototype.continue,\n IDBCursor.prototype.continuePrimaryKey,\n ]));\n}\nconst cursorRequestMap = new WeakMap();\nconst transactionDoneMap = new WeakMap();\nconst transactionStoreNamesMap = new WeakMap();\nconst transformCache = new WeakMap();\nconst reverseTransformCache = new WeakMap();\nfunction promisifyRequest(request) {\n const promise = new Promise((resolve, reject) => {\n const unlisten = () => {\n request.removeEventListener('success', success);\n request.removeEventListener('error', error);\n };\n const success = () => {\n resolve(wrap(request.result));\n unlisten();\n };\n const error = () => {\n reject(request.error);\n unlisten();\n };\n request.addEventListener('success', success);\n request.addEventListener('error', error);\n });\n promise\n .then((value) => {\n // Since cursoring reuses the IDBRequest (*sigh*), we cache it for later retrieval\n // (see wrapFunction).\n if (value instanceof IDBCursor) {\n cursorRequestMap.set(value, request);\n }\n // Catching to avoid \"Uncaught Promise exceptions\"\n })\n .catch(() => { });\n // This mapping exists in reverseTransformCache but doesn't doesn't exist in transformCache. This\n // is because we create many promises from a single IDBRequest.\n reverseTransformCache.set(promise, request);\n return promise;\n}\nfunction cacheDonePromiseForTransaction(tx) {\n // Early bail if we've already created a done promise for this transaction.\n if (transactionDoneMap.has(tx))\n return;\n const done = new Promise((resolve, reject) => {\n const unlisten = () => {\n tx.removeEventListener('complete', complete);\n tx.removeEventListener('error', error);\n tx.removeEventListener('abort', error);\n };\n const complete = () => {\n resolve();\n unlisten();\n };\n const error = () => {\n reject(tx.error || new DOMException('AbortError', 'AbortError'));\n unlisten();\n };\n tx.addEventListener('complete', complete);\n tx.addEventListener('error', error);\n tx.addEventListener('abort', error);\n });\n // Cache it for later retrieval.\n transactionDoneMap.set(tx, done);\n}\nlet idbProxyTraps = {\n get(target, prop, receiver) {\n if (target instanceof IDBTransaction) {\n // Special handling for transaction.done.\n if (prop === 'done')\n return transactionDoneMap.get(target);\n // Polyfill for objectStoreNames because of Edge.\n if (prop === 'objectStoreNames') {\n return target.objectStoreNames || transactionStoreNamesMap.get(target);\n }\n // Make tx.store return the only store in the transaction, or undefined if there are many.\n if (prop === 'store') {\n return receiver.objectStoreNames[1]\n ? undefined\n : receiver.objectStore(receiver.objectStoreNames[0]);\n }\n }\n // Else transform whatever we get back.\n return wrap(target[prop]);\n },\n set(target, prop, value) {\n target[prop] = value;\n return true;\n },\n has(target, prop) {\n if (target instanceof IDBTransaction &&\n (prop === 'done' || prop === 'store')) {\n return true;\n }\n return prop in target;\n },\n};\nfunction replaceTraps(callback) {\n idbProxyTraps = callback(idbProxyTraps);\n}\nfunction wrapFunction(func) {\n // Due to expected object equality (which is enforced by the caching in `wrap`), we\n // only create one new func per func.\n // Edge doesn't support objectStoreNames (booo), so we polyfill it here.\n if (func === IDBDatabase.prototype.transaction &&\n !('objectStoreNames' in IDBTransaction.prototype)) {\n return function (storeNames, ...args) {\n const tx = func.call(unwrap(this), storeNames, ...args);\n transactionStoreNamesMap.set(tx, storeNames.sort ? storeNames.sort() : [storeNames]);\n return wrap(tx);\n };\n }\n // Cursor methods are special, as the behaviour is a little more different to standard IDB. In\n // IDB, you advance the cursor and wait for a new 'success' on the IDBRequest that gave you the\n // cursor. It's kinda like a promise that can resolve with many values. That doesn't make sense\n // with real promises, so each advance methods returns a new promise for the cursor object, or\n // undefined if the end of the cursor has been reached.\n if (getCursorAdvanceMethods().includes(func)) {\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n func.apply(unwrap(this), args);\n return wrap(cursorRequestMap.get(this));\n };\n }\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n return wrap(func.apply(unwrap(this), args));\n };\n}\nfunction transformCachableValue(value) {\n if (typeof value === 'function')\n return wrapFunction(value);\n // This doesn't return, it just creates a 'done' promise for the transaction,\n // which is later returned for transaction.done (see idbObjectHandler).\n if (value instanceof IDBTransaction)\n cacheDonePromiseForTransaction(value);\n if (instanceOfAny(value, getIdbProxyableTypes()))\n return new Proxy(value, idbProxyTraps);\n // Return the same value back if we're not going to transform it.\n return value;\n}\nfunction wrap(value) {\n // We sometimes generate multiple promises from a single IDBRequest (eg when cursoring), because\n // IDB is weird and a single IDBRequest can yield many responses, so these can't be cached.\n if (value instanceof IDBRequest)\n return promisifyRequest(value);\n // If we've already transformed this value before, reuse the transformed value.\n // This is faster, but it also provides object equality.\n if (transformCache.has(value))\n return transformCache.get(value);\n const newValue = transformCachableValue(value);\n // Not all types are transformed.\n // These may be primitive types, so they can't be WeakMap keys.\n if (newValue !== value) {\n transformCache.set(value, newValue);\n reverseTransformCache.set(newValue, value);\n }\n return newValue;\n}\nconst unwrap = (value) => reverseTransformCache.get(value);\n\nexport { reverseTransformCache as a, instanceOfAny as i, replaceTraps as r, unwrap as u, wrap as w };\n","import { w as wrap, r as replaceTraps } from './wrap-idb-value.js';\nexport { u as unwrap, w as wrap } from './wrap-idb-value.js';\n\n/**\n * Open a database.\n *\n * @param name Name of the database.\n * @param version Schema version.\n * @param callbacks Additional callbacks.\n */\nfunction openDB(name, version, { blocked, upgrade, blocking, terminated } = {}) {\n const request = indexedDB.open(name, version);\n const openPromise = wrap(request);\n if (upgrade) {\n request.addEventListener('upgradeneeded', (event) => {\n upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction));\n });\n }\n if (blocked)\n request.addEventListener('blocked', () => blocked());\n openPromise\n .then((db) => {\n if (terminated)\n db.addEventListener('close', () => terminated());\n if (blocking)\n db.addEventListener('versionchange', () => blocking());\n })\n .catch(() => { });\n return openPromise;\n}\n/**\n * Delete a database.\n *\n * @param name Name of the database.\n */\nfunction deleteDB(name, { blocked } = {}) {\n const request = indexedDB.deleteDatabase(name);\n if (blocked)\n request.addEventListener('blocked', () => blocked());\n return wrap(request).then(() => undefined);\n}\n\nconst readMethods = ['get', 'getKey', 'getAll', 'getAllKeys', 'count'];\nconst writeMethods = ['put', 'add', 'delete', 'clear'];\nconst cachedMethods = new Map();\nfunction getMethod(target, prop) {\n if (!(target instanceof IDBDatabase &&\n !(prop in target) &&\n typeof prop === 'string')) {\n return;\n }\n if (cachedMethods.get(prop))\n return cachedMethods.get(prop);\n const targetFuncName = prop.replace(/FromIndex$/, '');\n const useIndex = prop !== targetFuncName;\n const isWrite = writeMethods.includes(targetFuncName);\n if (\n // Bail if the target doesn't exist on the target. Eg, getAll isn't in Edge.\n !(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) ||\n !(isWrite || readMethods.includes(targetFuncName))) {\n return;\n }\n const method = async function (storeName, ...args) {\n // isWrite ? 'readwrite' : undefined gzipps better, but fails in Edge :(\n const tx = this.transaction(storeName, isWrite ? 'readwrite' : 'readonly');\n let target = tx.store;\n if (useIndex)\n target = target.index(args.shift());\n // Must reject if op rejects.\n // If it's a write operation, must reject if tx.done rejects.\n // Must reject with op rejection first.\n // Must resolve with op value.\n // Must handle both promises (no unhandled rejections)\n return (await Promise.all([\n target[targetFuncName](...args),\n isWrite && tx.done,\n ]))[0];\n };\n cachedMethods.set(prop, method);\n return method;\n}\nreplaceTraps((oldTraps) => ({\n ...oldTraps,\n get: (target, prop, receiver) => getMethod(target, prop) || oldTraps.get(target, prop, receiver),\n has: (target, prop) => !!getMethod(target, prop) || oldTraps.has(target, prop),\n}));\n\nexport { deleteDB, openDB };\n","import { Component, ComponentContainer } from '@firebase/component';\nimport { Logger, setUserLogHandler, setLogLevel as setLogLevel$1 } from '@firebase/logger';\nimport { ErrorFactory, getDefaultAppConfig, deepEqual, FirebaseError, base64urlEncodeWithoutPadding, isIndexedDBAvailable, validateIndexedDBOpenable } from '@firebase/util';\nexport { FirebaseError } from '@firebase/util';\nimport { openDB } from 'idb';\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nclass PlatformLoggerServiceImpl {\r\n constructor(container) {\r\n this.container = container;\r\n }\r\n // In initial implementation, this will be called by installations on\r\n // auth token refresh, and installations will send this string.\r\n getPlatformInfoString() {\r\n const providers = this.container.getProviders();\r\n // Loop through providers and get library/version pairs from any that are\r\n // version components.\r\n return providers\r\n .map(provider => {\r\n if (isVersionServiceProvider(provider)) {\r\n const service = provider.getImmediate();\r\n return `${service.library}/${service.version}`;\r\n }\r\n else {\r\n return null;\r\n }\r\n })\r\n .filter(logString => logString)\r\n .join(' ');\r\n }\r\n}\r\n/**\r\n *\r\n * @param provider check if this provider provides a VersionService\r\n *\r\n * NOTE: Using Provider<'app-version'> is a hack to indicate that the provider\r\n * provides VersionService. The provider is not necessarily a 'app-version'\r\n * provider.\r\n */\r\nfunction isVersionServiceProvider(provider) {\r\n const component = provider.getComponent();\r\n return (component === null || component === void 0 ? void 0 : component.type) === \"VERSION\" /* ComponentType.VERSION */;\r\n}\n\nconst name$o = \"@firebase/app\";\nconst version$1 = \"0.9.3\";\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst logger = new Logger('@firebase/app');\n\nconst name$n = \"@firebase/app-compat\";\n\nconst name$m = \"@firebase/analytics-compat\";\n\nconst name$l = \"@firebase/analytics\";\n\nconst name$k = \"@firebase/app-check-compat\";\n\nconst name$j = \"@firebase/app-check\";\n\nconst name$i = \"@firebase/auth\";\n\nconst name$h = \"@firebase/auth-compat\";\n\nconst name$g = \"@firebase/database\";\n\nconst name$f = \"@firebase/database-compat\";\n\nconst name$e = \"@firebase/functions\";\n\nconst name$d = \"@firebase/functions-compat\";\n\nconst name$c = \"@firebase/installations\";\n\nconst name$b = \"@firebase/installations-compat\";\n\nconst name$a = \"@firebase/messaging\";\n\nconst name$9 = \"@firebase/messaging-compat\";\n\nconst name$8 = \"@firebase/performance\";\n\nconst name$7 = \"@firebase/performance-compat\";\n\nconst name$6 = \"@firebase/remote-config\";\n\nconst name$5 = \"@firebase/remote-config-compat\";\n\nconst name$4 = \"@firebase/storage\";\n\nconst name$3 = \"@firebase/storage-compat\";\n\nconst name$2 = \"@firebase/firestore\";\n\nconst name$1 = \"@firebase/firestore-compat\";\n\nconst name = \"firebase\";\nconst version = \"9.17.1\";\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * The default app name\r\n *\r\n * @internal\r\n */\r\nconst DEFAULT_ENTRY_NAME = '[DEFAULT]';\r\nconst PLATFORM_LOG_STRING = {\r\n [name$o]: 'fire-core',\r\n [name$n]: 'fire-core-compat',\r\n [name$l]: 'fire-analytics',\r\n [name$m]: 'fire-analytics-compat',\r\n [name$j]: 'fire-app-check',\r\n [name$k]: 'fire-app-check-compat',\r\n [name$i]: 'fire-auth',\r\n [name$h]: 'fire-auth-compat',\r\n [name$g]: 'fire-rtdb',\r\n [name$f]: 'fire-rtdb-compat',\r\n [name$e]: 'fire-fn',\r\n [name$d]: 'fire-fn-compat',\r\n [name$c]: 'fire-iid',\r\n [name$b]: 'fire-iid-compat',\r\n [name$a]: 'fire-fcm',\r\n [name$9]: 'fire-fcm-compat',\r\n [name$8]: 'fire-perf',\r\n [name$7]: 'fire-perf-compat',\r\n [name$6]: 'fire-rc',\r\n [name$5]: 'fire-rc-compat',\r\n [name$4]: 'fire-gcs',\r\n [name$3]: 'fire-gcs-compat',\r\n [name$2]: 'fire-fst',\r\n [name$1]: 'fire-fst-compat',\r\n 'fire-js': 'fire-js',\r\n [name]: 'fire-js-all'\r\n};\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @internal\r\n */\r\nconst _apps = new Map();\r\n/**\r\n * Registered components.\r\n *\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nconst _components = new Map();\r\n/**\r\n * @param component - the component being added to this app's container\r\n *\r\n * @internal\r\n */\r\nfunction _addComponent(app, component) {\r\n try {\r\n app.container.addComponent(component);\r\n }\r\n catch (e) {\r\n logger.debug(`Component ${component.name} failed to register with FirebaseApp ${app.name}`, e);\r\n }\r\n}\r\n/**\r\n *\r\n * @internal\r\n */\r\nfunction _addOrOverwriteComponent(app, component) {\r\n app.container.addOrOverwriteComponent(component);\r\n}\r\n/**\r\n *\r\n * @param component - the component to register\r\n * @returns whether or not the component is registered successfully\r\n *\r\n * @internal\r\n */\r\nfunction _registerComponent(component) {\r\n const componentName = component.name;\r\n if (_components.has(componentName)) {\r\n logger.debug(`There were multiple attempts to register component ${componentName}.`);\r\n return false;\r\n }\r\n _components.set(componentName, component);\r\n // add the component to existing app instances\r\n for (const app of _apps.values()) {\r\n _addComponent(app, component);\r\n }\r\n return true;\r\n}\r\n/**\r\n *\r\n * @param app - FirebaseApp instance\r\n * @param name - service name\r\n *\r\n * @returns the provider for the service with the matching name\r\n *\r\n * @internal\r\n */\r\nfunction _getProvider(app, name) {\r\n const heartbeatController = app.container\r\n .getProvider('heartbeat')\r\n .getImmediate({ optional: true });\r\n if (heartbeatController) {\r\n void heartbeatController.triggerHeartbeat();\r\n }\r\n return app.container.getProvider(name);\r\n}\r\n/**\r\n *\r\n * @param app - FirebaseApp instance\r\n * @param name - service name\r\n * @param instanceIdentifier - service instance identifier in case the service supports multiple instances\r\n *\r\n * @internal\r\n */\r\nfunction _removeServiceInstance(app, name, instanceIdentifier = DEFAULT_ENTRY_NAME) {\r\n _getProvider(app, name).clearInstance(instanceIdentifier);\r\n}\r\n/**\r\n * Test only\r\n *\r\n * @internal\r\n */\r\nfunction _clearComponents() {\r\n _components.clear();\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst ERRORS = {\r\n [\"no-app\" /* AppError.NO_APP */]: \"No Firebase App '{$appName}' has been created - \" +\r\n 'call Firebase App.initializeApp()',\r\n [\"bad-app-name\" /* AppError.BAD_APP_NAME */]: \"Illegal App name: '{$appName}\",\r\n [\"duplicate-app\" /* AppError.DUPLICATE_APP */]: \"Firebase App named '{$appName}' already exists with different options or config\",\r\n [\"app-deleted\" /* AppError.APP_DELETED */]: \"Firebase App named '{$appName}' already deleted\",\r\n [\"no-options\" /* AppError.NO_OPTIONS */]: 'Need to provide options, when not being deployed to hosting via source.',\r\n [\"invalid-app-argument\" /* AppError.INVALID_APP_ARGUMENT */]: 'firebase.{$appName}() takes either no argument or a ' +\r\n 'Firebase App instance.',\r\n [\"invalid-log-argument\" /* AppError.INVALID_LOG_ARGUMENT */]: 'First argument to `onLog` must be null or a function.',\r\n [\"idb-open\" /* AppError.IDB_OPEN */]: 'Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.',\r\n [\"idb-get\" /* AppError.IDB_GET */]: 'Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.',\r\n [\"idb-set\" /* AppError.IDB_WRITE */]: 'Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.',\r\n [\"idb-delete\" /* AppError.IDB_DELETE */]: 'Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.'\r\n};\r\nconst ERROR_FACTORY = new ErrorFactory('app', 'Firebase', ERRORS);\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nclass FirebaseAppImpl {\r\n constructor(options, config, container) {\r\n this._isDeleted = false;\r\n this._options = Object.assign({}, options);\r\n this._config = Object.assign({}, config);\r\n this._name = config.name;\r\n this._automaticDataCollectionEnabled =\r\n config.automaticDataCollectionEnabled;\r\n this._container = container;\r\n this.container.addComponent(new Component('app', () => this, \"PUBLIC\" /* ComponentType.PUBLIC */));\r\n }\r\n get automaticDataCollectionEnabled() {\r\n this.checkDestroyed();\r\n return this._automaticDataCollectionEnabled;\r\n }\r\n set automaticDataCollectionEnabled(val) {\r\n this.checkDestroyed();\r\n this._automaticDataCollectionEnabled = val;\r\n }\r\n get name() {\r\n this.checkDestroyed();\r\n return this._name;\r\n }\r\n get options() {\r\n this.checkDestroyed();\r\n return this._options;\r\n }\r\n get config() {\r\n this.checkDestroyed();\r\n return this._config;\r\n }\r\n get container() {\r\n return this._container;\r\n }\r\n get isDeleted() {\r\n return this._isDeleted;\r\n }\r\n set isDeleted(val) {\r\n this._isDeleted = val;\r\n }\r\n /**\r\n * This function will throw an Error if the App has already been deleted -\r\n * use before performing API actions on the App.\r\n */\r\n checkDestroyed() {\r\n if (this.isDeleted) {\r\n throw ERROR_FACTORY.create(\"app-deleted\" /* AppError.APP_DELETED */, { appName: this._name });\r\n }\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * The current SDK version.\r\n *\r\n * @public\r\n */\r\nconst SDK_VERSION = version;\r\nfunction initializeApp(_options, rawConfig = {}) {\r\n let options = _options;\r\n if (typeof rawConfig !== 'object') {\r\n const name = rawConfig;\r\n rawConfig = { name };\r\n }\r\n const config = Object.assign({ name: DEFAULT_ENTRY_NAME, automaticDataCollectionEnabled: false }, rawConfig);\r\n const name = config.name;\r\n if (typeof name !== 'string' || !name) {\r\n throw ERROR_FACTORY.create(\"bad-app-name\" /* AppError.BAD_APP_NAME */, {\r\n appName: String(name)\r\n });\r\n }\r\n options || (options = getDefaultAppConfig());\r\n if (!options) {\r\n throw ERROR_FACTORY.create(\"no-options\" /* AppError.NO_OPTIONS */);\r\n }\r\n const existingApp = _apps.get(name);\r\n if (existingApp) {\r\n // return the existing app if options and config deep equal the ones in the existing app.\r\n if (deepEqual(options, existingApp.options) &&\r\n deepEqual(config, existingApp.config)) {\r\n return existingApp;\r\n }\r\n else {\r\n throw ERROR_FACTORY.create(\"duplicate-app\" /* AppError.DUPLICATE_APP */, { appName: name });\r\n }\r\n }\r\n const container = new ComponentContainer(name);\r\n for (const component of _components.values()) {\r\n container.addComponent(component);\r\n }\r\n const newApp = new FirebaseAppImpl(options, config, container);\r\n _apps.set(name, newApp);\r\n return newApp;\r\n}\r\n/**\r\n * Retrieves a {@link @firebase/app#FirebaseApp} instance.\r\n *\r\n * When called with no arguments, the default app is returned. When an app name\r\n * is provided, the app corresponding to that name is returned.\r\n *\r\n * An exception is thrown if the app being retrieved has not yet been\r\n * initialized.\r\n *\r\n * @example\r\n * ```javascript\r\n * // Return the default app\r\n * const app = getApp();\r\n * ```\r\n *\r\n * @example\r\n * ```javascript\r\n * // Return a named app\r\n * const otherApp = getApp(\"otherApp\");\r\n * ```\r\n *\r\n * @param name - Optional name of the app to return. If no name is\r\n * provided, the default is `\"[DEFAULT]\"`.\r\n *\r\n * @returns The app corresponding to the provided app name.\r\n * If no app name is provided, the default app is returned.\r\n *\r\n * @public\r\n */\r\nfunction getApp(name = DEFAULT_ENTRY_NAME) {\r\n const app = _apps.get(name);\r\n if (!app && name === DEFAULT_ENTRY_NAME) {\r\n return initializeApp();\r\n }\r\n if (!app) {\r\n throw ERROR_FACTORY.create(\"no-app\" /* AppError.NO_APP */, { appName: name });\r\n }\r\n return app;\r\n}\r\n/**\r\n * A (read-only) array of all initialized apps.\r\n * @public\r\n */\r\nfunction getApps() {\r\n return Array.from(_apps.values());\r\n}\r\n/**\r\n * Renders this app unusable and frees the resources of all associated\r\n * services.\r\n *\r\n * @example\r\n * ```javascript\r\n * deleteApp(app)\r\n * .then(function() {\r\n * console.log(\"App deleted successfully\");\r\n * })\r\n * .catch(function(error) {\r\n * console.log(\"Error deleting app:\", error);\r\n * });\r\n * ```\r\n *\r\n * @public\r\n */\r\nasync function deleteApp(app) {\r\n const name = app.name;\r\n if (_apps.has(name)) {\r\n _apps.delete(name);\r\n await Promise.all(app.container\r\n .getProviders()\r\n .map(provider => provider.delete()));\r\n app.isDeleted = true;\r\n }\r\n}\r\n/**\r\n * Registers a library's name and version for platform logging purposes.\r\n * @param library - Name of 1p or 3p library (e.g. firestore, angularfire)\r\n * @param version - Current version of that library.\r\n * @param variant - Bundle variant, e.g., node, rn, etc.\r\n *\r\n * @public\r\n */\r\nfunction registerVersion(libraryKeyOrName, version, variant) {\r\n var _a;\r\n // TODO: We can use this check to whitelist strings when/if we set up\r\n // a good whitelist system.\r\n let library = (_a = PLATFORM_LOG_STRING[libraryKeyOrName]) !== null && _a !== void 0 ? _a : libraryKeyOrName;\r\n if (variant) {\r\n library += `-${variant}`;\r\n }\r\n const libraryMismatch = library.match(/\\s|\\//);\r\n const versionMismatch = version.match(/\\s|\\//);\r\n if (libraryMismatch || versionMismatch) {\r\n const warning = [\r\n `Unable to register library \"${library}\" with version \"${version}\":`\r\n ];\r\n if (libraryMismatch) {\r\n warning.push(`library name \"${library}\" contains illegal characters (whitespace or \"/\")`);\r\n }\r\n if (libraryMismatch && versionMismatch) {\r\n warning.push('and');\r\n }\r\n if (versionMismatch) {\r\n warning.push(`version name \"${version}\" contains illegal characters (whitespace or \"/\")`);\r\n }\r\n logger.warn(warning.join(' '));\r\n return;\r\n }\r\n _registerComponent(new Component(`${library}-version`, () => ({ library, version }), \"VERSION\" /* ComponentType.VERSION */));\r\n}\r\n/**\r\n * Sets log handler for all Firebase SDKs.\r\n * @param logCallback - An optional custom log handler that executes user code whenever\r\n * the Firebase SDK makes a logging call.\r\n *\r\n * @public\r\n */\r\nfunction onLog(logCallback, options) {\r\n if (logCallback !== null && typeof logCallback !== 'function') {\r\n throw ERROR_FACTORY.create(\"invalid-log-argument\" /* AppError.INVALID_LOG_ARGUMENT */);\r\n }\r\n setUserLogHandler(logCallback, options);\r\n}\r\n/**\r\n * Sets log level for all Firebase SDKs.\r\n *\r\n * All of the log types above the current log level are captured (i.e. if\r\n * you set the log level to `info`, errors are logged, but `debug` and\r\n * `verbose` logs are not).\r\n *\r\n * @public\r\n */\r\nfunction setLogLevel(logLevel) {\r\n setLogLevel$1(logLevel);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst DB_NAME = 'firebase-heartbeat-database';\r\nconst DB_VERSION = 1;\r\nconst STORE_NAME = 'firebase-heartbeat-store';\r\nlet dbPromise = null;\r\nfunction getDbPromise() {\r\n if (!dbPromise) {\r\n dbPromise = openDB(DB_NAME, DB_VERSION, {\r\n upgrade: (db, oldVersion) => {\r\n // We don't use 'break' in this switch statement, the fall-through\r\n // behavior is what we want, because if there are multiple versions between\r\n // the old version and the current version, we want ALL the migrations\r\n // that correspond to those versions to run, not only the last one.\r\n // eslint-disable-next-line default-case\r\n switch (oldVersion) {\r\n case 0:\r\n db.createObjectStore(STORE_NAME);\r\n }\r\n }\r\n }).catch(e => {\r\n throw ERROR_FACTORY.create(\"idb-open\" /* AppError.IDB_OPEN */, {\r\n originalErrorMessage: e.message\r\n });\r\n });\r\n }\r\n return dbPromise;\r\n}\r\nasync function readHeartbeatsFromIndexedDB(app) {\r\n try {\r\n const db = await getDbPromise();\r\n return db\r\n .transaction(STORE_NAME)\r\n .objectStore(STORE_NAME)\r\n .get(computeKey(app));\r\n }\r\n catch (e) {\r\n if (e instanceof FirebaseError) {\r\n logger.warn(e.message);\r\n }\r\n else {\r\n const idbGetError = ERROR_FACTORY.create(\"idb-get\" /* AppError.IDB_GET */, {\r\n originalErrorMessage: e === null || e === void 0 ? void 0 : e.message\r\n });\r\n logger.warn(idbGetError.message);\r\n }\r\n }\r\n}\r\nasync function writeHeartbeatsToIndexedDB(app, heartbeatObject) {\r\n try {\r\n const db = await getDbPromise();\r\n const tx = db.transaction(STORE_NAME, 'readwrite');\r\n const objectStore = tx.objectStore(STORE_NAME);\r\n await objectStore.put(heartbeatObject, computeKey(app));\r\n return tx.done;\r\n }\r\n catch (e) {\r\n if (e instanceof FirebaseError) {\r\n logger.warn(e.message);\r\n }\r\n else {\r\n const idbGetError = ERROR_FACTORY.create(\"idb-set\" /* AppError.IDB_WRITE */, {\r\n originalErrorMessage: e === null || e === void 0 ? void 0 : e.message\r\n });\r\n logger.warn(idbGetError.message);\r\n }\r\n }\r\n}\r\nfunction computeKey(app) {\r\n return `${app.name}!${app.options.appId}`;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst MAX_HEADER_BYTES = 1024;\r\n// 30 days\r\nconst STORED_HEARTBEAT_RETENTION_MAX_MILLIS = 30 * 24 * 60 * 60 * 1000;\r\nclass HeartbeatServiceImpl {\r\n constructor(container) {\r\n this.container = container;\r\n /**\r\n * In-memory cache for heartbeats, used by getHeartbeatsHeader() to generate\r\n * the header string.\r\n * Stores one record per date. This will be consolidated into the standard\r\n * format of one record per user agent string before being sent as a header.\r\n * Populated from indexedDB when the controller is instantiated and should\r\n * be kept in sync with indexedDB.\r\n * Leave public for easier testing.\r\n */\r\n this._heartbeatsCache = null;\r\n const app = this.container.getProvider('app').getImmediate();\r\n this._storage = new HeartbeatStorageImpl(app);\r\n this._heartbeatsCachePromise = this._storage.read().then(result => {\r\n this._heartbeatsCache = result;\r\n return result;\r\n });\r\n }\r\n /**\r\n * Called to report a heartbeat. The function will generate\r\n * a HeartbeatsByUserAgent object, update heartbeatsCache, and persist it\r\n * to IndexedDB.\r\n * Note that we only store one heartbeat per day. So if a heartbeat for today is\r\n * already logged, subsequent calls to this function in the same day will be ignored.\r\n */\r\n async triggerHeartbeat() {\r\n const platformLogger = this.container\r\n .getProvider('platform-logger')\r\n .getImmediate();\r\n // This is the \"Firebase user agent\" string from the platform logger\r\n // service, not the browser user agent.\r\n const agent = platformLogger.getPlatformInfoString();\r\n const date = getUTCDateString();\r\n if (this._heartbeatsCache === null) {\r\n this._heartbeatsCache = await this._heartbeatsCachePromise;\r\n }\r\n // Do not store a heartbeat if one is already stored for this day\r\n // or if a header has already been sent today.\r\n if (this._heartbeatsCache.lastSentHeartbeatDate === date ||\r\n this._heartbeatsCache.heartbeats.some(singleDateHeartbeat => singleDateHeartbeat.date === date)) {\r\n return;\r\n }\r\n else {\r\n // There is no entry for this date. Create one.\r\n this._heartbeatsCache.heartbeats.push({ date, agent });\r\n }\r\n // Remove entries older than 30 days.\r\n this._heartbeatsCache.heartbeats = this._heartbeatsCache.heartbeats.filter(singleDateHeartbeat => {\r\n const hbTimestamp = new Date(singleDateHeartbeat.date).valueOf();\r\n const now = Date.now();\r\n return now - hbTimestamp <= STORED_HEARTBEAT_RETENTION_MAX_MILLIS;\r\n });\r\n return this._storage.overwrite(this._heartbeatsCache);\r\n }\r\n /**\r\n * Returns a base64 encoded string which can be attached to the heartbeat-specific header directly.\r\n * It also clears all heartbeats from memory as well as in IndexedDB.\r\n *\r\n * NOTE: Consuming product SDKs should not send the header if this method\r\n * returns an empty string.\r\n */\r\n async getHeartbeatsHeader() {\r\n if (this._heartbeatsCache === null) {\r\n await this._heartbeatsCachePromise;\r\n }\r\n // If it's still null or the array is empty, there is no data to send.\r\n if (this._heartbeatsCache === null ||\r\n this._heartbeatsCache.heartbeats.length === 0) {\r\n return '';\r\n }\r\n const date = getUTCDateString();\r\n // Extract as many heartbeats from the cache as will fit under the size limit.\r\n const { heartbeatsToSend, unsentEntries } = extractHeartbeatsForHeader(this._heartbeatsCache.heartbeats);\r\n const headerString = base64urlEncodeWithoutPadding(JSON.stringify({ version: 2, heartbeats: heartbeatsToSend }));\r\n // Store last sent date to prevent another being logged/sent for the same day.\r\n this._heartbeatsCache.lastSentHeartbeatDate = date;\r\n if (unsentEntries.length > 0) {\r\n // Store any unsent entries if they exist.\r\n this._heartbeatsCache.heartbeats = unsentEntries;\r\n // This seems more likely than emptying the array (below) to lead to some odd state\r\n // since the cache isn't empty and this will be called again on the next request,\r\n // and is probably safest if we await it.\r\n await this._storage.overwrite(this._heartbeatsCache);\r\n }\r\n else {\r\n this._heartbeatsCache.heartbeats = [];\r\n // Do not wait for this, to reduce latency.\r\n void this._storage.overwrite(this._heartbeatsCache);\r\n }\r\n return headerString;\r\n }\r\n}\r\nfunction getUTCDateString() {\r\n const today = new Date();\r\n // Returns date format 'YYYY-MM-DD'\r\n return today.toISOString().substring(0, 10);\r\n}\r\nfunction extractHeartbeatsForHeader(heartbeatsCache, maxSize = MAX_HEADER_BYTES) {\r\n // Heartbeats grouped by user agent in the standard format to be sent in\r\n // the header.\r\n const heartbeatsToSend = [];\r\n // Single date format heartbeats that are not sent.\r\n let unsentEntries = heartbeatsCache.slice();\r\n for (const singleDateHeartbeat of heartbeatsCache) {\r\n // Look for an existing entry with the same user agent.\r\n const heartbeatEntry = heartbeatsToSend.find(hb => hb.agent === singleDateHeartbeat.agent);\r\n if (!heartbeatEntry) {\r\n // If no entry for this user agent exists, create one.\r\n heartbeatsToSend.push({\r\n agent: singleDateHeartbeat.agent,\r\n dates: [singleDateHeartbeat.date]\r\n });\r\n if (countBytes(heartbeatsToSend) > maxSize) {\r\n // If the header would exceed max size, remove the added heartbeat\r\n // entry and stop adding to the header.\r\n heartbeatsToSend.pop();\r\n break;\r\n }\r\n }\r\n else {\r\n heartbeatEntry.dates.push(singleDateHeartbeat.date);\r\n // If the header would exceed max size, remove the added date\r\n // and stop adding to the header.\r\n if (countBytes(heartbeatsToSend) > maxSize) {\r\n heartbeatEntry.dates.pop();\r\n break;\r\n }\r\n }\r\n // Pop unsent entry from queue. (Skipped if adding the entry exceeded\r\n // quota and the loop breaks early.)\r\n unsentEntries = unsentEntries.slice(1);\r\n }\r\n return {\r\n heartbeatsToSend,\r\n unsentEntries\r\n };\r\n}\r\nclass HeartbeatStorageImpl {\r\n constructor(app) {\r\n this.app = app;\r\n this._canUseIndexedDBPromise = this.runIndexedDBEnvironmentCheck();\r\n }\r\n async runIndexedDBEnvironmentCheck() {\r\n if (!isIndexedDBAvailable()) {\r\n return false;\r\n }\r\n else {\r\n return validateIndexedDBOpenable()\r\n .then(() => true)\r\n .catch(() => false);\r\n }\r\n }\r\n /**\r\n * Read all heartbeats.\r\n */\r\n async read() {\r\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\r\n if (!canUseIndexedDB) {\r\n return { heartbeats: [] };\r\n }\r\n else {\r\n const idbHeartbeatObject = await readHeartbeatsFromIndexedDB(this.app);\r\n return idbHeartbeatObject || { heartbeats: [] };\r\n }\r\n }\r\n // overwrite the storage with the provided heartbeats\r\n async overwrite(heartbeatsObject) {\r\n var _a;\r\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\r\n if (!canUseIndexedDB) {\r\n return;\r\n }\r\n else {\r\n const existingHeartbeatsObject = await this.read();\r\n return writeHeartbeatsToIndexedDB(this.app, {\r\n lastSentHeartbeatDate: (_a = heartbeatsObject.lastSentHeartbeatDate) !== null && _a !== void 0 ? _a : existingHeartbeatsObject.lastSentHeartbeatDate,\r\n heartbeats: heartbeatsObject.heartbeats\r\n });\r\n }\r\n }\r\n // add heartbeats\r\n async add(heartbeatsObject) {\r\n var _a;\r\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\r\n if (!canUseIndexedDB) {\r\n return;\r\n }\r\n else {\r\n const existingHeartbeatsObject = await this.read();\r\n return writeHeartbeatsToIndexedDB(this.app, {\r\n lastSentHeartbeatDate: (_a = heartbeatsObject.lastSentHeartbeatDate) !== null && _a !== void 0 ? _a : existingHeartbeatsObject.lastSentHeartbeatDate,\r\n heartbeats: [\r\n ...existingHeartbeatsObject.heartbeats,\r\n ...heartbeatsObject.heartbeats\r\n ]\r\n });\r\n }\r\n }\r\n}\r\n/**\r\n * Calculate bytes of a HeartbeatsByUserAgent array after being wrapped\r\n * in a platform logging header JSON object, stringified, and converted\r\n * to base 64.\r\n */\r\nfunction countBytes(heartbeatsCache) {\r\n // base64 has a restricted set of characters, all of which should be 1 byte.\r\n return base64urlEncodeWithoutPadding(\r\n // heartbeatsCache wrapper properties\r\n JSON.stringify({ version: 2, heartbeats: heartbeatsCache })).length;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction registerCoreComponents(variant) {\r\n _registerComponent(new Component('platform-logger', container => new PlatformLoggerServiceImpl(container), \"PRIVATE\" /* ComponentType.PRIVATE */));\r\n _registerComponent(new Component('heartbeat', container => new HeartbeatServiceImpl(container), \"PRIVATE\" /* ComponentType.PRIVATE */));\r\n // Register `app` package.\r\n registerVersion(name$o, version$1, variant);\r\n // BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\r\n registerVersion(name$o, version$1, 'esm2017');\r\n // Register platform SDK identifier (no version).\r\n registerVersion('fire-js', '');\r\n}\n\n/**\r\n * Firebase App\r\n *\r\n * @remarks This package coordinates the communication between the different Firebase components\r\n * @packageDocumentation\r\n */\r\nregisterCoreComponents('');\n\nexport { SDK_VERSION, DEFAULT_ENTRY_NAME as _DEFAULT_ENTRY_NAME, _addComponent, _addOrOverwriteComponent, _apps, _clearComponents, _components, _getProvider, _registerComponent, _removeServiceInstance, deleteApp, getApp, getApps, initializeApp, onLog, registerVersion, setLogLevel };\n//# sourceMappingURL=index.esm2017.js.map\n","import { registerVersion } from '@firebase/app';\nexport * from '@firebase/app';\n\nvar name = \"firebase\";\nvar version = \"9.17.1\";\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nregisterVersion(name, version, 'app');\n//# sourceMappingURL=index.esm.js.map\n","import { _getProvider, getApp, _registerComponent, registerVersion } from '@firebase/app';\nimport { Component } from '@firebase/component';\nimport { ErrorFactory, FirebaseError } from '@firebase/util';\nimport { openDB } from 'idb';\n\nconst name = \"@firebase/installations\";\nconst version = \"0.6.3\";\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst PENDING_TIMEOUT_MS = 10000;\r\nconst PACKAGE_VERSION = `w:${version}`;\r\nconst INTERNAL_AUTH_VERSION = 'FIS_v2';\r\nconst INSTALLATIONS_API_URL = 'https://firebaseinstallations.googleapis.com/v1';\r\nconst TOKEN_EXPIRATION_BUFFER = 60 * 60 * 1000; // One hour\r\nconst SERVICE = 'installations';\r\nconst SERVICE_NAME = 'Installations';\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst ERROR_DESCRIPTION_MAP = {\r\n [\"missing-app-config-values\" /* ErrorCode.MISSING_APP_CONFIG_VALUES */]: 'Missing App configuration value: \"{$valueName}\"',\r\n [\"not-registered\" /* ErrorCode.NOT_REGISTERED */]: 'Firebase Installation is not registered.',\r\n [\"installation-not-found\" /* ErrorCode.INSTALLATION_NOT_FOUND */]: 'Firebase Installation not found.',\r\n [\"request-failed\" /* ErrorCode.REQUEST_FAILED */]: '{$requestName} request failed with error \"{$serverCode} {$serverStatus}: {$serverMessage}\"',\r\n [\"app-offline\" /* ErrorCode.APP_OFFLINE */]: 'Could not process request. Application offline.',\r\n [\"delete-pending-registration\" /* ErrorCode.DELETE_PENDING_REGISTRATION */]: \"Can't delete installation while there is a pending registration request.\"\r\n};\r\nconst ERROR_FACTORY = new ErrorFactory(SERVICE, SERVICE_NAME, ERROR_DESCRIPTION_MAP);\r\n/** Returns true if error is a FirebaseError that is based on an error from the server. */\r\nfunction isServerError(error) {\r\n return (error instanceof FirebaseError &&\r\n error.code.includes(\"request-failed\" /* ErrorCode.REQUEST_FAILED */));\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction getInstallationsEndpoint({ projectId }) {\r\n return `${INSTALLATIONS_API_URL}/projects/${projectId}/installations`;\r\n}\r\nfunction extractAuthTokenInfoFromResponse(response) {\r\n return {\r\n token: response.token,\r\n requestStatus: 2 /* RequestStatus.COMPLETED */,\r\n expiresIn: getExpiresInFromResponseExpiresIn(response.expiresIn),\r\n creationTime: Date.now()\r\n };\r\n}\r\nasync function getErrorFromResponse(requestName, response) {\r\n const responseJson = await response.json();\r\n const errorData = responseJson.error;\r\n return ERROR_FACTORY.create(\"request-failed\" /* ErrorCode.REQUEST_FAILED */, {\r\n requestName,\r\n serverCode: errorData.code,\r\n serverMessage: errorData.message,\r\n serverStatus: errorData.status\r\n });\r\n}\r\nfunction getHeaders({ apiKey }) {\r\n return new Headers({\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json',\r\n 'x-goog-api-key': apiKey\r\n });\r\n}\r\nfunction getHeadersWithAuth(appConfig, { refreshToken }) {\r\n const headers = getHeaders(appConfig);\r\n headers.append('Authorization', getAuthorizationHeader(refreshToken));\r\n return headers;\r\n}\r\n/**\r\n * Calls the passed in fetch wrapper and returns the response.\r\n * If the returned response has a status of 5xx, re-runs the function once and\r\n * returns the response.\r\n */\r\nasync function retryIfServerError(fn) {\r\n const result = await fn();\r\n if (result.status >= 500 && result.status < 600) {\r\n // Internal Server Error. Retry request.\r\n return fn();\r\n }\r\n return result;\r\n}\r\nfunction getExpiresInFromResponseExpiresIn(responseExpiresIn) {\r\n // This works because the server will never respond with fractions of a second.\r\n return Number(responseExpiresIn.replace('s', '000'));\r\n}\r\nfunction getAuthorizationHeader(refreshToken) {\r\n return `${INTERNAL_AUTH_VERSION} ${refreshToken}`;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function createInstallationRequest({ appConfig, heartbeatServiceProvider }, { fid }) {\r\n const endpoint = getInstallationsEndpoint(appConfig);\r\n const headers = getHeaders(appConfig);\r\n // If heartbeat service exists, add the heartbeat string to the header.\r\n const heartbeatService = heartbeatServiceProvider.getImmediate({\r\n optional: true\r\n });\r\n if (heartbeatService) {\r\n const heartbeatsHeader = await heartbeatService.getHeartbeatsHeader();\r\n if (heartbeatsHeader) {\r\n headers.append('x-firebase-client', heartbeatsHeader);\r\n }\r\n }\r\n const body = {\r\n fid,\r\n authVersion: INTERNAL_AUTH_VERSION,\r\n appId: appConfig.appId,\r\n sdkVersion: PACKAGE_VERSION\r\n };\r\n const request = {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify(body)\r\n };\r\n const response = await retryIfServerError(() => fetch(endpoint, request));\r\n if (response.ok) {\r\n const responseValue = await response.json();\r\n const registeredInstallationEntry = {\r\n fid: responseValue.fid || fid,\r\n registrationStatus: 2 /* RequestStatus.COMPLETED */,\r\n refreshToken: responseValue.refreshToken,\r\n authToken: extractAuthTokenInfoFromResponse(responseValue.authToken)\r\n };\r\n return registeredInstallationEntry;\r\n }\r\n else {\r\n throw await getErrorFromResponse('Create Installation', response);\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/** Returns a promise that resolves after given time passes. */\r\nfunction sleep(ms) {\r\n return new Promise(resolve => {\r\n setTimeout(resolve, ms);\r\n });\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction bufferToBase64UrlSafe(array) {\r\n const b64 = btoa(String.fromCharCode(...array));\r\n return b64.replace(/\\+/g, '-').replace(/\\//g, '_');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst VALID_FID_PATTERN = /^[cdef][\\w-]{21}$/;\r\nconst INVALID_FID = '';\r\n/**\r\n * Generates a new FID using random values from Web Crypto API.\r\n * Returns an empty string if FID generation fails for any reason.\r\n */\r\nfunction generateFid() {\r\n try {\r\n // A valid FID has exactly 22 base64 characters, which is 132 bits, or 16.5\r\n // bytes. our implementation generates a 17 byte array instead.\r\n const fidByteArray = new Uint8Array(17);\r\n const crypto = self.crypto || self.msCrypto;\r\n crypto.getRandomValues(fidByteArray);\r\n // Replace the first 4 random bits with the constant FID header of 0b0111.\r\n fidByteArray[0] = 0b01110000 + (fidByteArray[0] % 0b00010000);\r\n const fid = encode(fidByteArray);\r\n return VALID_FID_PATTERN.test(fid) ? fid : INVALID_FID;\r\n }\r\n catch (_a) {\r\n // FID generation errored\r\n return INVALID_FID;\r\n }\r\n}\r\n/** Converts a FID Uint8Array to a base64 string representation. */\r\nfunction encode(fidByteArray) {\r\n const b64String = bufferToBase64UrlSafe(fidByteArray);\r\n // Remove the 23rd character that was added because of the extra 4 bits at the\r\n // end of our 17 byte array, and the '=' padding.\r\n return b64String.substr(0, 22);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/** Returns a string key that can be used to identify the app. */\r\nfunction getKey(appConfig) {\r\n return `${appConfig.appName}!${appConfig.appId}`;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst fidChangeCallbacks = new Map();\r\n/**\r\n * Calls the onIdChange callbacks with the new FID value, and broadcasts the\r\n * change to other tabs.\r\n */\r\nfunction fidChanged(appConfig, fid) {\r\n const key = getKey(appConfig);\r\n callFidChangeCallbacks(key, fid);\r\n broadcastFidChange(key, fid);\r\n}\r\nfunction addCallback(appConfig, callback) {\r\n // Open the broadcast channel if it's not already open,\r\n // to be able to listen to change events from other tabs.\r\n getBroadcastChannel();\r\n const key = getKey(appConfig);\r\n let callbackSet = fidChangeCallbacks.get(key);\r\n if (!callbackSet) {\r\n callbackSet = new Set();\r\n fidChangeCallbacks.set(key, callbackSet);\r\n }\r\n callbackSet.add(callback);\r\n}\r\nfunction removeCallback(appConfig, callback) {\r\n const key = getKey(appConfig);\r\n const callbackSet = fidChangeCallbacks.get(key);\r\n if (!callbackSet) {\r\n return;\r\n }\r\n callbackSet.delete(callback);\r\n if (callbackSet.size === 0) {\r\n fidChangeCallbacks.delete(key);\r\n }\r\n // Close broadcast channel if there are no more callbacks.\r\n closeBroadcastChannel();\r\n}\r\nfunction callFidChangeCallbacks(key, fid) {\r\n const callbacks = fidChangeCallbacks.get(key);\r\n if (!callbacks) {\r\n return;\r\n }\r\n for (const callback of callbacks) {\r\n callback(fid);\r\n }\r\n}\r\nfunction broadcastFidChange(key, fid) {\r\n const channel = getBroadcastChannel();\r\n if (channel) {\r\n channel.postMessage({ key, fid });\r\n }\r\n closeBroadcastChannel();\r\n}\r\nlet broadcastChannel = null;\r\n/** Opens and returns a BroadcastChannel if it is supported by the browser. */\r\nfunction getBroadcastChannel() {\r\n if (!broadcastChannel && 'BroadcastChannel' in self) {\r\n broadcastChannel = new BroadcastChannel('[Firebase] FID Change');\r\n broadcastChannel.onmessage = e => {\r\n callFidChangeCallbacks(e.data.key, e.data.fid);\r\n };\r\n }\r\n return broadcastChannel;\r\n}\r\nfunction closeBroadcastChannel() {\r\n if (fidChangeCallbacks.size === 0 && broadcastChannel) {\r\n broadcastChannel.close();\r\n broadcastChannel = null;\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst DATABASE_NAME = 'firebase-installations-database';\r\nconst DATABASE_VERSION = 1;\r\nconst OBJECT_STORE_NAME = 'firebase-installations-store';\r\nlet dbPromise = null;\r\nfunction getDbPromise() {\r\n if (!dbPromise) {\r\n dbPromise = openDB(DATABASE_NAME, DATABASE_VERSION, {\r\n upgrade: (db, oldVersion) => {\r\n // We don't use 'break' in this switch statement, the fall-through\r\n // behavior is what we want, because if there are multiple versions between\r\n // the old version and the current version, we want ALL the migrations\r\n // that correspond to those versions to run, not only the last one.\r\n // eslint-disable-next-line default-case\r\n switch (oldVersion) {\r\n case 0:\r\n db.createObjectStore(OBJECT_STORE_NAME);\r\n }\r\n }\r\n });\r\n }\r\n return dbPromise;\r\n}\r\n/** Assigns or overwrites the record for the given key with the given value. */\r\nasync function set(appConfig, value) {\r\n const key = getKey(appConfig);\r\n const db = await getDbPromise();\r\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\r\n const objectStore = tx.objectStore(OBJECT_STORE_NAME);\r\n const oldValue = (await objectStore.get(key));\r\n await objectStore.put(value, key);\r\n await tx.done;\r\n if (!oldValue || oldValue.fid !== value.fid) {\r\n fidChanged(appConfig, value.fid);\r\n }\r\n return value;\r\n}\r\n/** Removes record(s) from the objectStore that match the given key. */\r\nasync function remove(appConfig) {\r\n const key = getKey(appConfig);\r\n const db = await getDbPromise();\r\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\r\n await tx.objectStore(OBJECT_STORE_NAME).delete(key);\r\n await tx.done;\r\n}\r\n/**\r\n * Atomically updates a record with the result of updateFn, which gets\r\n * called with the current value. If newValue is undefined, the record is\r\n * deleted instead.\r\n * @return Updated value\r\n */\r\nasync function update(appConfig, updateFn) {\r\n const key = getKey(appConfig);\r\n const db = await getDbPromise();\r\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\r\n const store = tx.objectStore(OBJECT_STORE_NAME);\r\n const oldValue = (await store.get(key));\r\n const newValue = updateFn(oldValue);\r\n if (newValue === undefined) {\r\n await store.delete(key);\r\n }\r\n else {\r\n await store.put(newValue, key);\r\n }\r\n await tx.done;\r\n if (newValue && (!oldValue || oldValue.fid !== newValue.fid)) {\r\n fidChanged(appConfig, newValue.fid);\r\n }\r\n return newValue;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Updates and returns the InstallationEntry from the database.\r\n * Also triggers a registration request if it is necessary and possible.\r\n */\r\nasync function getInstallationEntry(installations) {\r\n let registrationPromise;\r\n const installationEntry = await update(installations.appConfig, oldEntry => {\r\n const installationEntry = updateOrCreateInstallationEntry(oldEntry);\r\n const entryWithPromise = triggerRegistrationIfNecessary(installations, installationEntry);\r\n registrationPromise = entryWithPromise.registrationPromise;\r\n return entryWithPromise.installationEntry;\r\n });\r\n if (installationEntry.fid === INVALID_FID) {\r\n // FID generation failed. Waiting for the FID from the server.\r\n return { installationEntry: await registrationPromise };\r\n }\r\n return {\r\n installationEntry,\r\n registrationPromise\r\n };\r\n}\r\n/**\r\n * Creates a new Installation Entry if one does not exist.\r\n * Also clears timed out pending requests.\r\n */\r\nfunction updateOrCreateInstallationEntry(oldEntry) {\r\n const entry = oldEntry || {\r\n fid: generateFid(),\r\n registrationStatus: 0 /* RequestStatus.NOT_STARTED */\r\n };\r\n return clearTimedOutRequest(entry);\r\n}\r\n/**\r\n * If the Firebase Installation is not registered yet, this will trigger the\r\n * registration and return an InProgressInstallationEntry.\r\n *\r\n * If registrationPromise does not exist, the installationEntry is guaranteed\r\n * to be registered.\r\n */\r\nfunction triggerRegistrationIfNecessary(installations, installationEntry) {\r\n if (installationEntry.registrationStatus === 0 /* RequestStatus.NOT_STARTED */) {\r\n if (!navigator.onLine) {\r\n // Registration required but app is offline.\r\n const registrationPromiseWithError = Promise.reject(ERROR_FACTORY.create(\"app-offline\" /* ErrorCode.APP_OFFLINE */));\r\n return {\r\n installationEntry,\r\n registrationPromise: registrationPromiseWithError\r\n };\r\n }\r\n // Try registering. Change status to IN_PROGRESS.\r\n const inProgressEntry = {\r\n fid: installationEntry.fid,\r\n registrationStatus: 1 /* RequestStatus.IN_PROGRESS */,\r\n registrationTime: Date.now()\r\n };\r\n const registrationPromise = registerInstallation(installations, inProgressEntry);\r\n return { installationEntry: inProgressEntry, registrationPromise };\r\n }\r\n else if (installationEntry.registrationStatus === 1 /* RequestStatus.IN_PROGRESS */) {\r\n return {\r\n installationEntry,\r\n registrationPromise: waitUntilFidRegistration(installations)\r\n };\r\n }\r\n else {\r\n return { installationEntry };\r\n }\r\n}\r\n/** This will be executed only once for each new Firebase Installation. */\r\nasync function registerInstallation(installations, installationEntry) {\r\n try {\r\n const registeredInstallationEntry = await createInstallationRequest(installations, installationEntry);\r\n return set(installations.appConfig, registeredInstallationEntry);\r\n }\r\n catch (e) {\r\n if (isServerError(e) && e.customData.serverCode === 409) {\r\n // Server returned a \"FID can not be used\" error.\r\n // Generate a new ID next time.\r\n await remove(installations.appConfig);\r\n }\r\n else {\r\n // Registration failed. Set FID as not registered.\r\n await set(installations.appConfig, {\r\n fid: installationEntry.fid,\r\n registrationStatus: 0 /* RequestStatus.NOT_STARTED */\r\n });\r\n }\r\n throw e;\r\n }\r\n}\r\n/** Call if FID registration is pending in another request. */\r\nasync function waitUntilFidRegistration(installations) {\r\n // Unfortunately, there is no way of reliably observing when a value in\r\n // IndexedDB changes (yet, see https://github.com/WICG/indexed-db-observers),\r\n // so we need to poll.\r\n let entry = await updateInstallationRequest(installations.appConfig);\r\n while (entry.registrationStatus === 1 /* RequestStatus.IN_PROGRESS */) {\r\n // createInstallation request still in progress.\r\n await sleep(100);\r\n entry = await updateInstallationRequest(installations.appConfig);\r\n }\r\n if (entry.registrationStatus === 0 /* RequestStatus.NOT_STARTED */) {\r\n // The request timed out or failed in a different call. Try again.\r\n const { installationEntry, registrationPromise } = await getInstallationEntry(installations);\r\n if (registrationPromise) {\r\n return registrationPromise;\r\n }\r\n else {\r\n // if there is no registrationPromise, entry is registered.\r\n return installationEntry;\r\n }\r\n }\r\n return entry;\r\n}\r\n/**\r\n * Called only if there is a CreateInstallation request in progress.\r\n *\r\n * Updates the InstallationEntry in the DB based on the status of the\r\n * CreateInstallation request.\r\n *\r\n * Returns the updated InstallationEntry.\r\n */\r\nfunction updateInstallationRequest(appConfig) {\r\n return update(appConfig, oldEntry => {\r\n if (!oldEntry) {\r\n throw ERROR_FACTORY.create(\"installation-not-found\" /* ErrorCode.INSTALLATION_NOT_FOUND */);\r\n }\r\n return clearTimedOutRequest(oldEntry);\r\n });\r\n}\r\nfunction clearTimedOutRequest(entry) {\r\n if (hasInstallationRequestTimedOut(entry)) {\r\n return {\r\n fid: entry.fid,\r\n registrationStatus: 0 /* RequestStatus.NOT_STARTED */\r\n };\r\n }\r\n return entry;\r\n}\r\nfunction hasInstallationRequestTimedOut(installationEntry) {\r\n return (installationEntry.registrationStatus === 1 /* RequestStatus.IN_PROGRESS */ &&\r\n installationEntry.registrationTime + PENDING_TIMEOUT_MS < Date.now());\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function generateAuthTokenRequest({ appConfig, heartbeatServiceProvider }, installationEntry) {\r\n const endpoint = getGenerateAuthTokenEndpoint(appConfig, installationEntry);\r\n const headers = getHeadersWithAuth(appConfig, installationEntry);\r\n // If heartbeat service exists, add the heartbeat string to the header.\r\n const heartbeatService = heartbeatServiceProvider.getImmediate({\r\n optional: true\r\n });\r\n if (heartbeatService) {\r\n const heartbeatsHeader = await heartbeatService.getHeartbeatsHeader();\r\n if (heartbeatsHeader) {\r\n headers.append('x-firebase-client', heartbeatsHeader);\r\n }\r\n }\r\n const body = {\r\n installation: {\r\n sdkVersion: PACKAGE_VERSION,\r\n appId: appConfig.appId\r\n }\r\n };\r\n const request = {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify(body)\r\n };\r\n const response = await retryIfServerError(() => fetch(endpoint, request));\r\n if (response.ok) {\r\n const responseValue = await response.json();\r\n const completedAuthToken = extractAuthTokenInfoFromResponse(responseValue);\r\n return completedAuthToken;\r\n }\r\n else {\r\n throw await getErrorFromResponse('Generate Auth Token', response);\r\n }\r\n}\r\nfunction getGenerateAuthTokenEndpoint(appConfig, { fid }) {\r\n return `${getInstallationsEndpoint(appConfig)}/${fid}/authTokens:generate`;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns a valid authentication token for the installation. Generates a new\r\n * token if one doesn't exist, is expired or about to expire.\r\n *\r\n * Should only be called if the Firebase Installation is registered.\r\n */\r\nasync function refreshAuthToken(installations, forceRefresh = false) {\r\n let tokenPromise;\r\n const entry = await update(installations.appConfig, oldEntry => {\r\n if (!isEntryRegistered(oldEntry)) {\r\n throw ERROR_FACTORY.create(\"not-registered\" /* ErrorCode.NOT_REGISTERED */);\r\n }\r\n const oldAuthToken = oldEntry.authToken;\r\n if (!forceRefresh && isAuthTokenValid(oldAuthToken)) {\r\n // There is a valid token in the DB.\r\n return oldEntry;\r\n }\r\n else if (oldAuthToken.requestStatus === 1 /* RequestStatus.IN_PROGRESS */) {\r\n // There already is a token request in progress.\r\n tokenPromise = waitUntilAuthTokenRequest(installations, forceRefresh);\r\n return oldEntry;\r\n }\r\n else {\r\n // No token or token expired.\r\n if (!navigator.onLine) {\r\n throw ERROR_FACTORY.create(\"app-offline\" /* ErrorCode.APP_OFFLINE */);\r\n }\r\n const inProgressEntry = makeAuthTokenRequestInProgressEntry(oldEntry);\r\n tokenPromise = fetchAuthTokenFromServer(installations, inProgressEntry);\r\n return inProgressEntry;\r\n }\r\n });\r\n const authToken = tokenPromise\r\n ? await tokenPromise\r\n : entry.authToken;\r\n return authToken;\r\n}\r\n/**\r\n * Call only if FID is registered and Auth Token request is in progress.\r\n *\r\n * Waits until the current pending request finishes. If the request times out,\r\n * tries once in this thread as well.\r\n */\r\nasync function waitUntilAuthTokenRequest(installations, forceRefresh) {\r\n // Unfortunately, there is no way of reliably observing when a value in\r\n // IndexedDB changes (yet, see https://github.com/WICG/indexed-db-observers),\r\n // so we need to poll.\r\n let entry = await updateAuthTokenRequest(installations.appConfig);\r\n while (entry.authToken.requestStatus === 1 /* RequestStatus.IN_PROGRESS */) {\r\n // generateAuthToken still in progress.\r\n await sleep(100);\r\n entry = await updateAuthTokenRequest(installations.appConfig);\r\n }\r\n const authToken = entry.authToken;\r\n if (authToken.requestStatus === 0 /* RequestStatus.NOT_STARTED */) {\r\n // The request timed out or failed in a different call. Try again.\r\n return refreshAuthToken(installations, forceRefresh);\r\n }\r\n else {\r\n return authToken;\r\n }\r\n}\r\n/**\r\n * Called only if there is a GenerateAuthToken request in progress.\r\n *\r\n * Updates the InstallationEntry in the DB based on the status of the\r\n * GenerateAuthToken request.\r\n *\r\n * Returns the updated InstallationEntry.\r\n */\r\nfunction updateAuthTokenRequest(appConfig) {\r\n return update(appConfig, oldEntry => {\r\n if (!isEntryRegistered(oldEntry)) {\r\n throw ERROR_FACTORY.create(\"not-registered\" /* ErrorCode.NOT_REGISTERED */);\r\n }\r\n const oldAuthToken = oldEntry.authToken;\r\n if (hasAuthTokenRequestTimedOut(oldAuthToken)) {\r\n return Object.assign(Object.assign({}, oldEntry), { authToken: { requestStatus: 0 /* RequestStatus.NOT_STARTED */ } });\r\n }\r\n return oldEntry;\r\n });\r\n}\r\nasync function fetchAuthTokenFromServer(installations, installationEntry) {\r\n try {\r\n const authToken = await generateAuthTokenRequest(installations, installationEntry);\r\n const updatedInstallationEntry = Object.assign(Object.assign({}, installationEntry), { authToken });\r\n await set(installations.appConfig, updatedInstallationEntry);\r\n return authToken;\r\n }\r\n catch (e) {\r\n if (isServerError(e) &&\r\n (e.customData.serverCode === 401 || e.customData.serverCode === 404)) {\r\n // Server returned a \"FID not found\" or a \"Invalid authentication\" error.\r\n // Generate a new ID next time.\r\n await remove(installations.appConfig);\r\n }\r\n else {\r\n const updatedInstallationEntry = Object.assign(Object.assign({}, installationEntry), { authToken: { requestStatus: 0 /* RequestStatus.NOT_STARTED */ } });\r\n await set(installations.appConfig, updatedInstallationEntry);\r\n }\r\n throw e;\r\n }\r\n}\r\nfunction isEntryRegistered(installationEntry) {\r\n return (installationEntry !== undefined &&\r\n installationEntry.registrationStatus === 2 /* RequestStatus.COMPLETED */);\r\n}\r\nfunction isAuthTokenValid(authToken) {\r\n return (authToken.requestStatus === 2 /* RequestStatus.COMPLETED */ &&\r\n !isAuthTokenExpired(authToken));\r\n}\r\nfunction isAuthTokenExpired(authToken) {\r\n const now = Date.now();\r\n return (now < authToken.creationTime ||\r\n authToken.creationTime + authToken.expiresIn < now + TOKEN_EXPIRATION_BUFFER);\r\n}\r\n/** Returns an updated InstallationEntry with an InProgressAuthToken. */\r\nfunction makeAuthTokenRequestInProgressEntry(oldEntry) {\r\n const inProgressAuthToken = {\r\n requestStatus: 1 /* RequestStatus.IN_PROGRESS */,\r\n requestTime: Date.now()\r\n };\r\n return Object.assign(Object.assign({}, oldEntry), { authToken: inProgressAuthToken });\r\n}\r\nfunction hasAuthTokenRequestTimedOut(authToken) {\r\n return (authToken.requestStatus === 1 /* RequestStatus.IN_PROGRESS */ &&\r\n authToken.requestTime + PENDING_TIMEOUT_MS < Date.now());\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Creates a Firebase Installation if there isn't one for the app and\r\n * returns the Installation ID.\r\n * @param installations - The `Installations` instance.\r\n *\r\n * @public\r\n */\r\nasync function getId(installations) {\r\n const installationsImpl = installations;\r\n const { installationEntry, registrationPromise } = await getInstallationEntry(installationsImpl);\r\n if (registrationPromise) {\r\n registrationPromise.catch(console.error);\r\n }\r\n else {\r\n // If the installation is already registered, update the authentication\r\n // token if needed.\r\n refreshAuthToken(installationsImpl).catch(console.error);\r\n }\r\n return installationEntry.fid;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns a Firebase Installations auth token, identifying the current\r\n * Firebase Installation.\r\n * @param installations - The `Installations` instance.\r\n * @param forceRefresh - Force refresh regardless of token expiration.\r\n *\r\n * @public\r\n */\r\nasync function getToken(installations, forceRefresh = false) {\r\n const installationsImpl = installations;\r\n await completeInstallationRegistration(installationsImpl);\r\n // At this point we either have a Registered Installation in the DB, or we've\r\n // already thrown an error.\r\n const authToken = await refreshAuthToken(installationsImpl, forceRefresh);\r\n return authToken.token;\r\n}\r\nasync function completeInstallationRegistration(installations) {\r\n const { registrationPromise } = await getInstallationEntry(installations);\r\n if (registrationPromise) {\r\n // A createInstallation request is in progress. Wait until it finishes.\r\n await registrationPromise;\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function deleteInstallationRequest(appConfig, installationEntry) {\r\n const endpoint = getDeleteEndpoint(appConfig, installationEntry);\r\n const headers = getHeadersWithAuth(appConfig, installationEntry);\r\n const request = {\r\n method: 'DELETE',\r\n headers\r\n };\r\n const response = await retryIfServerError(() => fetch(endpoint, request));\r\n if (!response.ok) {\r\n throw await getErrorFromResponse('Delete Installation', response);\r\n }\r\n}\r\nfunction getDeleteEndpoint(appConfig, { fid }) {\r\n return `${getInstallationsEndpoint(appConfig)}/${fid}`;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Deletes the Firebase Installation and all associated data.\r\n * @param installations - The `Installations` instance.\r\n *\r\n * @public\r\n */\r\nasync function deleteInstallations(installations) {\r\n const { appConfig } = installations;\r\n const entry = await update(appConfig, oldEntry => {\r\n if (oldEntry && oldEntry.registrationStatus === 0 /* RequestStatus.NOT_STARTED */) {\r\n // Delete the unregistered entry without sending a deleteInstallation request.\r\n return undefined;\r\n }\r\n return oldEntry;\r\n });\r\n if (entry) {\r\n if (entry.registrationStatus === 1 /* RequestStatus.IN_PROGRESS */) {\r\n // Can't delete while trying to register.\r\n throw ERROR_FACTORY.create(\"delete-pending-registration\" /* ErrorCode.DELETE_PENDING_REGISTRATION */);\r\n }\r\n else if (entry.registrationStatus === 2 /* RequestStatus.COMPLETED */) {\r\n if (!navigator.onLine) {\r\n throw ERROR_FACTORY.create(\"app-offline\" /* ErrorCode.APP_OFFLINE */);\r\n }\r\n else {\r\n await deleteInstallationRequest(appConfig, entry);\r\n await remove(appConfig);\r\n }\r\n }\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Sets a new callback that will get called when Installation ID changes.\r\n * Returns an unsubscribe function that will remove the callback when called.\r\n * @param installations - The `Installations` instance.\r\n * @param callback - The callback function that is invoked when FID changes.\r\n * @returns A function that can be called to unsubscribe.\r\n *\r\n * @public\r\n */\r\nfunction onIdChange(installations, callback) {\r\n const { appConfig } = installations;\r\n addCallback(appConfig, callback);\r\n return () => {\r\n removeCallback(appConfig, callback);\r\n };\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns an instance of {@link Installations} associated with the given\r\n * {@link @firebase/app#FirebaseApp} instance.\r\n * @param app - The {@link @firebase/app#FirebaseApp} instance.\r\n *\r\n * @public\r\n */\r\nfunction getInstallations(app = getApp()) {\r\n const installationsImpl = _getProvider(app, 'installations').getImmediate();\r\n return installationsImpl;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction extractAppConfig(app) {\r\n if (!app || !app.options) {\r\n throw getMissingValueError('App Configuration');\r\n }\r\n if (!app.name) {\r\n throw getMissingValueError('App Name');\r\n }\r\n // Required app config keys\r\n const configKeys = [\r\n 'projectId',\r\n 'apiKey',\r\n 'appId'\r\n ];\r\n for (const keyName of configKeys) {\r\n if (!app.options[keyName]) {\r\n throw getMissingValueError(keyName);\r\n }\r\n }\r\n return {\r\n appName: app.name,\r\n projectId: app.options.projectId,\r\n apiKey: app.options.apiKey,\r\n appId: app.options.appId\r\n };\r\n}\r\nfunction getMissingValueError(valueName) {\r\n return ERROR_FACTORY.create(\"missing-app-config-values\" /* ErrorCode.MISSING_APP_CONFIG_VALUES */, {\r\n valueName\r\n });\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst INSTALLATIONS_NAME = 'installations';\r\nconst INSTALLATIONS_NAME_INTERNAL = 'installations-internal';\r\nconst publicFactory = (container) => {\r\n const app = container.getProvider('app').getImmediate();\r\n // Throws if app isn't configured properly.\r\n const appConfig = extractAppConfig(app);\r\n const heartbeatServiceProvider = _getProvider(app, 'heartbeat');\r\n const installationsImpl = {\r\n app,\r\n appConfig,\r\n heartbeatServiceProvider,\r\n _delete: () => Promise.resolve()\r\n };\r\n return installationsImpl;\r\n};\r\nconst internalFactory = (container) => {\r\n const app = container.getProvider('app').getImmediate();\r\n // Internal FIS instance relies on public FIS instance.\r\n const installations = _getProvider(app, INSTALLATIONS_NAME).getImmediate();\r\n const installationsInternal = {\r\n getId: () => getId(installations),\r\n getToken: (forceRefresh) => getToken(installations, forceRefresh)\r\n };\r\n return installationsInternal;\r\n};\r\nfunction registerInstallations() {\r\n _registerComponent(new Component(INSTALLATIONS_NAME, publicFactory, \"PUBLIC\" /* ComponentType.PUBLIC */));\r\n _registerComponent(new Component(INSTALLATIONS_NAME_INTERNAL, internalFactory, \"PRIVATE\" /* ComponentType.PRIVATE */));\r\n}\n\n/**\r\n * Firebase Installations\r\n *\r\n * @packageDocumentation\r\n */\r\nregisterInstallations();\r\nregisterVersion(name, version);\r\n// BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\r\nregisterVersion(name, version, 'esm2017');\n\nexport { deleteInstallations, getId, getInstallations, getToken, onIdChange };\n//# sourceMappingURL=index.esm2017.js.map\n","import '@firebase/installations';\nimport { Component } from '@firebase/component';\nimport { openDB, deleteDB } from 'idb';\nimport { ErrorFactory, validateIndexedDBOpenable, isIndexedDBAvailable, areCookiesEnabled, getModularInstance } from '@firebase/util';\nimport { _registerComponent, registerVersion, _getProvider, getApp } from '@firebase/app';\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst DEFAULT_SW_PATH = '/firebase-messaging-sw.js';\r\nconst DEFAULT_SW_SCOPE = '/firebase-cloud-messaging-push-scope';\r\nconst DEFAULT_VAPID_KEY = 'BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4';\r\nconst ENDPOINT = 'https://fcmregistrations.googleapis.com/v1';\r\nconst CONSOLE_CAMPAIGN_ID = 'google.c.a.c_id';\r\nconst CONSOLE_CAMPAIGN_NAME = 'google.c.a.c_l';\r\nconst CONSOLE_CAMPAIGN_TIME = 'google.c.a.ts';\r\n/** Set to '1' if Analytics is enabled for the campaign */\r\nconst CONSOLE_CAMPAIGN_ANALYTICS_ENABLED = 'google.c.a.e';\r\nvar MessageType$1;\r\n(function (MessageType) {\r\n MessageType[MessageType[\"DATA_MESSAGE\"] = 1] = \"DATA_MESSAGE\";\r\n MessageType[MessageType[\"DISPLAY_NOTIFICATION\"] = 3] = \"DISPLAY_NOTIFICATION\";\r\n})(MessageType$1 || (MessageType$1 = {}));\n\n/**\r\n * @license\r\n * Copyright 2018 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except\r\n * in compliance with the License. You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software distributed under the License\r\n * is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express\r\n * or implied. See the License for the specific language governing permissions and limitations under\r\n * the License.\r\n */\r\nvar MessageType;\r\n(function (MessageType) {\r\n MessageType[\"PUSH_RECEIVED\"] = \"push-received\";\r\n MessageType[\"NOTIFICATION_CLICKED\"] = \"notification-clicked\";\r\n})(MessageType || (MessageType = {}));\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction arrayToBase64(array) {\r\n const uint8Array = new Uint8Array(array);\r\n const base64String = btoa(String.fromCharCode(...uint8Array));\r\n return base64String.replace(/=/g, '').replace(/\\+/g, '-').replace(/\\//g, '_');\r\n}\r\nfunction base64ToArray(base64String) {\r\n const padding = '='.repeat((4 - (base64String.length % 4)) % 4);\r\n const base64 = (base64String + padding)\r\n .replace(/\\-/g, '+')\r\n .replace(/_/g, '/');\r\n const rawData = atob(base64);\r\n const outputArray = new Uint8Array(rawData.length);\r\n for (let i = 0; i < rawData.length; ++i) {\r\n outputArray[i] = rawData.charCodeAt(i);\r\n }\r\n return outputArray;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst OLD_DB_NAME = 'fcm_token_details_db';\r\n/**\r\n * The last DB version of 'fcm_token_details_db' was 4. This is one higher, so that the upgrade\r\n * callback is called for all versions of the old DB.\r\n */\r\nconst OLD_DB_VERSION = 5;\r\nconst OLD_OBJECT_STORE_NAME = 'fcm_token_object_Store';\r\nasync function migrateOldDatabase(senderId) {\r\n if ('databases' in indexedDB) {\r\n // indexedDb.databases() is an IndexedDB v3 API and does not exist in all browsers. TODO: Remove\r\n // typecast when it lands in TS types.\r\n const databases = await indexedDB.databases();\r\n const dbNames = databases.map(db => db.name);\r\n if (!dbNames.includes(OLD_DB_NAME)) {\r\n // old DB didn't exist, no need to open.\r\n return null;\r\n }\r\n }\r\n let tokenDetails = null;\r\n const db = await openDB(OLD_DB_NAME, OLD_DB_VERSION, {\r\n upgrade: async (db, oldVersion, newVersion, upgradeTransaction) => {\r\n var _a;\r\n if (oldVersion < 2) {\r\n // Database too old, skip migration.\r\n return;\r\n }\r\n if (!db.objectStoreNames.contains(OLD_OBJECT_STORE_NAME)) {\r\n // Database did not exist. Nothing to do.\r\n return;\r\n }\r\n const objectStore = upgradeTransaction.objectStore(OLD_OBJECT_STORE_NAME);\r\n const value = await objectStore.index('fcmSenderId').get(senderId);\r\n await objectStore.clear();\r\n if (!value) {\r\n // No entry in the database, nothing to migrate.\r\n return;\r\n }\r\n if (oldVersion === 2) {\r\n const oldDetails = value;\r\n if (!oldDetails.auth || !oldDetails.p256dh || !oldDetails.endpoint) {\r\n return;\r\n }\r\n tokenDetails = {\r\n token: oldDetails.fcmToken,\r\n createTime: (_a = oldDetails.createTime) !== null && _a !== void 0 ? _a : Date.now(),\r\n subscriptionOptions: {\r\n auth: oldDetails.auth,\r\n p256dh: oldDetails.p256dh,\r\n endpoint: oldDetails.endpoint,\r\n swScope: oldDetails.swScope,\r\n vapidKey: typeof oldDetails.vapidKey === 'string'\r\n ? oldDetails.vapidKey\r\n : arrayToBase64(oldDetails.vapidKey)\r\n }\r\n };\r\n }\r\n else if (oldVersion === 3) {\r\n const oldDetails = value;\r\n tokenDetails = {\r\n token: oldDetails.fcmToken,\r\n createTime: oldDetails.createTime,\r\n subscriptionOptions: {\r\n auth: arrayToBase64(oldDetails.auth),\r\n p256dh: arrayToBase64(oldDetails.p256dh),\r\n endpoint: oldDetails.endpoint,\r\n swScope: oldDetails.swScope,\r\n vapidKey: arrayToBase64(oldDetails.vapidKey)\r\n }\r\n };\r\n }\r\n else if (oldVersion === 4) {\r\n const oldDetails = value;\r\n tokenDetails = {\r\n token: oldDetails.fcmToken,\r\n createTime: oldDetails.createTime,\r\n subscriptionOptions: {\r\n auth: arrayToBase64(oldDetails.auth),\r\n p256dh: arrayToBase64(oldDetails.p256dh),\r\n endpoint: oldDetails.endpoint,\r\n swScope: oldDetails.swScope,\r\n vapidKey: arrayToBase64(oldDetails.vapidKey)\r\n }\r\n };\r\n }\r\n }\r\n });\r\n db.close();\r\n // Delete all old databases.\r\n await deleteDB(OLD_DB_NAME);\r\n await deleteDB('fcm_vapid_details_db');\r\n await deleteDB('undefined');\r\n return checkTokenDetails(tokenDetails) ? tokenDetails : null;\r\n}\r\nfunction checkTokenDetails(tokenDetails) {\r\n if (!tokenDetails || !tokenDetails.subscriptionOptions) {\r\n return false;\r\n }\r\n const { subscriptionOptions } = tokenDetails;\r\n return (typeof tokenDetails.createTime === 'number' &&\r\n tokenDetails.createTime > 0 &&\r\n typeof tokenDetails.token === 'string' &&\r\n tokenDetails.token.length > 0 &&\r\n typeof subscriptionOptions.auth === 'string' &&\r\n subscriptionOptions.auth.length > 0 &&\r\n typeof subscriptionOptions.p256dh === 'string' &&\r\n subscriptionOptions.p256dh.length > 0 &&\r\n typeof subscriptionOptions.endpoint === 'string' &&\r\n subscriptionOptions.endpoint.length > 0 &&\r\n typeof subscriptionOptions.swScope === 'string' &&\r\n subscriptionOptions.swScope.length > 0 &&\r\n typeof subscriptionOptions.vapidKey === 'string' &&\r\n subscriptionOptions.vapidKey.length > 0);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// Exported for tests.\r\nconst DATABASE_NAME = 'firebase-messaging-database';\r\nconst DATABASE_VERSION = 1;\r\nconst OBJECT_STORE_NAME = 'firebase-messaging-store';\r\nlet dbPromise = null;\r\nfunction getDbPromise() {\r\n if (!dbPromise) {\r\n dbPromise = openDB(DATABASE_NAME, DATABASE_VERSION, {\r\n upgrade: (upgradeDb, oldVersion) => {\r\n // We don't use 'break' in this switch statement, the fall-through behavior is what we want,\r\n // because if there are multiple versions between the old version and the current version, we\r\n // want ALL the migrations that correspond to those versions to run, not only the last one.\r\n // eslint-disable-next-line default-case\r\n switch (oldVersion) {\r\n case 0:\r\n upgradeDb.createObjectStore(OBJECT_STORE_NAME);\r\n }\r\n }\r\n });\r\n }\r\n return dbPromise;\r\n}\r\n/** Gets record(s) from the objectStore that match the given key. */\r\nasync function dbGet(firebaseDependencies) {\r\n const key = getKey(firebaseDependencies);\r\n const db = await getDbPromise();\r\n const tokenDetails = (await db\r\n .transaction(OBJECT_STORE_NAME)\r\n .objectStore(OBJECT_STORE_NAME)\r\n .get(key));\r\n if (tokenDetails) {\r\n return tokenDetails;\r\n }\r\n else {\r\n // Check if there is a tokenDetails object in the old DB.\r\n const oldTokenDetails = await migrateOldDatabase(firebaseDependencies.appConfig.senderId);\r\n if (oldTokenDetails) {\r\n await dbSet(firebaseDependencies, oldTokenDetails);\r\n return oldTokenDetails;\r\n }\r\n }\r\n}\r\n/** Assigns or overwrites the record for the given key with the given value. */\r\nasync function dbSet(firebaseDependencies, tokenDetails) {\r\n const key = getKey(firebaseDependencies);\r\n const db = await getDbPromise();\r\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\r\n await tx.objectStore(OBJECT_STORE_NAME).put(tokenDetails, key);\r\n await tx.done;\r\n return tokenDetails;\r\n}\r\n/** Removes record(s) from the objectStore that match the given key. */\r\nasync function dbRemove(firebaseDependencies) {\r\n const key = getKey(firebaseDependencies);\r\n const db = await getDbPromise();\r\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\r\n await tx.objectStore(OBJECT_STORE_NAME).delete(key);\r\n await tx.done;\r\n}\r\nfunction getKey({ appConfig }) {\r\n return appConfig.appId;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst ERROR_MAP = {\r\n [\"missing-app-config-values\" /* ErrorCode.MISSING_APP_CONFIG_VALUES */]: 'Missing App configuration value: \"{$valueName}\"',\r\n [\"only-available-in-window\" /* ErrorCode.AVAILABLE_IN_WINDOW */]: 'This method is available in a Window context.',\r\n [\"only-available-in-sw\" /* ErrorCode.AVAILABLE_IN_SW */]: 'This method is available in a service worker context.',\r\n [\"permission-default\" /* ErrorCode.PERMISSION_DEFAULT */]: 'The notification permission was not granted and dismissed instead.',\r\n [\"permission-blocked\" /* ErrorCode.PERMISSION_BLOCKED */]: 'The notification permission was not granted and blocked instead.',\r\n [\"unsupported-browser\" /* ErrorCode.UNSUPPORTED_BROWSER */]: \"This browser doesn't support the API's required to use the Firebase SDK.\",\r\n [\"indexed-db-unsupported\" /* ErrorCode.INDEXED_DB_UNSUPPORTED */]: \"This browser doesn't support indexedDb.open() (ex. Safari iFrame, Firefox Private Browsing, etc)\",\r\n [\"failed-service-worker-registration\" /* ErrorCode.FAILED_DEFAULT_REGISTRATION */]: 'We are unable to register the default service worker. {$browserErrorMessage}',\r\n [\"token-subscribe-failed\" /* ErrorCode.TOKEN_SUBSCRIBE_FAILED */]: 'A problem occurred while subscribing the user to FCM: {$errorInfo}',\r\n [\"token-subscribe-no-token\" /* ErrorCode.TOKEN_SUBSCRIBE_NO_TOKEN */]: 'FCM returned no token when subscribing the user to push.',\r\n [\"token-unsubscribe-failed\" /* ErrorCode.TOKEN_UNSUBSCRIBE_FAILED */]: 'A problem occurred while unsubscribing the ' +\r\n 'user from FCM: {$errorInfo}',\r\n [\"token-update-failed\" /* ErrorCode.TOKEN_UPDATE_FAILED */]: 'A problem occurred while updating the user from FCM: {$errorInfo}',\r\n [\"token-update-no-token\" /* ErrorCode.TOKEN_UPDATE_NO_TOKEN */]: 'FCM returned no token when updating the user to push.',\r\n [\"use-sw-after-get-token\" /* ErrorCode.USE_SW_AFTER_GET_TOKEN */]: 'The useServiceWorker() method may only be called once and must be ' +\r\n 'called before calling getToken() to ensure your service worker is used.',\r\n [\"invalid-sw-registration\" /* ErrorCode.INVALID_SW_REGISTRATION */]: 'The input to useServiceWorker() must be a ServiceWorkerRegistration.',\r\n [\"invalid-bg-handler\" /* ErrorCode.INVALID_BG_HANDLER */]: 'The input to setBackgroundMessageHandler() must be a function.',\r\n [\"invalid-vapid-key\" /* ErrorCode.INVALID_VAPID_KEY */]: 'The public VAPID key must be a string.',\r\n [\"use-vapid-key-after-get-token\" /* ErrorCode.USE_VAPID_KEY_AFTER_GET_TOKEN */]: 'The usePublicVapidKey() method may only be called once and must be ' +\r\n 'called before calling getToken() to ensure your VAPID key is used.'\r\n};\r\nconst ERROR_FACTORY = new ErrorFactory('messaging', 'Messaging', ERROR_MAP);\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function requestGetToken(firebaseDependencies, subscriptionOptions) {\r\n const headers = await getHeaders(firebaseDependencies);\r\n const body = getBody(subscriptionOptions);\r\n const subscribeOptions = {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify(body)\r\n };\r\n let responseData;\r\n try {\r\n const response = await fetch(getEndpoint(firebaseDependencies.appConfig), subscribeOptions);\r\n responseData = await response.json();\r\n }\r\n catch (err) {\r\n throw ERROR_FACTORY.create(\"token-subscribe-failed\" /* ErrorCode.TOKEN_SUBSCRIBE_FAILED */, {\r\n errorInfo: err === null || err === void 0 ? void 0 : err.toString()\r\n });\r\n }\r\n if (responseData.error) {\r\n const message = responseData.error.message;\r\n throw ERROR_FACTORY.create(\"token-subscribe-failed\" /* ErrorCode.TOKEN_SUBSCRIBE_FAILED */, {\r\n errorInfo: message\r\n });\r\n }\r\n if (!responseData.token) {\r\n throw ERROR_FACTORY.create(\"token-subscribe-no-token\" /* ErrorCode.TOKEN_SUBSCRIBE_NO_TOKEN */);\r\n }\r\n return responseData.token;\r\n}\r\nasync function requestUpdateToken(firebaseDependencies, tokenDetails) {\r\n const headers = await getHeaders(firebaseDependencies);\r\n const body = getBody(tokenDetails.subscriptionOptions);\r\n const updateOptions = {\r\n method: 'PATCH',\r\n headers,\r\n body: JSON.stringify(body)\r\n };\r\n let responseData;\r\n try {\r\n const response = await fetch(`${getEndpoint(firebaseDependencies.appConfig)}/${tokenDetails.token}`, updateOptions);\r\n responseData = await response.json();\r\n }\r\n catch (err) {\r\n throw ERROR_FACTORY.create(\"token-update-failed\" /* ErrorCode.TOKEN_UPDATE_FAILED */, {\r\n errorInfo: err === null || err === void 0 ? void 0 : err.toString()\r\n });\r\n }\r\n if (responseData.error) {\r\n const message = responseData.error.message;\r\n throw ERROR_FACTORY.create(\"token-update-failed\" /* ErrorCode.TOKEN_UPDATE_FAILED */, {\r\n errorInfo: message\r\n });\r\n }\r\n if (!responseData.token) {\r\n throw ERROR_FACTORY.create(\"token-update-no-token\" /* ErrorCode.TOKEN_UPDATE_NO_TOKEN */);\r\n }\r\n return responseData.token;\r\n}\r\nasync function requestDeleteToken(firebaseDependencies, token) {\r\n const headers = await getHeaders(firebaseDependencies);\r\n const unsubscribeOptions = {\r\n method: 'DELETE',\r\n headers\r\n };\r\n try {\r\n const response = await fetch(`${getEndpoint(firebaseDependencies.appConfig)}/${token}`, unsubscribeOptions);\r\n const responseData = await response.json();\r\n if (responseData.error) {\r\n const message = responseData.error.message;\r\n throw ERROR_FACTORY.create(\"token-unsubscribe-failed\" /* ErrorCode.TOKEN_UNSUBSCRIBE_FAILED */, {\r\n errorInfo: message\r\n });\r\n }\r\n }\r\n catch (err) {\r\n throw ERROR_FACTORY.create(\"token-unsubscribe-failed\" /* ErrorCode.TOKEN_UNSUBSCRIBE_FAILED */, {\r\n errorInfo: err === null || err === void 0 ? void 0 : err.toString()\r\n });\r\n }\r\n}\r\nfunction getEndpoint({ projectId }) {\r\n return `${ENDPOINT}/projects/${projectId}/registrations`;\r\n}\r\nasync function getHeaders({ appConfig, installations }) {\r\n const authToken = await installations.getToken();\r\n return new Headers({\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json',\r\n 'x-goog-api-key': appConfig.apiKey,\r\n 'x-goog-firebase-installations-auth': `FIS ${authToken}`\r\n });\r\n}\r\nfunction getBody({ p256dh, auth, endpoint, vapidKey }) {\r\n const body = {\r\n web: {\r\n endpoint,\r\n auth,\r\n p256dh\r\n }\r\n };\r\n if (vapidKey !== DEFAULT_VAPID_KEY) {\r\n body.web.applicationPubKey = vapidKey;\r\n }\r\n return body;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// UpdateRegistration will be called once every week.\r\nconst TOKEN_EXPIRATION_MS = 7 * 24 * 60 * 60 * 1000; // 7 days\r\nasync function getTokenInternal(messaging) {\r\n const pushSubscription = await getPushSubscription(messaging.swRegistration, messaging.vapidKey);\r\n const subscriptionOptions = {\r\n vapidKey: messaging.vapidKey,\r\n swScope: messaging.swRegistration.scope,\r\n endpoint: pushSubscription.endpoint,\r\n auth: arrayToBase64(pushSubscription.getKey('auth')),\r\n p256dh: arrayToBase64(pushSubscription.getKey('p256dh'))\r\n };\r\n const tokenDetails = await dbGet(messaging.firebaseDependencies);\r\n if (!tokenDetails) {\r\n // No token, get a new one.\r\n return getNewToken(messaging.firebaseDependencies, subscriptionOptions);\r\n }\r\n else if (!isTokenValid(tokenDetails.subscriptionOptions, subscriptionOptions)) {\r\n // Invalid token, get a new one.\r\n try {\r\n await requestDeleteToken(messaging.firebaseDependencies, tokenDetails.token);\r\n }\r\n catch (e) {\r\n // Suppress errors because of #2364\r\n console.warn(e);\r\n }\r\n return getNewToken(messaging.firebaseDependencies, subscriptionOptions);\r\n }\r\n else if (Date.now() >= tokenDetails.createTime + TOKEN_EXPIRATION_MS) {\r\n // Weekly token refresh\r\n return updateToken(messaging, {\r\n token: tokenDetails.token,\r\n createTime: Date.now(),\r\n subscriptionOptions\r\n });\r\n }\r\n else {\r\n // Valid token, nothing to do.\r\n return tokenDetails.token;\r\n }\r\n}\r\n/**\r\n * This method deletes the token from the database, unsubscribes the token from FCM, and unregisters\r\n * the push subscription if it exists.\r\n */\r\nasync function deleteTokenInternal(messaging) {\r\n const tokenDetails = await dbGet(messaging.firebaseDependencies);\r\n if (tokenDetails) {\r\n await requestDeleteToken(messaging.firebaseDependencies, tokenDetails.token);\r\n await dbRemove(messaging.firebaseDependencies);\r\n }\r\n // Unsubscribe from the push subscription.\r\n const pushSubscription = await messaging.swRegistration.pushManager.getSubscription();\r\n if (pushSubscription) {\r\n return pushSubscription.unsubscribe();\r\n }\r\n // If there's no SW, consider it a success.\r\n return true;\r\n}\r\nasync function updateToken(messaging, tokenDetails) {\r\n try {\r\n const updatedToken = await requestUpdateToken(messaging.firebaseDependencies, tokenDetails);\r\n const updatedTokenDetails = Object.assign(Object.assign({}, tokenDetails), { token: updatedToken, createTime: Date.now() });\r\n await dbSet(messaging.firebaseDependencies, updatedTokenDetails);\r\n return updatedToken;\r\n }\r\n catch (e) {\r\n await deleteTokenInternal(messaging);\r\n throw e;\r\n }\r\n}\r\nasync function getNewToken(firebaseDependencies, subscriptionOptions) {\r\n const token = await requestGetToken(firebaseDependencies, subscriptionOptions);\r\n const tokenDetails = {\r\n token,\r\n createTime: Date.now(),\r\n subscriptionOptions\r\n };\r\n await dbSet(firebaseDependencies, tokenDetails);\r\n return tokenDetails.token;\r\n}\r\n/**\r\n * Gets a PushSubscription for the current user.\r\n */\r\nasync function getPushSubscription(swRegistration, vapidKey) {\r\n const subscription = await swRegistration.pushManager.getSubscription();\r\n if (subscription) {\r\n return subscription;\r\n }\r\n return swRegistration.pushManager.subscribe({\r\n userVisibleOnly: true,\r\n // Chrome <= 75 doesn't support base64-encoded VAPID key. For backward compatibility, VAPID key\r\n // submitted to pushManager#subscribe must be of type Uint8Array.\r\n applicationServerKey: base64ToArray(vapidKey)\r\n });\r\n}\r\n/**\r\n * Checks if the saved tokenDetails object matches the configuration provided.\r\n */\r\nfunction isTokenValid(dbOptions, currentOptions) {\r\n const isVapidKeyEqual = currentOptions.vapidKey === dbOptions.vapidKey;\r\n const isEndpointEqual = currentOptions.endpoint === dbOptions.endpoint;\r\n const isAuthEqual = currentOptions.auth === dbOptions.auth;\r\n const isP256dhEqual = currentOptions.p256dh === dbOptions.p256dh;\r\n return isVapidKeyEqual && isEndpointEqual && isAuthEqual && isP256dhEqual;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction externalizePayload(internalPayload) {\r\n const payload = {\r\n from: internalPayload.from,\r\n // eslint-disable-next-line camelcase\r\n collapseKey: internalPayload.collapse_key,\r\n // eslint-disable-next-line camelcase\r\n messageId: internalPayload.fcmMessageId\r\n };\r\n propagateNotificationPayload(payload, internalPayload);\r\n propagateDataPayload(payload, internalPayload);\r\n propagateFcmOptions(payload, internalPayload);\r\n return payload;\r\n}\r\nfunction propagateNotificationPayload(payload, messagePayloadInternal) {\r\n if (!messagePayloadInternal.notification) {\r\n return;\r\n }\r\n payload.notification = {};\r\n const title = messagePayloadInternal.notification.title;\r\n if (!!title) {\r\n payload.notification.title = title;\r\n }\r\n const body = messagePayloadInternal.notification.body;\r\n if (!!body) {\r\n payload.notification.body = body;\r\n }\r\n const image = messagePayloadInternal.notification.image;\r\n if (!!image) {\r\n payload.notification.image = image;\r\n }\r\n const icon = messagePayloadInternal.notification.icon;\r\n if (!!icon) {\r\n payload.notification.icon = icon;\r\n }\r\n}\r\nfunction propagateDataPayload(payload, messagePayloadInternal) {\r\n if (!messagePayloadInternal.data) {\r\n return;\r\n }\r\n payload.data = messagePayloadInternal.data;\r\n}\r\nfunction propagateFcmOptions(payload, messagePayloadInternal) {\r\n var _a, _b, _c, _d, _e;\r\n // fcmOptions.link value is written into notification.click_action. see more in b/232072111\r\n if (!messagePayloadInternal.fcmOptions &&\r\n !((_a = messagePayloadInternal.notification) === null || _a === void 0 ? void 0 : _a.click_action)) {\r\n return;\r\n }\r\n payload.fcmOptions = {};\r\n const link = (_c = (_b = messagePayloadInternal.fcmOptions) === null || _b === void 0 ? void 0 : _b.link) !== null && _c !== void 0 ? _c : (_d = messagePayloadInternal.notification) === null || _d === void 0 ? void 0 : _d.click_action;\r\n if (!!link) {\r\n payload.fcmOptions.link = link;\r\n }\r\n // eslint-disable-next-line camelcase\r\n const analyticsLabel = (_e = messagePayloadInternal.fcmOptions) === null || _e === void 0 ? void 0 : _e.analytics_label;\r\n if (!!analyticsLabel) {\r\n payload.fcmOptions.analyticsLabel = analyticsLabel;\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction isConsoleMessage(data) {\r\n // This message has a campaign ID, meaning it was sent using the Firebase Console.\r\n return typeof data === 'object' && !!data && CONSOLE_CAMPAIGN_ID in data;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n_mergeStrings('hts/frbslgigp.ogepscmv/ieo/eaylg', 'tp:/ieaeogn-agolai.o/1frlglgc/o');\r\n_mergeStrings('AzSCbw63g1R0nCw85jG8', 'Iaya3yLKwmgvh7cF0q4');\r\nfunction _mergeStrings(s1, s2) {\r\n const resultArray = [];\r\n for (let i = 0; i < s1.length; i++) {\r\n resultArray.push(s1.charAt(i));\r\n if (i < s2.length) {\r\n resultArray.push(s2.charAt(i));\r\n }\r\n }\r\n return resultArray.join('');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction extractAppConfig(app) {\r\n if (!app || !app.options) {\r\n throw getMissingValueError('App Configuration Object');\r\n }\r\n if (!app.name) {\r\n throw getMissingValueError('App Name');\r\n }\r\n // Required app config keys\r\n const configKeys = [\r\n 'projectId',\r\n 'apiKey',\r\n 'appId',\r\n 'messagingSenderId'\r\n ];\r\n const { options } = app;\r\n for (const keyName of configKeys) {\r\n if (!options[keyName]) {\r\n throw getMissingValueError(keyName);\r\n }\r\n }\r\n return {\r\n appName: app.name,\r\n projectId: options.projectId,\r\n apiKey: options.apiKey,\r\n appId: options.appId,\r\n senderId: options.messagingSenderId\r\n };\r\n}\r\nfunction getMissingValueError(valueName) {\r\n return ERROR_FACTORY.create(\"missing-app-config-values\" /* ErrorCode.MISSING_APP_CONFIG_VALUES */, {\r\n valueName\r\n });\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nclass MessagingService {\r\n constructor(app, installations, analyticsProvider) {\r\n // logging is only done with end user consent. Default to false.\r\n this.deliveryMetricsExportedToBigQueryEnabled = false;\r\n this.onBackgroundMessageHandler = null;\r\n this.onMessageHandler = null;\r\n this.logEvents = [];\r\n this.isLogServiceStarted = false;\r\n const appConfig = extractAppConfig(app);\r\n this.firebaseDependencies = {\r\n app,\r\n appConfig,\r\n installations,\r\n analyticsProvider\r\n };\r\n }\r\n _delete() {\r\n return Promise.resolve();\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function registerDefaultSw(messaging) {\r\n try {\r\n messaging.swRegistration = await navigator.serviceWorker.register(DEFAULT_SW_PATH, {\r\n scope: DEFAULT_SW_SCOPE\r\n });\r\n // The timing when browser updates sw when sw has an update is unreliable from experiment. It\r\n // leads to version conflict when the SDK upgrades to a newer version in the main page, but sw\r\n // is stuck with the old version. For example,\r\n // https://github.com/firebase/firebase-js-sdk/issues/2590 The following line reliably updates\r\n // sw if there was an update.\r\n messaging.swRegistration.update().catch(() => {\r\n /* it is non blocking and we don't care if it failed */\r\n });\r\n }\r\n catch (e) {\r\n throw ERROR_FACTORY.create(\"failed-service-worker-registration\" /* ErrorCode.FAILED_DEFAULT_REGISTRATION */, {\r\n browserErrorMessage: e === null || e === void 0 ? void 0 : e.message\r\n });\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function updateSwReg(messaging, swRegistration) {\r\n if (!swRegistration && !messaging.swRegistration) {\r\n await registerDefaultSw(messaging);\r\n }\r\n if (!swRegistration && !!messaging.swRegistration) {\r\n return;\r\n }\r\n if (!(swRegistration instanceof ServiceWorkerRegistration)) {\r\n throw ERROR_FACTORY.create(\"invalid-sw-registration\" /* ErrorCode.INVALID_SW_REGISTRATION */);\r\n }\r\n messaging.swRegistration = swRegistration;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function updateVapidKey(messaging, vapidKey) {\r\n if (!!vapidKey) {\r\n messaging.vapidKey = vapidKey;\r\n }\r\n else if (!messaging.vapidKey) {\r\n messaging.vapidKey = DEFAULT_VAPID_KEY;\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function getToken$1(messaging, options) {\r\n if (!navigator) {\r\n throw ERROR_FACTORY.create(\"only-available-in-window\" /* ErrorCode.AVAILABLE_IN_WINDOW */);\r\n }\r\n if (Notification.permission === 'default') {\r\n await Notification.requestPermission();\r\n }\r\n if (Notification.permission !== 'granted') {\r\n throw ERROR_FACTORY.create(\"permission-blocked\" /* ErrorCode.PERMISSION_BLOCKED */);\r\n }\r\n await updateVapidKey(messaging, options === null || options === void 0 ? void 0 : options.vapidKey);\r\n await updateSwReg(messaging, options === null || options === void 0 ? void 0 : options.serviceWorkerRegistration);\r\n return getTokenInternal(messaging);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function logToScion(messaging, messageType, data) {\r\n const eventType = getEventType(messageType);\r\n const analytics = await messaging.firebaseDependencies.analyticsProvider.get();\r\n analytics.logEvent(eventType, {\r\n /* eslint-disable camelcase */\r\n message_id: data[CONSOLE_CAMPAIGN_ID],\r\n message_name: data[CONSOLE_CAMPAIGN_NAME],\r\n message_time: data[CONSOLE_CAMPAIGN_TIME],\r\n message_device_time: Math.floor(Date.now() / 1000)\r\n /* eslint-enable camelcase */\r\n });\r\n}\r\nfunction getEventType(messageType) {\r\n switch (messageType) {\r\n case MessageType.NOTIFICATION_CLICKED:\r\n return 'notification_open';\r\n case MessageType.PUSH_RECEIVED:\r\n return 'notification_foreground';\r\n default:\r\n throw new Error();\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function messageEventListener(messaging, event) {\r\n const internalPayload = event.data;\r\n if (!internalPayload.isFirebaseMessaging) {\r\n return;\r\n }\r\n if (messaging.onMessageHandler &&\r\n internalPayload.messageType === MessageType.PUSH_RECEIVED) {\r\n if (typeof messaging.onMessageHandler === 'function') {\r\n messaging.onMessageHandler(externalizePayload(internalPayload));\r\n }\r\n else {\r\n messaging.onMessageHandler.next(externalizePayload(internalPayload));\r\n }\r\n }\r\n // Log to Scion if applicable\r\n const dataPayload = internalPayload.data;\r\n if (isConsoleMessage(dataPayload) &&\r\n dataPayload[CONSOLE_CAMPAIGN_ANALYTICS_ENABLED] === '1') {\r\n await logToScion(messaging, internalPayload.messageType, dataPayload);\r\n }\r\n}\n\nconst name = \"@firebase/messaging\";\nconst version = \"0.12.3\";\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst WindowMessagingFactory = (container) => {\r\n const messaging = new MessagingService(container.getProvider('app').getImmediate(), container.getProvider('installations-internal').getImmediate(), container.getProvider('analytics-internal'));\r\n navigator.serviceWorker.addEventListener('message', e => messageEventListener(messaging, e));\r\n return messaging;\r\n};\r\nconst WindowMessagingInternalFactory = (container) => {\r\n const messaging = container\r\n .getProvider('messaging')\r\n .getImmediate();\r\n const messagingInternal = {\r\n getToken: (options) => getToken$1(messaging, options)\r\n };\r\n return messagingInternal;\r\n};\r\nfunction registerMessagingInWindow() {\r\n _registerComponent(new Component('messaging', WindowMessagingFactory, \"PUBLIC\" /* ComponentType.PUBLIC */));\r\n _registerComponent(new Component('messaging-internal', WindowMessagingInternalFactory, \"PRIVATE\" /* ComponentType.PRIVATE */));\r\n registerVersion(name, version);\r\n // BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\r\n registerVersion(name, version, 'esm2017');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Checks if all required APIs exist in the browser.\r\n * @returns a Promise that resolves to a boolean.\r\n *\r\n * @public\r\n */\r\nasync function isWindowSupported() {\r\n try {\r\n // This throws if open() is unsupported, so adding it to the conditional\r\n // statement below can cause an uncaught error.\r\n await validateIndexedDBOpenable();\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n // firebase-js-sdk/issues/2393 reveals that idb#open in Safari iframe and Firefox private browsing\r\n // might be prohibited to run. In these contexts, an error would be thrown during the messaging\r\n // instantiating phase, informing the developers to import/call isSupported for special handling.\r\n return (typeof window !== 'undefined' &&\r\n isIndexedDBAvailable() &&\r\n areCookiesEnabled() &&\r\n 'serviceWorker' in navigator &&\r\n 'PushManager' in window &&\r\n 'Notification' in window &&\r\n 'fetch' in window &&\r\n ServiceWorkerRegistration.prototype.hasOwnProperty('showNotification') &&\r\n PushSubscription.prototype.hasOwnProperty('getKey'));\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function deleteToken$1(messaging) {\r\n if (!navigator) {\r\n throw ERROR_FACTORY.create(\"only-available-in-window\" /* ErrorCode.AVAILABLE_IN_WINDOW */);\r\n }\r\n if (!messaging.swRegistration) {\r\n await registerDefaultSw(messaging);\r\n }\r\n return deleteTokenInternal(messaging);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction onMessage$1(messaging, nextOrObserver) {\r\n if (!navigator) {\r\n throw ERROR_FACTORY.create(\"only-available-in-window\" /* ErrorCode.AVAILABLE_IN_WINDOW */);\r\n }\r\n messaging.onMessageHandler = nextOrObserver;\r\n return () => {\r\n messaging.onMessageHandler = null;\r\n };\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Retrieves a Firebase Cloud Messaging instance.\r\n *\r\n * @returns The Firebase Cloud Messaging instance associated with the provided firebase app.\r\n *\r\n * @public\r\n */\r\nfunction getMessagingInWindow(app = getApp()) {\r\n // Conscious decision to make this async check non-blocking during the messaging instance\r\n // initialization phase for performance consideration. An error would be thrown latter for\r\n // developer's information. Developers can then choose to import and call `isSupported` for\r\n // special handling.\r\n isWindowSupported().then(isSupported => {\r\n // If `isWindowSupported()` resolved, but returned false.\r\n if (!isSupported) {\r\n throw ERROR_FACTORY.create(\"unsupported-browser\" /* ErrorCode.UNSUPPORTED_BROWSER */);\r\n }\r\n }, _ => {\r\n // If `isWindowSupported()` rejected.\r\n throw ERROR_FACTORY.create(\"indexed-db-unsupported\" /* ErrorCode.INDEXED_DB_UNSUPPORTED */);\r\n });\r\n return _getProvider(getModularInstance(app), 'messaging').getImmediate();\r\n}\r\n/**\r\n * Subscribes the {@link Messaging} instance to push notifications. Returns an Firebase Cloud\r\n * Messaging registration token that can be used to send push messages to that {@link Messaging}\r\n * instance.\r\n *\r\n * If a notification permission isn't already granted, this method asks the user for permission. The\r\n * returned promise rejects if the user does not allow the app to show notifications.\r\n *\r\n * @param messaging - The {@link Messaging} instance.\r\n * @param options - Provides an optional vapid key and an optinoal service worker registration\r\n *\r\n * @returns The promise resolves with an FCM registration token.\r\n *\r\n * @public\r\n */\r\nasync function getToken(messaging, options) {\r\n messaging = getModularInstance(messaging);\r\n return getToken$1(messaging, options);\r\n}\r\n/**\r\n * Deletes the registration token associated with this {@link Messaging} instance and unsubscribes\r\n * the {@link Messaging} instance from the push subscription.\r\n *\r\n * @param messaging - The {@link Messaging} instance.\r\n *\r\n * @returns The promise resolves when the token has been successfully deleted.\r\n *\r\n * @public\r\n */\r\nfunction deleteToken(messaging) {\r\n messaging = getModularInstance(messaging);\r\n return deleteToken$1(messaging);\r\n}\r\n/**\r\n * When a push message is received and the user is currently on a page for your origin, the\r\n * message is passed to the page and an `onMessage()` event is dispatched with the payload of\r\n * the push message.\r\n *\r\n *\r\n * @param messaging - The {@link Messaging} instance.\r\n * @param nextOrObserver - This function, or observer object with `next` defined,\r\n * is called when a message is received and the user is currently viewing your page.\r\n * @returns To stop listening for messages execute this returned function.\r\n *\r\n * @public\r\n */\r\nfunction onMessage(messaging, nextOrObserver) {\r\n messaging = getModularInstance(messaging);\r\n return onMessage$1(messaging, nextOrObserver);\r\n}\n\n/**\r\n * Firebase Cloud Messaging\r\n *\r\n * @packageDocumentation\r\n */\r\nregisterMessagingInWindow();\n\nexport { deleteToken, getMessagingInWindow as getMessaging, getToken, isWindowSupported as isSupported, onMessage };\n//# sourceMappingURL=index.esm2017.js.map\n","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nexport default class Alert extends React.PureComponent {\n render() {\n return (
);\n }\n};\n","// Context Menu: popup/dropdown menu.\nimport React from 'react';\nimport { injectIntl, defineMessages } from 'react-intl';\n\nimport { REM_SIZE } from '../config.js';\n\nconst messages = defineMessages({\n info: {\n id: 'menu_item_info',\n defaultMessage: 'Info',\n description: 'Show extended topic information'\n },\n clear_messages: {\n id: 'menu_item_clear_messages',\n defaultMessage: 'Clear messages',\n description: 'Delete all messages'\n },\n clear_for_all: {\n id: 'menu_item_clear_messages_for_all',\n defaultMessage: 'Clear for All',\n description: 'Delete all message(s) for all members'\n },\n delete: {\n id: 'menu_item_delete',\n defaultMessage: 'Delete',\n description: 'Delete selected messages'\n },\n delete_for_all: {\n id: 'menu_item_delete_for_all',\n defaultMessage: 'Delete for All',\n description: 'Delete selected message(s) for all members'\n },\n send_retry: {\n id: 'menu_item_send_retry',\n defaultMessage: 'Retry',\n description: 'Retry sending message'\n },\n mute: {\n id: 'menu_item_mute',\n defaultMessage: 'Mute',\n description: 'Turn off notifications'\n },\n unmute: {\n id: 'menu_item_unmute',\n defaultMessage: 'Unmute',\n description: 'Turn notifications on'\n },\n reply: {\n id: 'menu_item_reply',\n defaultMessage: 'Reply',\n description: 'Reply to message'\n },\n forward: {\n id: 'menu_item_forward',\n defaultMessage: 'Forward',\n description: 'Forward message'\n },\n edit: {\n id: 'menu_item_edit',\n defaultMessage: 'Edit',\n description: 'Edit message'\n },\n topic_delete: {\n id: 'menu_item_delete_topic',\n defaultMessage: 'Delete',\n description: 'Delete entire topic'\n },\n topic_delete_warning: {\n id: 'topic_delete_warning',\n defaultMessage: 'Are you sure you want to delete this conversation? It cannot be undone.',\n description: 'Alert warning when deleting entire topic'\n },\n delete_messages_warning: {\n id: 'delete_messages_warning',\n defaultMessage: 'Are you sure you want to delete all messages for everyone? It cannot be undone.',\n description: 'Alert dialog warning when hard-deleting all messages.'\n },\n unblock: {\n id: 'menu_item_unblock',\n defaultMessage: 'Unblock',\n description: 'Unblock topic or user'\n },\n // Generic string suitable for either topic or user.\n block: {\n id: 'menu_item_block',\n defaultMessage: 'Block',\n description: 'Block topic or user'\n },\n topic_block_warning: {\n id: 'topic_block_warning',\n defaultMessage: 'Are you sure you want to block this conversation?',\n description: 'Alert warning when blocking a topic.'\n },\n member_delete: {\n id: 'menu_item_member_delete',\n defaultMessage: 'Remove',\n description: 'Remove user from topic'\n },\n archive: {\n id: 'menu_item_archive_topic',\n defaultMessage: 'Archive',\n description: 'Move topic from the list of active chats to archive'\n },\n unarchive: {\n id: 'menu_item_restore_topic',\n defaultMessage: 'Restore',\n description: 'Restore topic from archive'\n },\n edit_permissions: {\n id: 'menu_item_edit_permissions',\n defaultMessage: 'Edit permissions',\n description: 'Menu item [Edit permissions]'\n },\n clear_messages_warning: {\n id: 'clear_messages_warning',\n defaultMessage: 'Are you sure you want to clear all messages? It cannot be undone.',\n description: 'Alert dialog warning when deleting all messages.'\n },\n});\n\nclass ContextMenu extends React.Component {\n constructor(props) {\n super(props);\n\n this.selfRef = React.createRef();\n\n const {formatMessage} = props.intl;\n\n this.handlePageClick = this.handlePageClick.bind(this);\n this.handleEscapeKey = this.handleEscapeKey.bind(this);\n this.handleClick = this.handleClick.bind(this);\n\n // Preconfigured menu items.\n this.MenuItems = {\n 'topic_info': {\n id: 'topic_info',\n title: formatMessage(messages.info),\n handler: null\n },\n 'messages_clear': {\n id: 'messages_clear',\n title: formatMessage(messages.clear_messages),\n handler: (params, errorHandler) => {\n return props.onShowAlert(\n formatMessage(messages.clear_messages), // title\n formatMessage(messages.clear_messages_warning), // content\n (_ => { this.deleteMessages(true, false, params, errorHandler); }), // onConfirm\n null, // \"OK\"\n true, // Show Reject button\n null // \"Cancel\"\n );\n }\n },\n 'messages_clear_hard': {\n id: 'messages_clear_hard',\n title: formatMessage(messages.clear_for_all),\n handler: (params, errorHandler) => {\n return props.onShowAlert(\n formatMessage(messages.clear_for_all), // title\n formatMessage(messages.delete_messages_warning), // content\n (_ => { return this.deleteMessages(true, true, params, errorHandler); }),\n null, // \"OK\"\n true, // Show Reject button\n null // \"Cancel\"\n );\n }\n },\n 'message_delete': {\n id: 'message_delete',\n title: formatMessage(messages.delete),\n handler: (params, errorHandler) => {\n return this.deleteMessages(false, false, params, errorHandler);\n }\n },\n 'message_delete_hard': {\n id: 'message_delete_hard',\n title: formatMessage(messages.delete_for_all),\n handler: (params, errorHandler) => {\n return this.deleteMessages(false, true, params, errorHandler);\n }\n },\n 'menu_item_send_retry': {\n id: 'menu_item_send_retry',\n title: formatMessage(messages.send_retry),\n handler: (params, errorHandler) => {\n return this.retryMessage(params, errorHandler);\n }\n },\n 'menu_item_reply': {\n id: 'menu_item_reply',\n title: formatMessage(messages.reply),\n handler: (params, errorHandler) => {\n return this.replyToMessage(params, errorHandler);\n }\n },\n 'menu_item_forward': {\n id: 'menu_item_forward',\n title: formatMessage(messages.forward),\n handler: _ => {} /* the action is taken directly in tinode-web */\n },\n 'menu_item_edit': {\n id: 'menu_item_edit',\n title: formatMessage(messages.edit),\n handler: (params, errorHandler) => {\n return this.editMessage(params, errorHandler);\n }\n },\n 'topic_unmute': {\n id: 'topic_unmute',\n title: formatMessage(messages.unmute),\n handler: this.topicPermissionSetter.bind(this, '+P')\n },\n 'topic_mute': {\n id: 'topic_mute',\n title: formatMessage(messages.mute),\n handler: this.topicPermissionSetter.bind(this, '-P')\n },\n 'topic_unblock': {\n id: 'topic_unblock',\n title: formatMessage(messages.unblock),\n handler: this.topicPermissionSetter.bind(this, '+JP')\n },\n 'topic_block': {\n id: 'topic_block',\n title: formatMessage(messages.block),\n handler: (params, errorHandler) => {\n return props.onShowAlert(\n formatMessage(messages.block), // title\n formatMessage(messages.topic_block_warning), // content\n (_ => this.topicPermissionSetter('-JP', params, errorHandler).then(ctrl => {\n this.props.onTopicRemoved(params.topicName);\n return ctrl;\n })),\n null, // \"OK\"\n true, // Show Reject button\n null // \"Cancel\"\n );\n }\n },\n 'topic_delete': {\n id: 'topic_delete',\n title: formatMessage(messages.topic_delete),\n handler: (params, errorHandler) => {\n return props.onShowAlert(\n formatMessage(messages.topic_delete), // title\n formatMessage(messages.topic_delete_warning), // content\n (_ => {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic) {\n console.warn(\"Topic not found: \", params.topicName);\n return;\n }\n return topic.delTopic(true).catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }),\n null, // \"OK\"\n true, // Show Reject button\n null // \"Cancel\"\n );\n }\n },\n 'topic_archive': {\n id: 'topic_archive',\n title: formatMessage(messages.archive),\n handler: (params, errorHandler) => {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic) {\n console.warn(\"Topic not found: \", params.topicName);\n return;\n }\n return topic.archive(true).catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }\n },\n 'topic_restore': {\n id: 'topic_restore',\n title: formatMessage(messages.unarchive),\n handler: (params, errorHandler) => {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic) {\n console.warn(\"Topic not found: \", params.topicName);\n return;\n }\n return topic.archive(false).catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }\n },\n // menu_item_edit_permissions is defined elsewhere.\n 'permissions': {\n id: 'permissions',\n title: formatMessage(messages.edit_permissions),\n handler: null\n },\n 'member_delete': {\n id: 'member_delete',\n title: formatMessage(messages.member_delete),\n handler: (params, errorHandler) => {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic || !params.user) {\n console.warn(\"Topic or user not found: '\" + params.topicName + \"', '\" + params.user + \"'\");\n return;\n }\n return topic.delSubscription(params.user).catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }\n },\n 'member_mute': {\n id: 'member_mute',\n title: formatMessage(messages.mute),\n handler: this.topicPermissionSetter.bind(this, '-P')\n },\n 'member_unmute': {\n id: 'member_unmute',\n title: formatMessage(messages.unmute),\n handler: this.topicPermissionSetter.bind(this, '+P')\n },\n 'member_block': {\n id: 'member_block',\n title: formatMessage(messages.block),\n handler: this.topicPermissionSetter.bind(this, '-JP')\n },\n 'member_unblock': {\n id: 'member_unblock',\n title: formatMessage(messages.unblock),\n handler: this.topicPermissionSetter.bind(this, '+JP')\n },\n };\n }\n\n componentDidMount() {\n document.addEventListener('mousedown', this.handlePageClick, false);\n document.addEventListener('keyup', this.handleEscapeKey, false);\n }\n\n componentWillUnmount() {\n document.removeEventListener('mousedown', this.handlePageClick, false);\n document.removeEventListener('keyup', this.handleEscapeKey, false);\n }\n\n handlePageClick(e) {\n if (this.selfRef.current.contains(e.target)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n this.props.hide();\n }\n\n handleEscapeKey(e) {\n if (e.keyCode === 27) {\n this.props.hide();\n }\n }\n\n handleClick(e) {\n e.preventDefault();\n e.stopPropagation();\n this.props.hide();\n let item = this.props.items[e.currentTarget.dataset.id];\n if (typeof item == 'string') {\n item = this.MenuItems[item];\n }\n\n if (!item) {\n console.error(\"Invalid menu item ID\", e.currentTarget.dataset.id);\n } else {\n this.props.onAction(\n item.id,\n item.handler(this.props.params, this.props.onError),\n this.props.params);\n }\n }\n\n // Menu Actions\n\n deleteMessages(all, hard, params, errorHandler) {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic) {\n console.warn(\"Topic not found: \", params.topicName);\n return;\n }\n\n // We don't know if the message is still pending (e.g. attachment is being uploaded),\n // so try cancelling first. No harm if we can't cancel.\n // The message can be cancelled if transmission to the server has not\n // started yet or if the message send has failed.\n if (!all && topic.cancelSend(params.seq)) {\n return;\n }\n\n const promise = all ?\n topic.delMessagesAll(hard) :\n params.replace > 0 ?\n topic.delMessagesEdits(params.replace, hard) :\n topic.delMessagesList([params.seq], hard);\n\n return promise.catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }\n\n // Retries sending failed message.\n retryMessage(params, errorHandler) {\n const topic = this.props.tinode.getTopic(params.topicName);\n // Remove the existing message entry.\n if (!topic || !topic.flushMessage(params.seq)) {\n return;\n }\n const msg = topic.createMessage(params.content, false);\n return topic.publishDraft(msg).catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }\n\n // Function is used by context menu to set permissions.\n topicPermissionSetter(mode, params, errorHandler) {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic) {\n console.warn(\"Topic not found\", params.topicName);\n return;\n }\n\n let result = topic.updateMode(params.user, mode);\n if (errorHandler) {\n result = result.catch(err => errorHandler(err.message, 'err'));\n }\n return result;\n }\n\n replyToMessage(params, errorHandler) {\n params.pickReply(params.seq, params.content, params.userFrom, params.userName, errorHandler);\n }\n\n editMessage(params, errorHandler) {\n params.editMessage(params.replace || params.seq, params.content, errorHandler);\n }\n\n render() {\n const menu = [];\n let count = 0;\n this.props.items.map((item) => {\n if (typeof item == 'string') {\n item = this.MenuItems[item];\n }\n if (item && item.title) {\n menu.push(\n item.title == '-' ?\n \n :\n
{item.title}
\n );\n }\n count++;\n });\n\n // Ensure that menu is inside the app-container.\n const hSize = 12 * REM_SIZE;\n const vSize = REM_SIZE * (0.7 + menu.length * 2.5);\n const left = (this.props.bounds.right - this.props.clickAt.x < hSize) ?\n (this.props.clickAt.x - this.props.bounds.left - hSize) :\n (this.props.clickAt.x - this.props.bounds.left);\n const top = (this.props.bounds.bottom - this.props.clickAt.y < vSize) ?\n (this.props.clickAt.y - this.props.bounds.top - vSize) :\n (this.props.clickAt.y - this.props.bounds.top);\n\n const position = {\n left: left + 'px',\n top: top + 'px'\n };\n\n return (\n
\n {menu}\n
\n );\n }\n}\n\nexport default injectIntl(ContextMenu);\n","import React from 'react';\n\nconst icon_mapping = {'muted': 'notifications_off', 'banned': 'block', 'staff': 'verified_user'};\n\n/* Contact's labels: [you], or icons [muted], [blocked] */\nexport default class ContactBadges extends React.PureComponent {\n render() {\n let badges = null;\n if (this.props.badges && this.props.badges.length > 0) {\n badges = [];\n this.props.badges.map((b) => {\n const color = (b.color ? ' ' + b.color : '');\n if (b.icon) {\n badges.push({icon_mapping[b.icon] || b.icon});\n } else {\n badges.push({b.name});\n }\n });\n return <>{badges}>;\n }\n return null;\n }\n};\n","// The counter of unread messages in the topic.\nimport React from 'react';\n\nexport default class UnreadBadge extends React.PureComponent {\n render() {\n return (this.props.count > 0 ?\n {this.props.count > 9 ? \"9+\" : this.props.count}\n : null);\n }\n};\n","// Chat message describing a video or voice call.\n\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { secondsToTime } from '../lib/strformat.js';\n\nexport default class CallMessage extends React.PureComponent {\n render() {\n const isCallDropped = ['declined', 'disconnected', 'missed'].includes(this.props.callState);\n const successClass = 'material-icons medium ' + (isCallDropped ? 'red' : 'green');\n const callIcon = this.props.incoming ?\n (isCallDropped ? 'call_missed' : 'call_received') :\n (isCallDropped ? 'call_missed_outgoing' : 'call_made');\n let duration;\n if (isCallDropped) {\n switch (this.props.callState) {\n case 'declined':\n duration = ;\n break;\n case 'missed':\n duration = this.props.incoming ?\n :\n ;\n break;\n default:\n duration = ;\n break;\n }\n } else {\n duration = {secondsToTime(this.props.duration / 1000)};\n }\n return
\n
call
\n
\n
{this.props.incoming ?\n :\n \n }
\n
{callIcon} {duration}
\n
\n
;\n }\n}\n","// The counter of unread messages in the topic.\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { secondsToTime } from '../lib/strformat.js';\n\n// Props:\n// incoming: true | false.\n// success: true | false.\nexport default class CallStatus extends React.PureComponent {\n render() {\n const isCallDropped = ['declined', 'disconnected', 'missed'].includes(this.props.callState);\n const icon2 = this.props.incoming ?\n (isCallDropped ? 'call_missed' : 'call_received') :\n (isCallDropped ? 'call_missed_outgoing' : 'call_made');\n let duration;\n if (isCallDropped) {\n switch (this.props.callState) {\n case 'declined':\n duration = ;\n break;\n case 'missed':\n duration = this.props.incoming ?\n :\n ;\n break;\n default:\n duration = ;\n break;\n }\n } else if (['accepted', 'started'].includes(this.props.callState) && !this.props.duration) {\n duration = \n } else {\n duration = {secondsToTime(this.props.duration / 1000)};\n }\n return (\n <>\n
\n call{icon2}\n
{duration}\n >\n );\n }\n};\n","// Element which shows static video preview:\n// an image with duration and a play button in the middle.\n\nimport React from 'react';\n\nimport { secondsToTime } from '../lib/strformat.js'\n\nexport default class InlineVideo extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.videoRef = React.createRef();\n\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick(e) {\n if (this.props.onClick) {\n // the click target has to be the image element.\n this.props.onClick(e);\n }\n }\n\n render() {\n const duration = secondsToTime(this.props['data-duration'] / 1000);\n const className = 'inline-video' + (this.props.onClick ? ' image-clickable' : '');\n return (\n
\n );\n }\n}\n","// Image view with progress bar and a cancel button.\nimport React from 'react';\n\nimport FileProgress from './file-progress.jsx';\n\nexport default class UploadingImage extends React.PureComponent {\n constructor(props) {\n super(props);\n }\n\n render() {\n return (\n
\n {React.createElement('img', this.props)}\n
\n \n
\n
\n );\n }\n};\n","import React from 'react';\nimport { defineMessages } from 'react-intl';\n\nimport { Drafty } from 'tinode-sdk';\n\nimport AudioPlayer from '../widgets/audio-player.jsx'\nimport CallMessage from '../widgets/call-message.jsx'\nimport CallStatus from '../widgets/call-status.jsx';\nimport InlineVideo from '../widgets/inline-video.jsx';\nimport LazyImage from '../widgets/lazy-image.jsx'\nimport UploadingImage from '../widgets/uploading-image.jsx'\n\nimport { BROKEN_IMAGE_SIZE, IMAGE_THUMBNAIL_DIM, NO_DIMENSIONS_VIDEO, REM_SIZE, VIDEO_THUMBNAIL_WIDTH } from '../config.js';\nimport { base64ToBlob, blobToBase64, fitImageSize, imageScaled } from './blob-helpers.js';\nimport { idToColorClass, secondsToTime, shortenFileName } from './strformat.js';\nimport { cancelablePromise, sanitizeUrlForMime } from './utils.js';\n\nconst messages = defineMessages({\n drafty_form: {\n id: 'drafty_form',\n defaultMessage: 'Form: ',\n description: 'Comment for form in Drafty'\n },\n drafty_attachment: {\n id: 'drafty_attachment',\n defaultMessage: 'Attachment',\n description: 'Comment for attachment in Drafty'\n },\n drafty_image: {\n id: 'drafty_image',\n defaultMessage: 'Picture',\n description: 'Comment for embedded images in Drafty'\n },\n drafty_video: {\n id: 'drafty_video',\n defaultMessage: 'Video recording',\n description: 'Comment for videos embedded in Drafty'\n },\n drafty_unknown: {\n id: 'drafty_unknown',\n defaultMessage: 'Unsupported',\n description: 'Unsupported entity in drafty'\n }\n});\n\n// The main Drafty formatter: converts Drafty elements into React classes. 'this' is set by the caller.\n// 'this' must contain:\n// viewportWidth:\n// authorizeURL:\n// onImagePreview:\n// onVideoPreview:\n// onFormButtonClick:\n// onQuoteClick:\nexport function fullFormatter(style, data, values, key, stack) {\n if (stack.includes('QQ')) {\n return quoteFormatter.call(this, style, data, values, key);\n }\n\n if (!style) {\n // Unformatted.\n return values;\n }\n\n let el = Drafty.tagName(style);\n let attr = Drafty.attrValue(style, data) || {};\n attr.key = key;\n switch (style) {\n case 'AU':\n // Show audio player.\n if (attr.src) {\n attr.src = this.authorizeURL(sanitizeUrlForMime(attr.src, 'audio'));\n attr.duration = data.duration > 0 ? (data.duration | 0) : undefined;\n attr.preview = data.preview;\n attr.loading = 'lazy';\n }\n el = AudioPlayer;\n // Audio element cannot have content.\n values = null;\n break;\n case 'BR':\n values = null;\n break;\n case 'EX':\n // Ignore.\n break;\n case 'HL':\n // Highlighted text. Assign class name.\n attr.className = 'highlight';\n break;\n case 'HD':\n el = null;\n values = null;\n break;\n case 'IM':\n // Additional processing for images\n el = handleImageData.call(this, el, data, attr);\n // Image element cannot have content.\n values = null;\n break;\n case 'BN':\n // Button\n attr.onClick = this.onFormButtonClick;\n let inner = React.Children.map(values, (child) => {\n return typeof child == 'string' ? child : undefined;\n });\n if (!inner || inner.length == 0) {\n inner = [attr.name]\n }\n // Get text which will be sent back when the button is clicked.\n attr['data-title'] = inner.join('');\n break;\n case 'MN':\n // Mention\n attr.className = 'mention'\n if (data) {\n attr.className += ' ' + idToColorClass(data.val, false, true);\n }\n break;\n case 'FM':\n // Form\n attr.className = 'bot-form';\n break;\n case 'RW':\n // Form element formatting is dependent on element content.\n break;\n case 'QQ':\n // Quote/citation.\n attr.className = 'reply-quote'\n attr.onClick = this.onQuoteClick;\n break;\n case 'VC':\n el = CallMessage;\n // Video call messages do not have content.\n values = null;\n if (data) {\n attr.callState = data.state;\n attr.incoming = data.incoming;\n attr.duration = data.duration;\n }\n break;\n case 'VD':\n // Additional processing for videos.\n el = handleVideoData.call(this, el, data, attr);\n // Video element cannot have content.\n values = null;\n break;\n default:\n if (!el) {\n // Unknown element.\n el = React.Fragment;\n attr = {key: key};\n // Generate comment for unknown element.\n let body = values;\n if (!Array.isArray(values) || !values.join('').trim()) {\n body = [{this.formatMessage(messages.drafty_unknown)}];\n }\n values = [extension, ' '].concat(body);\n }\n break;\n }\n if (!el) {\n return values;\n }\n return React.createElement(el, attr, values);\n}\n\n// Additional processing of image data.\nfunction handleImageData(el, data, attr) {\n if (!data) {\n attr.src = 'img/broken_image.png';\n attr.style = {\n width: IMAGE_THUMBNAIL_DIM + 'px',\n height: IMAGE_THUMBNAIL_DIM + 'px',\n };\n return el;\n }\n\n attr.className = 'inline-image';\n const dim = fitImageSize(data.width, data.height,\n this.viewportWidth > 0 ? Math.min(this.viewportWidth - REM_SIZE * 6.5, REM_SIZE * 34.5) :\n REM_SIZE * 34.5, REM_SIZE * 24, false) ||\n {dstWidth: BROKEN_IMAGE_SIZE, dstHeight: BROKEN_IMAGE_SIZE};\n attr.style = {\n width: dim.dstWidth + 'px',\n height: dim.dstHeight + 'px',\n // Looks like a Chrome bug: broken image does not respect 'width' and 'height'.\n minWidth: dim.dstWidth + 'px',\n minHeight: dim.dstHeight + 'px'\n };\n if (!Drafty.isProcessing(data)) {\n attr.src = this.authorizeURL(sanitizeUrlForMime(attr.src, 'image'));\n attr.alt = data.name;\n if (attr.src) {\n if (Math.max(data.width || 0, data.height || 0) > IMAGE_THUMBNAIL_DIM) {\n // Allow previews for large enough images.\n attr.onClick = this.onImagePreview;\n attr.className += ' image-clickable';\n }\n attr.loading = 'lazy';\n } else {\n attr.src = null;\n }\n } else {\n // Use custom element instead of .\n el = UploadingImage;\n }\n\n return el;\n}\n\n// Additional processing of image data.\nfunction handleVideoData(el, data, attr) {\n if (!data) {\n attr.src = 'img/broken_video.png';\n attr.style = {\n width: IMAGE_THUMBNAIL_DIM + 'px',\n height: IMAGE_THUMBNAIL_DIM + 'px',\n };\n return el;\n }\n attr.className = 'inline-image';\n const dim = fitImageSize(data.width, data.height,\n this.viewportWidth > 0 ? Math.min(this.viewportWidth - REM_SIZE * 6.5, REM_SIZE * 34.5) :\n REM_SIZE * 34.5, REM_SIZE * 24, false) ||\n {dstWidth: NO_DIMENSIONS_VIDEO, dstHeight: NO_DIMENSIONS_VIDEO};\n attr.style = {\n width: dim.dstWidth + 'px',\n height: dim.dstHeight + 'px',\n // Looks like a Chrome bug: broken image does not respect 'width' and 'height'.\n minWidth: dim.dstWidth + 'px',\n minHeight: dim.dstHeight + 'px'\n };\n if (!Drafty.isProcessing(data)) {\n attr.src = this.authorizeURL(sanitizeUrlForMime(attr.src, 'image'));\n attr.alt = data.name;\n if (data.ref || data.val) {\n attr.onClick = this.onVideoPreview;\n attr.loading = 'lazy';\n } else {\n attr.src = null;\n }\n el = InlineVideo;\n } else {\n // Use custom element instead of .\n el = UploadingImage;\n }\n\n return el;\n}\n\n// Converts Drafty object into a one-line preview. 'this' is set by the caller.\n// 'this' must contain:\n// formatMessage: this.props.intl.formatMessage\n// messages: formatjs messages defined with defineMessages.\nexport function previewFormatter(style, data, values, key) {\n if (!style) {\n // Unformatted.\n return values;\n }\n\n let el = Drafty.tagName(style);\n const attr = { key: key };\n switch (style) {\n case 'AU':\n // Voicemail as '[mic] 0:00'.\n el = React.Fragment;\n values = [mic, ' ', secondsToTime(data.duration/1000)];\n break;\n case 'BR':\n // Replace new line with a space.\n el = React.Fragment;\n values = [' '];\n break;\n case 'HL':\n // Make highlight less prominent in preview.\n attr.className = 'highlight preview';\n break;\n case 'LN':\n case 'MN':\n // Disable links in previews.\n el = 'span';\n break;\n case 'IM':\n // Replace image with '[icon] Image'.\n el = React.Fragment;\n values = [photo, ' ', this.formatMessage(messages.drafty_image)];\n break;\n case 'BN':\n el = 'span';\n attr.className = 'flat-button faux';\n break;\n case 'FM':\n el = React.Fragment;\n values = [dashboard,\n this.formatMessage(messages.drafty_form)].concat(' ', values || []);\n break;\n case 'RW':\n el = React.Fragment;\n break;\n case 'EX':\n if (data) {\n if (data.mime == 'application/json') {\n // Ignore JSON attachments: they are form response payloads.\n return null;\n }\n // Clear payload.\n delete data.val;\n delete data.ref;\n }\n el = React.Fragment;\n values = [attachment, ' ', this.formatMessage(messages.drafty_attachment)];\n break;\n case 'VC':\n el = CallStatus;\n if (data) {\n attr.callState = data.state;\n attr.incoming = data.incoming;\n attr.duration = data.duration;\n }\n values = null;\n break;\n case 'QQ':\n case 'HD':\n el = null;\n values = null;\n break;\n case 'VD':\n // Replace image with '[icon] Video'.\n el = React.Fragment;\n values = [play_circle_outline, ' ', this.formatMessage(messages.drafty_video)];\n break;\n default:\n if (!el) {\n // Unknown element.\n el = React.Fragment;\n values = [extension, ' ', this.formatMessage(messages.drafty_unknown)];\n }\n break;\n }\n if (!el) {\n return values;\n }\n return React.createElement(el, attr, values);\n};\n\n// Converts Drafty object into a quoted reply; 'this' is set by the caller.\nfunction inlineImageAttr(attr, data) {\n attr.style = {\n width: IMAGE_THUMBNAIL_DIM + 'px',\n height: IMAGE_THUMBNAIL_DIM + 'px',\n maxWidth: IMAGE_THUMBNAIL_DIM + 'px',\n maxHeight: IMAGE_THUMBNAIL_DIM + 'px',\n }\n attr.className = 'inline-image';\n attr.alt = this.formatMessage(messages.drafty_image);\n if (!data) {\n attr.src = 'img/broken_image.png';\n } else {\n attr.src = attr.src || 'img/broken_image.png';\n }\n attr.title = attr.alt;\n return attr;\n}\n\n// Converts Drafty object into a quoted reply; 'this' is set by the caller.\nfunction inlineVideoAttr(attr, data) {\n const dim = fitImageSize(data.width, data.height, VIDEO_THUMBNAIL_WIDTH, IMAGE_THUMBNAIL_DIM);\n attr.style = {\n width: dim.width + 'px',\n height: dim.height + 'px',\n maxWidth: VIDEO_THUMBNAIL_WIDTH + 'px',\n maxHeight: IMAGE_THUMBNAIL_DIM + 'px',\n }\n attr.className = 'inline-image';\n attr.alt = this.formatMessage(messages.drafty_video);\n attr.title = attr.alt;\n if (!data) {\n attr.src = 'img/broken_video.png';\n } else {\n attr.src = attr.src || 'img/broken_video.png';\n }\n return attr;\n}\n\n// Displays a portion of Drafty within 'QQ' quotes. 'this' is set by the caller.\n// 'this' must contain:\n// formatMessage: this.props.intl.formatMessage\n// messages: formatjs messages defined with defineMessages.\n// authorizeURL: this.props.tinode.authorizeURL\n// onQuoteClick: this.handleQuoteClick (optional)\nfunction quoteFormatter(style, data, values, key) {\n if (['BR', 'EX', 'IM', 'MN', 'VD'].includes(style)) {\n let el = Drafty.tagName(style);\n let attr = Drafty.attrValue(style, data) || {};\n attr.key = key;\n switch(style) {\n case 'BR':\n values = null;\n break;\n case 'IM':\n attr = inlineImageAttr.call(this, attr, data);\n values = [React.createElement('img', attr, null), ' ', attr.alt];\n el = React.Fragment;\n // Fragment attributes.\n attr = {key: key};\n break;\n case 'VD':\n attr = inlineVideoAttr.call(this, attr, data);\n values = [React.createElement('img', attr, null), ' ', attr.alt];\n el = React.Fragment;\n // Fragment attributes.\n attr = {key: key};\n break;\n case 'MN':\n el = 'span';\n attr.className = 'mention'\n if (data) {\n attr.className += ' ' + idToColorClass(data.val, false, true);\n }\n break;\n case 'EX':\n let fname;\n if (data) {\n if (data.mime == 'application/json') {\n // Ignore JSON attachments: they are form response payloads.\n return null;\n }\n fname = data.name;\n // Clear payload.\n delete data.val;\n delete data.ref;\n }\n el = React.Fragment;\n values = [attachment,\n shortenFileName(fname, 16) || this.formatMessage(messages.drafty_attachment)];\n break;\n }\n return React.createElement(el, attr, values);\n }\n return previewFormatter.call(this, style, data, values, key);\n}\n\n// Create image thumbnail suitable for inclusion in a quote.\nfunction quoteImageOrVideo(data, isVideo) {\n let promise;\n let bits, ref, mime;\n if (isVideo) {\n bits = data.preview;\n mime = data.premime || 'image/jpeg';\n ref = data.preref;\n } else {\n bits = data.val;\n mime = data.mime;\n ref = data.ref;\n }\n // Get the blob from the image data.\n if (bits) {\n const blob = base64ToBlob(bits, mime);\n if (!blob) {\n throw new Error(\"Invalid image\");\n }\n promise = Promise.resolve(blob);\n } else if (ref) {\n promise = fetch(this.authorizeURL(sanitizeUrlForMime(ref, 'image')))\n .then(evt => {\n if (evt.ok) {\n return evt.blob();\n } else {\n throw new Error(`Image fetch unsuccessful: ${evt.status} ${evt.statusText}`);\n }\n });\n } else {\n throw new Error(\"Missing image data\");\n }\n\n // Scale the blob.\n return promise\n .then(blob => {\n // If it's an image, cut the square from the center of the image and shrink it.\n // If it's a video, allow it to be rectantular.\n return imageScaled(blob, isVideo ? VIDEO_THUMBNAIL_WIDTH : IMAGE_THUMBNAIL_DIM, IMAGE_THUMBNAIL_DIM, -1, !isVideo)\n }).then(scaled => {\n if (isVideo) {\n data.premime = scaled.mime;\n } else {\n data.mime = scaled.mime;\n }\n data.size = scaled.blob.size;\n data.width = scaled.width;\n data.height = scaled.height;\n delete data.ref;\n delete data.preref;\n // Keeping the original file name, if provided: ex.data.name;\n\n data.src = URL.createObjectURL(scaled.blob);\n return blobToBase64(scaled.blob);\n }).then(b64 => {\n if (isVideo) {\n data.preview = b64.bits;\n } else {\n data.val = b64.bits;\n }\n return data;\n }).catch(err => {\n delete data.val;\n delete data.preview;\n delete data.src;\n data.width = IMAGE_THUMBNAIL_DIM;\n data.height = IMAGE_THUMBNAIL_DIM;\n // Rethrow.\n throw err;\n });\n}\n\n// Create a preview of a reply.\nexport function replyFormatter(style, data, values, key, stack) {\n if (style == 'IM' || style == 'VD') {\n const isImage = style == 'IM';\n const attr = isImage ? inlineImageAttr.call(this, {key: key}, data) :\n inlineVideoAttr.call(this, {key: key}, data);\n\n let loadedPromise;\n try {\n loadedPromise = cancelablePromise(quoteImageOrVideo.call(this, data, style == 'VD'));\n } catch (error) {\n console.warn(\"Failed to quote image:\", error.message);\n loadedPromise = cancelablePromise(error);\n }\n attr.whenDone = loadedPromise;\n values = [React.createElement(LazyImage, attr, null), ' ', attr.alt];\n return React.createElement(React.Fragment, {key: key}, values);\n } else if (style == 'QQ') {\n if (stack.includes('QQ')) {\n // Quote inside quote when forwarding a message.\n return React.createElement('span', {key: key},\n [format_quote, ' ']);\n }\n\n const attr = Drafty.attrValue('QQ', data) || {};\n attr.key = key;\n attr.className = 'reply-quote'\n return React.createElement(Drafty.tagName('QQ'), attr, values);\n }\n return quoteFormatter.call(this, style, data, values, key);\n}\n","// A single topic or user.\nimport React from 'react';\nimport { FormattedMessage, injectIntl } from 'react-intl';\n\nimport ContactBadges from './contact-badges.jsx';\nimport LetterTile from './letter-tile.jsx';\nimport UnreadBadge from './unread-badge.jsx';\n\nimport { Drafty } from 'tinode-sdk';\n\nimport { previewFormatter } from '../lib/formatters.js';\nimport { deliveryMarker } from '../lib/utils.js';\n\nclass Contact extends React.Component {\n constructor(props) {\n super(props);\n\n this.handleClick = this.handleClick.bind(this);\n this.handleContextClick = this.handleContextClick.bind(this);\n }\n\n handleClick(e) {\n e.preventDefault();\n e.stopPropagation();\n if (this.props.onSelected) {\n // Index this.props.index is used by GroupManager.\n this.props.onSelected(this.props.item, this.props.index);\n }\n }\n\n handleContextClick(e) {\n e.preventDefault();\n e.stopPropagation();\n this.props.showContextMenu({ topicName: this.props.item, y: e.pageY, x: e.pageX });\n }\n\n render() {\n let title = this.props.title;\n if (!title) {\n title = ;\n } else if (title.length > 30) {\n // FIXME: this is probably wrong for RTL languages.\n title = title.substring(0, 28) + '…';\n }\n const online = this.props.now ? 'online' : 'offline';\n const avatar = this.props.avatar ? this.props.avatar : true;\n const badges = this.props.badges ? this.props.badges.slice() : [];\n const icon_badges = [];\n if (this.props.isVerified) {\n icon_badges.push({icon: 'verified', color: 'verified-color'});\n }\n if (this.props.isStaff) {\n icon_badges.push({icon: 'staff', color: 'staff-color'});\n }\n if (this.props.isDangerous) {\n icon_badges.push({icon: 'dangerous', color: 'danger-color'});\n }\n if (this.props.acs) {\n if (this.props.showMode) {\n badges.push({name: this.props.acs.getMode(), key: 'mode'});\n }\n if (this.props.acs.isMuted()) {\n icon_badges.push({icon: 'muted'});\n }\n if (!this.props.acs.isJoiner()) {\n icon_badges.push({icon: 'banned'});\n }\n }\n\n // The this.props.preview contains alreay shortened Drafty or string.\n let preview;\n if (typeof this.props.preview == 'string') {\n preview = this.props.preview;\n } else if (Drafty.isValid(this.props.preview)) {\n preview = React.createElement(React.Fragment, null, Drafty.format(this.props.preview, previewFormatter,\n {formatMessage: this.props.intl.formatMessage, previewIsResponse: this.props.previewIsResponse}));\n } else if (this.props.preview) {\n preview =\n <>warning_amber\n \n >;\n }\n\n const icon = deliveryMarker(this.props.received);\n const marker = icon ? {icon.name} : null;\n const titleClass = 'contact-title' + (this.props.deleted ? ' deleted' : '');\n\n return (\n
\n );\n }\n};\n\nexport default injectIntl(Contact);\n","// A panel included into a list of contacts with an action text.\nimport React from 'react';\nimport { injectIntl } from 'react-intl';\n\nclass ContactAction extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick(e) {\n e.preventDefault();\n e.stopPropagation();\n this.props.onAction(this.props.action);\n }\n\n render() {\n const {formatMessage} = this.props.intl;\n return (\n
\n \n );\n }\n};\n\nexport default injectIntl(SendMessage);\n","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport SendMessage from '../widgets/send-message.jsx';\n\nimport { bytesToHumanSize, shortenFileName } from '../lib/strformat.js';\n\n// Get material icon name from mime type.\nfunction iconFromMime(mime) {\n // If more icons become available in material icons, add them to this mime-to-icon mapping.\n const mimeToIcon = {default: 'insert_drive_file', image: 'image', text: 'description', video: 'theaters'};\n\n return mimeToIcon[mime] || mimeToIcon[(mime || '').split('/')[0]] || mimeToIcon['default'];\n}\n\nexport default class DocPreview extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.handleSendDoc = this.handleSendDoc.bind(this);\n }\n\n handleSendDoc(caption) {\n this.props.onClose();\n this.props.onSendMessage(this.props.content.file);\n }\n\n render() {\n if (!this.props.content) {\n return null;\n }\n return (\n
\n );\n }\n};\n","// GroupSubs: a list of group subscribers currently online.\n// Show in the topic title bar\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { MAX_ONLINE_IN_TOPIC } from '../config.js'\n\nimport LetterTile from './letter-tile.jsx';\nimport { makeImageUrl } from '../lib/blob-helpers.js';\n\nexport default class GroupSubs extends React.Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n const usersOnline = [];\n const totalCount = (this.props.subscribers || []).length;\n const countToShow = Math.min(MAX_ONLINE_IN_TOPIC, totalCount);\n\n (this.props.subscribers || []).some((sub) => {\n usersOnline.push(\n
\n );\n }\n};\n","// A single topic or user.\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nexport default class Invitation extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.handleButtonAction = this.handleButtonAction.bind(this);\n }\n\n handleButtonAction(evt, data) {\n evt.preventDefault();\n this.props.onAction(data);\n }\n\n render() {\n return (\n
\n
\n \n
\n
\n \n \n \n
\n
\n );\n }\n};\n","/* This is just a static page to display when no conversation is selected. */\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { Tinode } from 'tinode-sdk';\n\nimport { APP_NAME } from '../config.js';\n\nexport default class LogoView extends React.PureComponent {\n render() {\n const version = APP_NAME + ' (' + Tinode.getLibrary() + ')';\n return (\n
\n );\n }\n};\n","// Message bubble with non-payload content, such as an indicator of deleted content or a date stamp.\n\nimport React from 'react';\n\nexport default class MetaMessage extends React.PureComponent {\n constructor(props) {\n super(props);\n }\n\n render() {\n let content = null;\n let bubbleClass = 'bubble';\n if (this.props.date) {\n // A date badge.\n content = <>{this.props.date}>\n bubbleClass += ' date';\n }\n\n if (!content) {\n return <>{null}>\n }\n\n return (\n