Showing preview only (4,057K chars total). Download the full file or copy to clipboard to get everything.
Repository: albeebe/phoneformat.js
Branch: master
Commit: 1e16d122ab70
Files: 22
Total size: 3.9 MB
Directory structure:
gitextract_xjtp52z4/
├── .gitignore
├── Gruntfile.js
├── LICENSE
├── README.md
├── bower.json
├── closure.txt
├── dist/
│ ├── phone-format-amd.js
│ ├── phone-format-exports.js
│ ├── phone-format-global.js
│ └── phone-format.js
├── lib/
│ ├── global-wrap-end.js
│ ├── global-wrap-start.js
│ ├── google-libraries.js
│ └── phone-format-interface.js
├── package.json
└── tests/
├── index.html
├── jquery.js
├── phone-format-amd.js
├── qunit.js
├── require.js
├── test-runner.js
└── unit/
└── phone-test.js
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
*.DS_Store
*.pyc
node_modules
================================================
FILE: Gruntfile.js
================================================
module.exports = function(grunt) {
grunt.initConfig({
// AMD definitions
autowrap: {
amd: {
options: {
wrapType:'amd'
},
files: {
'dist/phone-format-amd.js': ['dist/phone-format-amd.js']
}
},
exports: {
options: {
wrapType:'exports'
},
files: {
'dist/phone-format-exports.js': ['dist/phone-format-exports.js']
}
}
},
// Use replace workaround to avoid the following error when running autowrap task
// Warning: Parse error on line 48:
// ...g.SINGLE_QUOTE_RE_=/'/g;goog.string.NULL...
// -----------------------^
// Expecting 'REGEXP_BODY', got 'STRING' Use --force to continue.
replace: {
addWorkaround: {
src: ['dist/phone-format-amd.js', 'dist/phone-format-exports.js'],
overwrite: true,
replacements: [{
from: "/'/g",
to: "/(')/g"
}]
},
removeWorkaround: {
src: ['dist/phone-format-amd.js', 'dist/phone-format-exports.js'],
overwrite: true,
replacements: [{
from: "/(')/g",
to: "/'/g"
}]
}
},
// Concat definitions
concat: {
amd: {
src: ['lib/google-libraries.js', 'lib/phone-format-interface.js'],
dest: 'dist/phone-format-amd.js'
},
exports: {
src: ['lib/google-libraries.js', 'lib/phone-format-interface.js'],
dest: 'dist/phone-format-exports.js'
},
global: {
src: ['lib/global-wrap-start.js', 'dist/phone-format.js', 'lib/global-wrap-end.js'],
dest: 'dist/phone-format-global.js'
},
original: {
src: ['lib/google-libraries.js', 'lib/phone-format-interface.js'],
dest: 'dist/phone-format.js'
}
},
// Minify definitions
uglify: {
options: {
mangle: false,
sourceMap: true
},
amd: {
src: ['dist/phone-format-amd.js'],
dest: 'dist/phone-format-amd.min.js'
},
exports: {
src: ['dist/phone-format-exports.js'],
dest: 'dist/phone-format-exports.min.js'
},
global: {
src: ['dist/phone-format-global.js'],
dest: 'dist/phone-format-global.min.js'
},
original: {
src: ['dist/phone-format.js'],
dest: 'dist/phone-format.min.js'
}
},
copy: {
main: {
src: 'dist/phone-format-amd.js',
dest: 'tests/phone-format-amd.js',
}
}
});
grunt.loadNpmTasks('grunt-autowrap');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-text-replace');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.registerTask('default', [
'concat',
'replace:addWorkaround', // Workaroung to avoid autowrap Parse error
'autowrap',
'replace:removeWorkaround', // Workaroung to avoid autowrap Parse error
'uglify',
'copy'
]);
};
================================================
FILE: LICENSE
================================================
The MIT License (MIT)
Copyright (c) 2017 Matti Salokangas
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
================================================
FILE: README.md
================================================
# PhoneFormat.js
#### A javascript phone formatter
## Install
### via Bower
`bower install phoneformat.js`
### via NPM
`npm install phoneformat.js`
All files for usage are in the /dist directory.
- **Amd**:
- phone-format-amd.js or phone-format-amd.min.js
- **Exports**:
- phone-format-exports.js or phone-format-amd.min.js
- **Global**:
- phone-format-global.js or phone-format-global.min.js
- **Original Blend**:
- phone-format.js or phone-format.min.js
## API
| Function | Parameters | Example | | |
|------------------------------ |-------------------------------------------- |-------------------------------------------------------------------------- |--- |--- |
| countryForE164Number | phoneNumber : string | phoneFormat.countryForE164Number(validInternationalPhoneNumber); | | |
| formatNumberForMobileDialing | countryCode : string, phoneNumber : string | phoneFormat.formatNumberForMobileDialing(countryCode, validPhoneNumber); | | |
| isValidNumber | phoneNumber : string, countryCode : string | phoneFormat.isValidNumber(validPhoneNumber, countryCode); | | |
| formatE164 | countryCode: string, phoneNumber : string | phoneFormat.formatE164(countryCode, validPhoneNumber); | | |
| formatInternational | countryCode : string, phoneNumber : string | phoneFormat.formatInternational(countryCode, validPhoneNumber); | | |
| formatLocal | countryCode : string, phoneNumber : string | phoneFormat.formatLocal(countryCode, validPhoneNumber); | | |
| exampleLandlineNumber | countryCode : string | phoneFormat.exampleLandlineNumber(countryCode); | | |
| exampleMobileNumber | countryCode : string | phoneFormat.exampleMobileNumber(countryCode); | | |
| cleanPhone | phoneNumber : string | phoneFormat.cleanPhone(validPhoneNumber); | | |
| countryCodeToName | countryCode : string | phoneFormat.countryCodeToName(countryCode); | | |
## FAQ
**Is PhoneFormat.js in sync with the latest libphonenumber?**
More often then not PhoneFormat.js will NOT be using the [latest version](https://code.google.com/p/libphonenumber/source/browse/#svn%2Ftrunk%2Fjavascript%2Fi18n%2Fphonenumbers) of libphonenumber.
It was last synced v8.10.6
If this is causing you any headaches, please follow the instructions below to update the source files in /lib.
* Step 1
* Copy to your clipboard, the contents of [closure.txt](https://github.com/albeebe/phoneformat.js/blob/master/closure.txt) at the top of this page
* Step 2
* Go to Googles [Closure Compiler Service](http://closure-compiler.appspot.com/home)
* Step 3
* Paste the contents of [closure.txt](https://github.com/albeebe/phoneformat.js/blob/master/closure.txt) into the big textarea on the left side of the screen under the **Compile** button.
* Make sure you delete whatever text is already the textarea!
* After you've pasted it press the **Compile** button
* If everything works correctly, on the right side of the screen will be a freshly compiled google-libraries.js
* Step 4
* Update `lib/google-libraries.js` with the compiled libraries from the compiler service.
* Run `npm run build`
* Commit your change, push it up and submit a pull request.
* Thank you!
## Questions?
* [@sturdynut](http://twitter.com/sturdynut)
* [@albeebe](http://twitter.com/albeebe)
This project was created by [@albeebe](http://twitter.com/albeebe).
================================================
FILE: bower.json
================================================
{
"name": "phoneformat",
"main": "./dist/phone-format.js",
"version": "1.0.9",
"homepage": "https://github.com/albeebe/phoneformat.js",
"authors": [
"Al Cheetah",
"Matti Salokangas <matti.salokangas@gmail.com>"
],
"description": "Javascript phone number formatter based on libphonenumber.",
"moduleType": [
"amd",
"globals",
"node"
],
"keywords": [
"PhoneFormatter",
"PhoneValidator"
],
"license": "MIT",
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"test",
"tests"
]
}
================================================
FILE: closure.txt
================================================
// ==ClosureCompiler==
// @compilation_level SIMPLE_OPTIMIZATIONS
// @output_file_name phoneformat.js
// @use_closure_library true
// @code_url https://raw.githubusercontent.com/googlei18n/libphonenumber/master/javascript/i18n/phonenumbers/asyoutypeformatter.js
// @code_url https://raw.githubusercontent.com/googlei18n/libphonenumber/master/javascript/i18n/phonenumbers/phonenumberutil.js
// @code_url https://raw.githubusercontent.com/googlei18n/libphonenumber/master/javascript/i18n/phonenumbers/regioncodefortesting.js
// @code_url https://raw.githubusercontent.com/googlei18n/libphonenumber/master/javascript/i18n/phonenumbers/phonemetadata.pb.js
// @code_url https://raw.githubusercontent.com/googlei18n/libphonenumber/master/javascript/i18n/phonenumbers/metadata.js
// @code_url https://raw.githubusercontent.com/googlei18n/libphonenumber/master/javascript/i18n/phonenumbers/phonenumber.pb.js
// @formatting pretty_print
// ==/ClosureCompiler==
goog.require('goog.dom');
goog.require('goog.json');
goog.require('goog.proto2.ObjectSerializer');
goog.require('goog.string.StringBuffer');
goog.require('i18n.phonenumbers.AsYouTypeFormatter');
goog.require('i18n.phonenumbers.PhoneNumberFormat');
goog.require('i18n.phonenumbers.PhoneNumberType');
goog.require('i18n.phonenumbers.PhoneNumberUtil');
goog.require('i18n.phonenumbers.PhoneNumberUtil.ValidationResult');
================================================
FILE: dist/phone-format-amd.js
================================================
define(function(require, exports, module){
var COMPILED = !0, goog = goog || {};
goog.global = this || self;
goog.isDef = function(a) {
return void 0 !== a;
};
goog.isString = function(a) {
return "string" == typeof a;
};
goog.isBoolean = function(a) {
return "boolean" == typeof a;
};
goog.isNumber = function(a) {
return "number" == typeof a;
};
goog.exportPath_ = function(a, b, c) {
a = a.split(".");
c = c || goog.global;
a[0] in c || "undefined" == typeof c.execScript || c.execScript("var " + a[0]);
for (var d; a.length && (d = a.shift());) {
a.length || void 0 === b ? c = c[d] && c[d] !== Object.prototype[d] ? c[d] : c[d] = {} : c[d] = b;
}
};
goog.define = function(a, b) {
var c = b;
if (!COMPILED) {
var d = goog.global.CLOSURE_UNCOMPILED_DEFINES, e = goog.global.CLOSURE_DEFINES;
d && void 0 === d.nodeType && Object.prototype.hasOwnProperty.call(d, a) ? c = d[a] : e && void 0 === e.nodeType && Object.prototype.hasOwnProperty.call(e, a) && (c = e[a]);
}
return c;
};
goog.FEATURESET_YEAR = 2012;
goog.DEBUG = !0;
goog.LOCALE = "en";
goog.TRUSTED_SITE = !0;
goog.STRICT_MODE_COMPATIBLE = !1;
goog.DISALLOW_TEST_ONLY_CODE = COMPILED && !goog.DEBUG;
goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING = !1;
goog.provide = function(a) {
if (goog.isInModuleLoader_()) {
throw Error("goog.provide cannot be used within a module.");
}
if (!COMPILED && goog.isProvided_(a)) {
throw Error('Namespace "' + a + '" already declared.');
}
goog.constructNamespace_(a);
};
goog.constructNamespace_ = function(a, b) {
if (!COMPILED) {
delete goog.implicitNamespaces_[a];
for (var c = a; (c = c.substring(0, c.lastIndexOf("."))) && !goog.getObjectByName(c);) {
goog.implicitNamespaces_[c] = !0;
}
}
goog.exportPath_(a, b);
};
goog.getScriptNonce = function(a) {
if (a && a != goog.global) {
return goog.getScriptNonce_(a.document);
}
null === goog.cspNonce_ && (goog.cspNonce_ = goog.getScriptNonce_(goog.global.document));
return goog.cspNonce_;
};
goog.NONCE_PATTERN_ = /^[\w+/_-]+[=]{0,2}$/;
goog.cspNonce_ = null;
goog.getScriptNonce_ = function(a) {
return (a = a.querySelector && a.querySelector("script[nonce]")) && (a = a.nonce || a.getAttribute("nonce")) && goog.NONCE_PATTERN_.test(a) ? a : "";
};
goog.VALID_MODULE_RE_ = /^[a-zA-Z_$][a-zA-Z0-9._$]*$/;
goog.module = function(a) {
if ("string" !== typeof a || !a || -1 == a.search(goog.VALID_MODULE_RE_)) {
throw Error("Invalid module identifier");
}
if (!goog.isInGoogModuleLoader_()) {
throw Error("Module " + a + " has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.");
}
if (goog.moduleLoaderState_.moduleName) {
throw Error("goog.module may only be called once per module.");
}
goog.moduleLoaderState_.moduleName = a;
if (!COMPILED) {
if (goog.isProvided_(a)) {
throw Error('Namespace "' + a + '" already declared.');
}
delete goog.implicitNamespaces_[a];
}
};
goog.module.get = function(a) {
return goog.module.getInternal_(a);
};
goog.module.getInternal_ = function(a) {
if (!COMPILED) {
if (a in goog.loadedModules_) {
return goog.loadedModules_[a].exports;
}
if (!goog.implicitNamespaces_[a]) {
return a = goog.getObjectByName(a), null != a ? a : null;
}
}
return null;
};
goog.ModuleType = {ES6:"es6", GOOG:"goog"};
goog.moduleLoaderState_ = null;
goog.isInModuleLoader_ = function() {
return goog.isInGoogModuleLoader_() || goog.isInEs6ModuleLoader_();
};
goog.isInGoogModuleLoader_ = function() {
return !!goog.moduleLoaderState_ && goog.moduleLoaderState_.type == goog.ModuleType.GOOG;
};
goog.isInEs6ModuleLoader_ = function() {
if (goog.moduleLoaderState_ && goog.moduleLoaderState_.type == goog.ModuleType.ES6) {
return !0;
}
var a = goog.global.$jscomp;
return a ? "function" != typeof a.getCurrentModulePath ? !1 : !!a.getCurrentModulePath() : !1;
};
goog.module.declareLegacyNamespace = function() {
if (!COMPILED && !goog.isInGoogModuleLoader_()) {
throw Error("goog.module.declareLegacyNamespace must be called from within a goog.module");
}
if (!COMPILED && !goog.moduleLoaderState_.moduleName) {
throw Error("goog.module must be called prior to goog.module.declareLegacyNamespace.");
}
goog.moduleLoaderState_.declareLegacyNamespace = !0;
};
goog.declareModuleId = function(a) {
if (!COMPILED) {
if (!goog.isInEs6ModuleLoader_()) {
throw Error("goog.declareModuleId may only be called from within an ES6 module");
}
if (goog.moduleLoaderState_ && goog.moduleLoaderState_.moduleName) {
throw Error("goog.declareModuleId may only be called once per module.");
}
if (a in goog.loadedModules_) {
throw Error('Module with namespace "' + a + '" already exists.');
}
}
if (goog.moduleLoaderState_) {
goog.moduleLoaderState_.moduleName = a;
} else {
var b = goog.global.$jscomp;
if (!b || "function" != typeof b.getCurrentModulePath) {
throw Error('Module with namespace "' + a + '" has been loaded incorrectly.');
}
b = b.require(b.getCurrentModulePath());
goog.loadedModules_[a] = {exports:b, type:goog.ModuleType.ES6, moduleId:a};
}
};
goog.setTestOnly = function(a) {
if (goog.DISALLOW_TEST_ONLY_CODE) {
throw a = a || "", Error("Importing test-only code into non-debug environment" + (a ? ": " + a : "."));
}
};
goog.forwardDeclare = function(a) {
};
COMPILED || (goog.isProvided_ = function(a) {
return a in goog.loadedModules_ || !goog.implicitNamespaces_[a] && null != goog.getObjectByName(a);
}, goog.implicitNamespaces_ = {"goog.module":!0});
goog.getObjectByName = function(a, b) {
for (var c = a.split("."), d = b || goog.global, e = 0; e < c.length; e++) {
if (d = d[c[e]], null == d) {
return null;
}
}
return d;
};
goog.globalize = function(a, b) {
var c = b || goog.global, d;
for (d in a) {
c[d] = a[d];
}
};
goog.addDependency = function(a, b, c, d) {
!COMPILED && goog.DEPENDENCIES_ENABLED && goog.debugLoader_.addDependency(a, b, c, d);
};
goog.ENABLE_DEBUG_LOADER = !0;
goog.logToConsole_ = function(a) {
goog.global.console && goog.global.console.error(a);
};
goog.require = function(a) {
if (!COMPILED) {
goog.ENABLE_DEBUG_LOADER && goog.debugLoader_.requested(a);
if (goog.isProvided_(a)) {
if (goog.isInModuleLoader_()) {
return goog.module.getInternal_(a);
}
} else {
if (goog.ENABLE_DEBUG_LOADER) {
var b = goog.moduleLoaderState_;
goog.moduleLoaderState_ = null;
try {
goog.debugLoader_.load_(a);
} finally {
goog.moduleLoaderState_ = b;
}
}
}
return null;
}
};
goog.requireType = function(a) {
return {};
};
goog.basePath = "";
goog.nullFunction = function() {
};
goog.abstractMethod = function() {
throw Error("unimplemented abstract method");
};
goog.addSingletonGetter = function(a) {
a.instance_ = void 0;
a.getInstance = function() {
if (a.instance_) {
return a.instance_;
}
goog.DEBUG && (goog.instantiatedSingletons_[goog.instantiatedSingletons_.length] = a);
return a.instance_ = new a;
};
};
goog.instantiatedSingletons_ = [];
goog.LOAD_MODULE_USING_EVAL = !0;
goog.SEAL_MODULE_EXPORTS = goog.DEBUG;
goog.loadedModules_ = {};
goog.DEPENDENCIES_ENABLED = !COMPILED && goog.ENABLE_DEBUG_LOADER;
goog.TRANSPILE = "detect";
goog.ASSUME_ES_MODULES_TRANSPILED = !1;
goog.TRANSPILE_TO_LANGUAGE = "";
goog.TRANSPILER = "transpile.js";
goog.hasBadLetScoping = null;
goog.useSafari10Workaround = function() {
if (null == goog.hasBadLetScoping) {
try {
var a = !eval('"use strict";let x = 1; function f() { return typeof x; };f() == "number";');
} catch (b) {
a = !1;
}
goog.hasBadLetScoping = a;
}
return goog.hasBadLetScoping;
};
goog.workaroundSafari10EvalBug = function(a) {
return "(function(){" + a + "\n;})();\n";
};
goog.loadModule = function(a) {
var b = goog.moduleLoaderState_;
try {
goog.moduleLoaderState_ = {moduleName:"", declareLegacyNamespace:!1, type:goog.ModuleType.GOOG};
if (goog.isFunction(a)) {
var c = a.call(void 0, {});
} else {
if ("string" === typeof a) {
goog.useSafari10Workaround() && (a = goog.workaroundSafari10EvalBug(a)), c = goog.loadModuleFromSource_.call(void 0, a);
} else {
throw Error("Invalid module definition");
}
}
var d = goog.moduleLoaderState_.moduleName;
if ("string" === typeof d && d) {
goog.moduleLoaderState_.declareLegacyNamespace ? goog.constructNamespace_(d, c) : goog.SEAL_MODULE_EXPORTS && Object.seal && "object" == typeof c && null != c && Object.seal(c), goog.loadedModules_[d] = {exports:c, type:goog.ModuleType.GOOG, moduleId:goog.moduleLoaderState_.moduleName};
} else {
throw Error('Invalid module name "' + d + '"');
}
} finally {
goog.moduleLoaderState_ = b;
}
};
goog.loadModuleFromSource_ = function(a) {
eval(a);
return {};
};
goog.normalizePath_ = function(a) {
a = a.split("/");
for (var b = 0; b < a.length;) {
"." == a[b] ? a.splice(b, 1) : b && ".." == a[b] && a[b - 1] && ".." != a[b - 1] ? a.splice(--b, 2) : b++;
}
return a.join("/");
};
goog.loadFileSync_ = function(a) {
if (goog.global.CLOSURE_LOAD_FILE_SYNC) {
return goog.global.CLOSURE_LOAD_FILE_SYNC(a);
}
try {
var b = new goog.global.XMLHttpRequest;
b.open("get", a, !1);
b.send();
return 0 == b.status || 200 == b.status ? b.responseText : null;
} catch (c) {
return null;
}
};
goog.transpile_ = function(a, b, c) {
var d = goog.global.$jscomp;
d || (goog.global.$jscomp = d = {});
var e = d.transpile;
if (!e) {
var f = goog.basePath + goog.TRANSPILER, g = goog.loadFileSync_(f);
if (g) {
(function() {
(0,eval)(g + "\n//# sourceURL=" + f);
}).call(goog.global);
if (goog.global.$gwtExport && goog.global.$gwtExport.$jscomp && !goog.global.$gwtExport.$jscomp.transpile) {
throw Error('The transpiler did not properly export the "transpile" method. $gwtExport: ' + JSON.stringify(goog.global.$gwtExport));
}
goog.global.$jscomp.transpile = goog.global.$gwtExport.$jscomp.transpile;
d = goog.global.$jscomp;
e = d.transpile;
}
}
e || (e = d.transpile = function(a, b) {
goog.logToConsole_(b + " requires transpilation but no transpiler was found.");
return a;
});
return e(a, b, c);
};
goog.typeOf = function(a) {
var b = typeof a;
if ("object" == b) {
if (a) {
if (a instanceof Array) {
return "array";
}
if (a instanceof Object) {
return b;
}
var c = Object.prototype.toString.call(a);
if ("[object Window]" == c) {
return "object";
}
if ("[object Array]" == c || "number" == typeof a.length && "undefined" != typeof a.splice && "undefined" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable("splice")) {
return "array";
}
if ("[object Function]" == c || "undefined" != typeof a.call && "undefined" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable("call")) {
return "function";
}
} else {
return "null";
}
} else {
if ("function" == b && "undefined" == typeof a.call) {
return "object";
}
}
return b;
};
goog.isNull = function(a) {
return null === a;
};
goog.isDefAndNotNull = function(a) {
return null != a;
};
goog.isArray = function(a) {
return "array" == goog.typeOf(a);
};
goog.isArrayLike = function(a) {
var b = goog.typeOf(a);
return "array" == b || "object" == b && "number" == typeof a.length;
};
goog.isDateLike = function(a) {
return goog.isObject(a) && "function" == typeof a.getFullYear;
};
goog.isFunction = function(a) {
return "function" == goog.typeOf(a);
};
goog.isObject = function(a) {
var b = typeof a;
return "object" == b && null != a || "function" == b;
};
goog.getUid = function(a) {
return a[goog.UID_PROPERTY_] || (a[goog.UID_PROPERTY_] = ++goog.uidCounter_);
};
goog.hasUid = function(a) {
return !!a[goog.UID_PROPERTY_];
};
goog.removeUid = function(a) {
null !== a && "removeAttribute" in a && a.removeAttribute(goog.UID_PROPERTY_);
try {
delete a[goog.UID_PROPERTY_];
} catch (b) {
}
};
goog.UID_PROPERTY_ = "closure_uid_" + (1e9 * Math.random() >>> 0);
goog.uidCounter_ = 0;
goog.getHashCode = goog.getUid;
goog.removeHashCode = goog.removeUid;
goog.cloneObject = function(a) {
var b = goog.typeOf(a);
if ("object" == b || "array" == b) {
if ("function" === typeof a.clone) {
return a.clone();
}
b = "array" == b ? [] : {};
for (var c in a) {
b[c] = goog.cloneObject(a[c]);
}
return b;
}
return a;
};
goog.bindNative_ = function(a, b, c) {
return a.call.apply(a.bind, arguments);
};
goog.bindJs_ = function(a, b, c) {
if (!a) {
throw Error();
}
if (2 < arguments.length) {
var d = Array.prototype.slice.call(arguments, 2);
return function() {
var c = Array.prototype.slice.call(arguments);
Array.prototype.unshift.apply(c, d);
return a.apply(b, c);
};
}
return function() {
return a.apply(b, arguments);
};
};
goog.bind = function(a, b, c) {
Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf("native code") ? goog.bind = goog.bindNative_ : goog.bind = goog.bindJs_;
return goog.bind.apply(null, arguments);
};
goog.partial = function(a, b) {
var c = Array.prototype.slice.call(arguments, 1);
return function() {
var b = c.slice();
b.push.apply(b, arguments);
return a.apply(this, b);
};
};
goog.mixin = function(a, b) {
for (var c in b) {
a[c] = b[c];
}
};
goog.now = goog.TRUSTED_SITE && Date.now || function() {
return +new Date;
};
goog.globalEval = function(a) {
if (goog.global.execScript) {
goog.global.execScript(a, "JavaScript");
} else {
if (goog.global.eval) {
if (null == goog.evalWorksForGlobals_) {
try {
goog.global.eval("var _evalTest_ = 1;");
} catch (d) {
}
if ("undefined" != typeof goog.global._evalTest_) {
try {
delete goog.global._evalTest_;
} catch (d) {
}
goog.evalWorksForGlobals_ = !0;
} else {
goog.evalWorksForGlobals_ = !1;
}
}
if (goog.evalWorksForGlobals_) {
goog.global.eval(a);
} else {
var b = goog.global.document, c = b.createElement("script");
c.type = "text/javascript";
c.defer = !1;
c.appendChild(b.createTextNode(a));
b.head.appendChild(c);
b.head.removeChild(c);
}
} else {
throw Error("goog.globalEval not available");
}
}
};
goog.evalWorksForGlobals_ = null;
goog.getCssName = function(a, b) {
if ("." == String(a).charAt(0)) {
throw Error('className passed in goog.getCssName must not start with ".". You passed: ' + a);
}
var c = function(a) {
return goog.cssNameMapping_[a] || a;
}, d = function(a) {
a = a.split("-");
for (var b = [], d = 0; d < a.length; d++) {
b.push(c(a[d]));
}
return b.join("-");
};
d = goog.cssNameMapping_ ? "BY_WHOLE" == goog.cssNameMappingStyle_ ? c : d : function(a) {
return a;
};
d = b ? a + "-" + d(b) : d(a);
return goog.global.CLOSURE_CSS_NAME_MAP_FN ? goog.global.CLOSURE_CSS_NAME_MAP_FN(d) : d;
};
goog.setCssNameMapping = function(a, b) {
goog.cssNameMapping_ = a;
goog.cssNameMappingStyle_ = b;
};
!COMPILED && goog.global.CLOSURE_CSS_NAME_MAPPING && (goog.cssNameMapping_ = goog.global.CLOSURE_CSS_NAME_MAPPING);
goog.getMsg = function(a, b, c) {
c && c.html && (a = a.replace(/</g, "<"));
b && (a = a.replace(/\{\$([^}]+)}/g, function(a, c) {
return null != b && c in b ? b[c] : a;
}));
return a;
};
goog.getMsgWithFallback = function(a, b) {
return a;
};
goog.exportSymbol = function(a, b, c) {
goog.exportPath_(a, b, c);
};
goog.exportProperty = function(a, b, c) {
a[b] = c;
};
goog.inherits = function(a, b) {
function c() {
}
c.prototype = b.prototype;
a.superClass_ = b.prototype;
a.prototype = new c;
a.prototype.constructor = a;
a.base = function(a, c, f) {
for (var d = Array(arguments.length - 2), e = 2; e < arguments.length; e++) {
d[e - 2] = arguments[e];
}
return b.prototype[c].apply(a, d);
};
};
goog.base = function(a, b, c) {
var d = arguments.callee.caller;
if (goog.STRICT_MODE_COMPATIBLE || goog.DEBUG && !d) {
throw Error("arguments.caller not defined. goog.base() cannot be used with strict mode code. See http://www.ecma-international.org/ecma-262/5.1/#sec-C");
}
if ("undefined" !== typeof d.superClass_) {
for (var e = Array(arguments.length - 1), f = 1; f < arguments.length; f++) {
e[f - 1] = arguments[f];
}
return d.superClass_.constructor.apply(a, e);
}
if ("string" != typeof b && "symbol" != typeof b) {
throw Error("method names provided to goog.base must be a string or a symbol");
}
e = Array(arguments.length - 2);
for (f = 2; f < arguments.length; f++) {
e[f - 2] = arguments[f];
}
f = !1;
for (var g = a.constructor.prototype; g; g = Object.getPrototypeOf(g)) {
if (g[b] === d) {
f = !0;
} else {
if (f) {
return g[b].apply(a, e);
}
}
}
if (a[b] === d) {
return a.constructor.prototype[b].apply(a, e);
}
throw Error("goog.base called from a method of one name to a method of a different name");
};
goog.scope = function(a) {
if (goog.isInModuleLoader_()) {
throw Error("goog.scope is not supported within a module.");
}
a.call(goog.global);
};
COMPILED || (goog.global.COMPILED = COMPILED);
goog.defineClass = function(a, b) {
var c = b.constructor, d = b.statics;
c && c != Object.prototype.constructor || (c = function() {
throw Error("cannot instantiate an interface (no constructor defined).");
});
c = goog.defineClass.createSealingConstructor_(c, a);
a && goog.inherits(c, a);
delete b.constructor;
delete b.statics;
goog.defineClass.applyProperties_(c.prototype, b);
null != d && (d instanceof Function ? d(c) : goog.defineClass.applyProperties_(c, d));
return c;
};
goog.defineClass.SEAL_CLASS_INSTANCES = goog.DEBUG;
goog.defineClass.createSealingConstructor_ = function(a, b) {
if (!goog.defineClass.SEAL_CLASS_INSTANCES) {
return a;
}
var c = !goog.defineClass.isUnsealable_(b), d = function() {
var b = a.apply(this, arguments) || this;
b[goog.UID_PROPERTY_] = b[goog.UID_PROPERTY_];
this.constructor === d && c && Object.seal instanceof Function && Object.seal(b);
return b;
};
return d;
};
goog.defineClass.isUnsealable_ = function(a) {
return a && a.prototype && a.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_];
};
goog.defineClass.OBJECT_PROTOTYPE_FIELDS_ = "constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");
goog.defineClass.applyProperties_ = function(a, b) {
for (var c in b) {
Object.prototype.hasOwnProperty.call(b, c) && (a[c] = b[c]);
}
for (var d = 0; d < goog.defineClass.OBJECT_PROTOTYPE_FIELDS_.length; d++) {
c = goog.defineClass.OBJECT_PROTOTYPE_FIELDS_[d], Object.prototype.hasOwnProperty.call(b, c) && (a[c] = b[c]);
}
};
goog.tagUnsealableClass = function(a) {
!COMPILED && goog.defineClass.SEAL_CLASS_INSTANCES && (a.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_] = !0);
};
goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_ = "goog_defineClass_legacy_unsealable";
!COMPILED && goog.DEPENDENCIES_ENABLED && (goog.inHtmlDocument_ = function() {
var a = goog.global.document;
return null != a && "write" in a;
}, goog.isDocumentLoading_ = function() {
var a = goog.global.document;
return a.attachEvent ? "complete" != a.readyState : "loading" == a.readyState;
}, goog.findBasePath_ = function() {
if (void 0 != goog.global.CLOSURE_BASE_PATH && "string" === typeof goog.global.CLOSURE_BASE_PATH) {
goog.basePath = goog.global.CLOSURE_BASE_PATH;
} else {
if (goog.inHtmlDocument_()) {
var a = goog.global.document, b = a.currentScript;
a = b ? [b] : a.getElementsByTagName("SCRIPT");
for (b = a.length - 1; 0 <= b; --b) {
var c = a[b].src, d = c.lastIndexOf("?");
d = -1 == d ? c.length : d;
if ("base.js" == c.substr(d - 7, 7)) {
goog.basePath = c.substr(0, d - 7);
break;
}
}
}
}
}, goog.findBasePath_(), goog.Transpiler = function() {
this.requiresTranspilation_ = null;
this.transpilationTarget_ = goog.TRANSPILE_TO_LANGUAGE;
}, goog.Transpiler.prototype.createRequiresTranspilation_ = function() {
function a(a, b) {
e ? d[a] = !0 : b() ? (c = a, d[a] = !1) : e = d[a] = !0;
}
function b(a) {
try {
return !!eval(a);
} catch (h) {
return !1;
}
}
var c = "es3", d = {es3:!1}, e = !1, f = goog.global.navigator && goog.global.navigator.userAgent ? goog.global.navigator.userAgent : "";
a("es5", function() {
return b("[1,].length==1");
});
a("es6", function() {
return f.match(/Edge\/(\d+)(\.\d)*/i) ? !1 : b('(()=>{"use strict";class X{constructor(){if(new.target!=String)throw 1;this.x=42}}let q=Reflect.construct(X,[],String);if(q.x!=42||!(q instanceof String))throw 1;for(const a of[2,3]){if(a==2)continue;function f(z={a}){let a=0;return z.a}{function f(){return 0;}}return f()==3}})()');
});
a("es7", function() {
return b("2 ** 2 == 4");
});
a("es8", function() {
return b("async () => 1, true");
});
a("es9", function() {
return b("({...rest} = {}), true");
});
a("es_next", function() {
return !1;
});
return {target:c, map:d};
}, goog.Transpiler.prototype.needsTranspile = function(a, b) {
if ("always" == goog.TRANSPILE) {
return !0;
}
if ("never" == goog.TRANSPILE) {
return !1;
}
if (!this.requiresTranspilation_) {
var c = this.createRequiresTranspilation_();
this.requiresTranspilation_ = c.map;
this.transpilationTarget_ = this.transpilationTarget_ || c.target;
}
if (a in this.requiresTranspilation_) {
return this.requiresTranspilation_[a] ? !0 : !goog.inHtmlDocument_() || "es6" != b || "noModule" in goog.global.document.createElement("script") ? !1 : !0;
}
throw Error("Unknown language mode: " + a);
}, goog.Transpiler.prototype.transpile = function(a, b) {
return goog.transpile_(a, b, this.transpilationTarget_);
}, goog.transpiler_ = new goog.Transpiler, goog.protectScriptTag_ = function(a) {
return a.replace(/<\/(SCRIPT)/ig, "\\x3c/$1");
}, goog.DebugLoader_ = function() {
this.dependencies_ = {};
this.idToPath_ = {};
this.written_ = {};
this.loadingDeps_ = [];
this.depsToLoad_ = [];
this.paused_ = !1;
this.factory_ = new goog.DependencyFactory(goog.transpiler_);
this.deferredCallbacks_ = {};
this.deferredQueue_ = [];
}, goog.DebugLoader_.prototype.bootstrap = function(a, b) {
function c() {
d && (goog.global.setTimeout(d, 0), d = null);
}
var d = b;
if (a.length) {
for (var e = [], f = 0; f < a.length; f++) {
var g = this.getPathFromDeps_(a[f]);
if (!g) {
throw Error("Unregonized namespace: " + a[f]);
}
e.push(this.dependencies_[g]);
}
g = goog.require;
var h = 0;
for (f = 0; f < a.length; f++) {
g(a[f]), e[f].onLoad(function() {
++h == a.length && c();
});
}
} else {
c();
}
}, goog.DebugLoader_.prototype.loadClosureDeps = function() {
this.depsToLoad_.push(this.factory_.createDependency(goog.normalizePath_(goog.basePath + "deps.js"), "deps.js", [], [], {}, !1));
this.loadDeps_();
}, goog.DebugLoader_.prototype.requested = function(a, b) {
var c = this.getPathFromDeps_(a);
if (c && (b || this.areDepsLoaded_(this.dependencies_[c].requires))) {
var d = this.deferredCallbacks_[c];
d && (delete this.deferredCallbacks_[c], d());
}
}, goog.DebugLoader_.prototype.setDependencyFactory = function(a) {
this.factory_ = a;
}, goog.DebugLoader_.prototype.load_ = function(a) {
if (this.getPathFromDeps_(a)) {
var b = this, c = [], d = function(a) {
var e = b.getPathFromDeps_(a);
if (!e) {
throw Error("Bad dependency path or symbol: " + a);
}
if (!b.written_[e]) {
b.written_[e] = !0;
a = b.dependencies_[e];
for (e = 0; e < a.requires.length; e++) {
goog.isProvided_(a.requires[e]) || d(a.requires[e]);
}
c.push(a);
}
};
d(a);
a = !!this.depsToLoad_.length;
this.depsToLoad_ = this.depsToLoad_.concat(c);
this.paused_ || a || this.loadDeps_();
} else {
throw a = "goog.require could not find: " + a, goog.logToConsole_(a), Error(a);
}
}, goog.DebugLoader_.prototype.loadDeps_ = function() {
for (var a = this, b = this.paused_; this.depsToLoad_.length && !b;) {
(function() {
var c = !1, d = a.depsToLoad_.shift(), e = !1;
a.loading_(d);
var f = {pause:function() {
if (c) {
throw Error("Cannot call pause after the call to load.");
}
b = !0;
}, resume:function() {
c ? a.resume_() : b = !1;
}, loaded:function() {
if (e) {
throw Error("Double call to loaded.");
}
e = !0;
a.loaded_(d);
}, pending:function() {
for (var b = [], c = 0; c < a.loadingDeps_.length; c++) {
b.push(a.loadingDeps_[c]);
}
return b;
}, setModuleState:function(a) {
goog.moduleLoaderState_ = {type:a, moduleName:"", declareLegacyNamespace:!1};
}, registerEs6ModuleExports:function(a, b, c) {
c && (goog.loadedModules_[c] = {exports:b, type:goog.ModuleType.ES6, moduleId:c || ""});
}, registerGoogModuleExports:function(a, b) {
goog.loadedModules_[a] = {exports:b, type:goog.ModuleType.GOOG, moduleId:a};
}, clearModuleState:function() {
goog.moduleLoaderState_ = null;
}, defer:function(b) {
if (c) {
throw Error("Cannot register with defer after the call to load.");
}
a.defer_(d, b);
}, areDepsLoaded:function() {
return a.areDepsLoaded_(d.requires);
}};
try {
d.load(f);
} finally {
c = !0;
}
})();
}
b && this.pause_();
}, goog.DebugLoader_.prototype.pause_ = function() {
this.paused_ = !0;
}, goog.DebugLoader_.prototype.resume_ = function() {
this.paused_ && (this.paused_ = !1, this.loadDeps_());
}, goog.DebugLoader_.prototype.loading_ = function(a) {
this.loadingDeps_.push(a);
}, goog.DebugLoader_.prototype.loaded_ = function(a) {
for (var b = 0; b < this.loadingDeps_.length; b++) {
if (this.loadingDeps_[b] == a) {
this.loadingDeps_.splice(b, 1);
break;
}
}
for (b = 0; b < this.deferredQueue_.length; b++) {
if (this.deferredQueue_[b] == a.path) {
this.deferredQueue_.splice(b, 1);
break;
}
}
if (this.loadingDeps_.length == this.deferredQueue_.length && !this.depsToLoad_.length) {
for (; this.deferredQueue_.length;) {
this.requested(this.deferredQueue_.shift(), !0);
}
}
a.loaded();
}, goog.DebugLoader_.prototype.areDepsLoaded_ = function(a) {
for (var b = 0; b < a.length; b++) {
var c = this.getPathFromDeps_(a[b]);
if (!c || !(c in this.deferredCallbacks_ || goog.isProvided_(a[b]))) {
return !1;
}
}
return !0;
}, goog.DebugLoader_.prototype.getPathFromDeps_ = function(a) {
return a in this.idToPath_ ? this.idToPath_[a] : a in this.dependencies_ ? a : null;
}, goog.DebugLoader_.prototype.defer_ = function(a, b) {
this.deferredCallbacks_[a.path] = b;
this.deferredQueue_.push(a.path);
}, goog.LoadController = function() {
}, goog.LoadController.prototype.pause = function() {
}, goog.LoadController.prototype.resume = function() {
}, goog.LoadController.prototype.loaded = function() {
}, goog.LoadController.prototype.pending = function() {
}, goog.LoadController.prototype.registerEs6ModuleExports = function(a, b, c) {
}, goog.LoadController.prototype.setModuleState = function(a) {
}, goog.LoadController.prototype.clearModuleState = function() {
}, goog.LoadController.prototype.defer = function(a) {
}, goog.LoadController.prototype.areDepsLoaded = function() {
}, goog.Dependency = function(a, b, c, d, e) {
this.path = a;
this.relativePath = b;
this.provides = c;
this.requires = d;
this.loadFlags = e;
this.loaded_ = !1;
this.loadCallbacks_ = [];
}, goog.Dependency.prototype.getPathName = function() {
var a = this.path, b = a.indexOf("://");
0 <= b && (a = a.substring(b + 3), b = a.indexOf("/"), 0 <= b && (a = a.substring(b + 1)));
return a;
}, goog.Dependency.prototype.onLoad = function(a) {
this.loaded_ ? a() : this.loadCallbacks_.push(a);
}, goog.Dependency.prototype.loaded = function() {
this.loaded_ = !0;
var a = this.loadCallbacks_;
this.loadCallbacks_ = [];
for (var b = 0; b < a.length; b++) {
a[b]();
}
}, goog.Dependency.defer_ = !1, goog.Dependency.callbackMap_ = {}, goog.Dependency.registerCallback_ = function(a) {
var b = Math.random().toString(32);
goog.Dependency.callbackMap_[b] = a;
return b;
}, goog.Dependency.unregisterCallback_ = function(a) {
delete goog.Dependency.callbackMap_[a];
}, goog.Dependency.callback_ = function(a, b) {
if (a in goog.Dependency.callbackMap_) {
for (var c = goog.Dependency.callbackMap_[a], d = [], e = 1; e < arguments.length; e++) {
d.push(arguments[e]);
}
c.apply(void 0, d);
} else {
throw Error("Callback key " + a + " does not exist (was base.js loaded more than once?).");
}
}, goog.Dependency.prototype.load = function(a) {
if (goog.global.CLOSURE_IMPORT_SCRIPT) {
goog.global.CLOSURE_IMPORT_SCRIPT(this.path) ? a.loaded() : a.pause();
} else {
if (goog.inHtmlDocument_()) {
var b = goog.global.document;
if ("complete" == b.readyState && !goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING) {
if (/\bdeps.js$/.test(this.path)) {
a.loaded();
return;
}
throw Error('Cannot write "' + this.path + '" after document load');
}
if (!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING && goog.isDocumentLoading_()) {
var c = goog.Dependency.registerCallback_(function(b) {
goog.DebugLoader_.IS_OLD_IE_ && "complete" != b.readyState || (goog.Dependency.unregisterCallback_(c), a.loaded());
}), d = !goog.DebugLoader_.IS_OLD_IE_ && goog.getScriptNonce() ? ' nonce="' + goog.getScriptNonce() + '"' : "";
d = '<script src="' + this.path + '" ' + (goog.DebugLoader_.IS_OLD_IE_ ? "onreadystatechange" : "onload") + "=\"goog.Dependency.callback_('" + c + '\', this)" type="text/javascript" ' + (goog.Dependency.defer_ ? "defer" : "") + d + ">\x3c/script>";
b.write(goog.TRUSTED_TYPES_POLICY_ ? goog.TRUSTED_TYPES_POLICY_.createHTML(d) : d);
} else {
var e = b.createElement("script");
e.defer = goog.Dependency.defer_;
e.async = !1;
e.type = "text/javascript";
(d = goog.getScriptNonce()) && e.setAttribute("nonce", d);
goog.DebugLoader_.IS_OLD_IE_ ? (a.pause(), e.onreadystatechange = function() {
if ("loaded" == e.readyState || "complete" == e.readyState) {
a.loaded(), a.resume();
}
}) : e.onload = function() {
e.onload = null;
a.loaded();
};
e.src = goog.TRUSTED_TYPES_POLICY_ ? goog.TRUSTED_TYPES_POLICY_.createScriptURL(this.path) : this.path;
b.head.appendChild(e);
}
} else {
goog.logToConsole_("Cannot use default debug loader outside of HTML documents."), "deps.js" == this.relativePath ? (goog.logToConsole_("Consider setting CLOSURE_IMPORT_SCRIPT before loading base.js, or setting CLOSURE_NO_DEPS to true."), a.loaded()) : a.pause();
}
}
}, goog.Es6ModuleDependency = function(a, b, c, d, e) {
goog.Dependency.call(this, a, b, c, d, e);
}, goog.inherits(goog.Es6ModuleDependency, goog.Dependency), goog.Es6ModuleDependency.prototype.load = function(a) {
function b(a, b) {
var c = b ? '<script type="module" crossorigin>' + b + "\x3c/script>" : '<script type="module" crossorigin src="' + a + '">\x3c/script>';
d.write(goog.TRUSTED_TYPES_POLICY_ ? goog.TRUSTED_TYPES_POLICY_.createHTML(c) : c);
}
function c(a, b) {
var c = d.createElement("script");
c.defer = !0;
c.async = !1;
c.type = "module";
c.setAttribute("crossorigin", !0);
var e = goog.getScriptNonce();
e && c.setAttribute("nonce", e);
b ? c.textContent = goog.TRUSTED_TYPES_POLICY_ ? goog.TRUSTED_TYPES_POLICY_.createScript(b) : b : c.src = goog.TRUSTED_TYPES_POLICY_ ? goog.TRUSTED_TYPES_POLICY_.createScriptURL(a) : a;
d.head.appendChild(c);
}
if (goog.global.CLOSURE_IMPORT_SCRIPT) {
goog.global.CLOSURE_IMPORT_SCRIPT(this.path) ? a.loaded() : a.pause();
} else {
if (goog.inHtmlDocument_()) {
var d = goog.global.document, e = this;
if (goog.isDocumentLoading_()) {
var f = b;
goog.Dependency.defer_ = !0;
} else {
f = c;
}
var g = goog.Dependency.registerCallback_(function() {
goog.Dependency.unregisterCallback_(g);
a.setModuleState(goog.ModuleType.ES6);
});
f(void 0, 'goog.Dependency.callback_("' + g + '")');
f(this.path, void 0);
var h = goog.Dependency.registerCallback_(function(b) {
goog.Dependency.unregisterCallback_(h);
a.registerEs6ModuleExports(e.path, b, goog.moduleLoaderState_.moduleName);
});
f(void 0, 'import * as m from "' + this.path + '"; goog.Dependency.callback_("' + h + '", m)');
var k = goog.Dependency.registerCallback_(function() {
goog.Dependency.unregisterCallback_(k);
a.clearModuleState();
a.loaded();
});
f(void 0, 'goog.Dependency.callback_("' + k + '")');
} else {
goog.logToConsole_("Cannot use default debug loader outside of HTML documents."), a.pause();
}
}
}, goog.TransformedDependency = function(a, b, c, d, e) {
goog.Dependency.call(this, a, b, c, d, e);
this.contents_ = null;
this.lazyFetch_ = !goog.inHtmlDocument_() || !("noModule" in goog.global.document.createElement("script"));
}, goog.inherits(goog.TransformedDependency, goog.Dependency), goog.TransformedDependency.prototype.load = function(a) {
function b() {
e.contents_ = goog.loadFileSync_(e.path);
e.contents_ && (e.contents_ = e.transform(e.contents_), e.contents_ && (e.contents_ += "\n//# sourceURL=" + e.path));
}
function c() {
e.lazyFetch_ && b();
if (e.contents_) {
f && a.setModuleState(goog.ModuleType.ES6);
try {
var c = e.contents_;
e.contents_ = null;
goog.globalEval(c);
if (f) {
var d = goog.moduleLoaderState_.moduleName;
}
} finally {
f && a.clearModuleState();
}
f && goog.global.$jscomp.require.ensure([e.getPathName()], function() {
a.registerEs6ModuleExports(e.path, goog.global.$jscomp.require(e.getPathName()), d);
});
a.loaded();
}
}
function d() {
var a = goog.global.document, b = goog.Dependency.registerCallback_(function() {
goog.Dependency.unregisterCallback_(b);
c();
}), d = '<script type="text/javascript">' + goog.protectScriptTag_('goog.Dependency.callback_("' + b + '");') + "\x3c/script>";
a.write(goog.TRUSTED_TYPES_POLICY_ ? goog.TRUSTED_TYPES_POLICY_.createHTML(d) : d);
}
var e = this;
if (goog.global.CLOSURE_IMPORT_SCRIPT) {
b(), this.contents_ && goog.global.CLOSURE_IMPORT_SCRIPT("", this.contents_) ? (this.contents_ = null, a.loaded()) : a.pause();
} else {
var f = this.loadFlags.module == goog.ModuleType.ES6;
this.lazyFetch_ || b();
var g = 1 < a.pending().length, h = g && goog.DebugLoader_.IS_OLD_IE_;
g = goog.Dependency.defer_ && (g || goog.isDocumentLoading_());
if (h || g) {
a.defer(function() {
c();
});
} else {
var k = goog.global.document;
h = goog.inHtmlDocument_() && "ActiveXObject" in goog.global;
if (f && goog.inHtmlDocument_() && goog.isDocumentLoading_() && !h) {
goog.Dependency.defer_ = !0;
a.pause();
var l = k.onreadystatechange;
k.onreadystatechange = function() {
"interactive" == k.readyState && (k.onreadystatechange = l, c(), a.resume());
goog.isFunction(l) && l.apply(void 0, arguments);
};
} else {
!goog.DebugLoader_.IS_OLD_IE_ && goog.inHtmlDocument_() && goog.isDocumentLoading_() ? d() : c();
}
}
}
}, goog.TransformedDependency.prototype.transform = function(a) {
}, goog.TranspiledDependency = function(a, b, c, d, e, f) {
goog.TransformedDependency.call(this, a, b, c, d, e);
this.transpiler = f;
}, goog.inherits(goog.TranspiledDependency, goog.TransformedDependency), goog.TranspiledDependency.prototype.transform = function(a) {
return this.transpiler.transpile(a, this.getPathName());
}, goog.PreTranspiledEs6ModuleDependency = function(a, b, c, d, e) {
goog.TransformedDependency.call(this, a, b, c, d, e);
}, goog.inherits(goog.PreTranspiledEs6ModuleDependency, goog.TransformedDependency), goog.PreTranspiledEs6ModuleDependency.prototype.transform = function(a) {
return a;
}, goog.GoogModuleDependency = function(a, b, c, d, e, f, g) {
goog.TransformedDependency.call(this, a, b, c, d, e);
this.needsTranspile_ = f;
this.transpiler_ = g;
}, goog.inherits(goog.GoogModuleDependency, goog.TransformedDependency), goog.GoogModuleDependency.prototype.transform = function(a) {
this.needsTranspile_ && (a = this.transpiler_.transpile(a, this.getPathName()));
return goog.LOAD_MODULE_USING_EVAL && void 0 !== goog.global.JSON ? "goog.loadModule(" + goog.global.JSON.stringify(a + "\n//# sourceURL=" + this.path + "\n") + ");" : 'goog.loadModule(function(exports) {"use strict";' + a + "\n;return exports});\n//# sourceURL=" + this.path + "\n";
}, goog.DebugLoader_.IS_OLD_IE_ = !(goog.global.atob || !goog.global.document || !goog.global.document.all), goog.DebugLoader_.prototype.addDependency = function(a, b, c, d) {
b = b || [];
a = a.replace(/\\/g, "/");
var e = goog.normalizePath_(goog.basePath + a);
d && "boolean" !== typeof d || (d = d ? {module:goog.ModuleType.GOOG} : {});
c = this.factory_.createDependency(e, a, b, c, d, goog.transpiler_.needsTranspile(d.lang || "es3", d.module));
this.dependencies_[e] = c;
for (c = 0; c < b.length; c++) {
this.idToPath_[b[c]] = e;
}
this.idToPath_[a] = e;
}, goog.DependencyFactory = function(a) {
this.transpiler = a;
}, goog.DependencyFactory.prototype.createDependency = function(a, b, c, d, e, f) {
return e.module == goog.ModuleType.GOOG ? new goog.GoogModuleDependency(a, b, c, d, e, f, this.transpiler) : f ? new goog.TranspiledDependency(a, b, c, d, e, this.transpiler) : e.module == goog.ModuleType.ES6 ? "never" == goog.TRANSPILE && goog.ASSUME_ES_MODULES_TRANSPILED ? new goog.PreTranspiledEs6ModuleDependency(a, b, c, d, e) : new goog.Es6ModuleDependency(a, b, c, d, e) : new goog.Dependency(a, b, c, d, e);
}, goog.debugLoader_ = new goog.DebugLoader_, goog.loadClosureDeps = function() {
goog.debugLoader_.loadClosureDeps();
}, goog.setDependencyFactory = function(a) {
goog.debugLoader_.setDependencyFactory(a);
}, goog.global.CLOSURE_NO_DEPS || goog.debugLoader_.loadClosureDeps(), goog.bootstrap = function(a, b) {
goog.debugLoader_.bootstrap(a, b);
});
goog.TRUSTED_TYPES_POLICY_NAME = "";
goog.identity_ = function(a) {
return a;
};
goog.createTrustedTypesPolicy = function(a) {
var b = null, c = goog.global.trustedTypes || goog.global.TrustedTypes;
if (!c || !c.createPolicy) {
return b;
}
try {
b = c.createPolicy(a, {createHTML:goog.identity_, createScript:goog.identity_, createScriptURL:goog.identity_, createURL:goog.identity_});
} catch (d) {
goog.logToConsole_(d.message);
}
return b;
};
goog.TRUSTED_TYPES_POLICY_ = goog.TRUSTED_TYPES_POLICY_NAME ? goog.createTrustedTypesPolicy(goog.TRUSTED_TYPES_POLICY_NAME + "#base") : null;
goog.string = {};
goog.string.StringBuffer = function(a, b) {
null != a && this.append.apply(this, arguments);
};
goog.string.StringBuffer.prototype.buffer_ = "";
goog.string.StringBuffer.prototype.set = function(a) {
this.buffer_ = "" + a;
};
goog.string.StringBuffer.prototype.append = function(a, b, c) {
this.buffer_ += String(a);
if (null != b) {
for (var d = 1; d < arguments.length; d++) {
this.buffer_ += arguments[d];
}
}
return this;
};
goog.string.StringBuffer.prototype.clear = function() {
this.buffer_ = "";
};
goog.string.StringBuffer.prototype.getLength = function() {
return this.buffer_.length;
};
goog.string.StringBuffer.prototype.toString = function() {
return this.buffer_;
};
goog.debug = {};
goog.debug.Error = function(a) {
if (Error.captureStackTrace) {
Error.captureStackTrace(this, goog.debug.Error);
} else {
var b = Error().stack;
b && (this.stack = b);
}
a && (this.message = String(a));
this.reportErrorToServer = !0;
};
goog.inherits(goog.debug.Error, Error);
goog.debug.Error.prototype.name = "CustomError";
goog.dom = {};
goog.dom.NodeType = {ELEMENT:1, ATTRIBUTE:2, TEXT:3, CDATA_SECTION:4, ENTITY_REFERENCE:5, ENTITY:6, PROCESSING_INSTRUCTION:7, COMMENT:8, DOCUMENT:9, DOCUMENT_TYPE:10, DOCUMENT_FRAGMENT:11, NOTATION:12};
goog.asserts = {};
goog.asserts.ENABLE_ASSERTS = goog.DEBUG;
goog.asserts.AssertionError = function(a, b) {
goog.debug.Error.call(this, goog.asserts.subs_(a, b));
this.messagePattern = a;
};
goog.inherits(goog.asserts.AssertionError, goog.debug.Error);
goog.asserts.AssertionError.prototype.name = "AssertionError";
goog.asserts.DEFAULT_ERROR_HANDLER = function(a) {
throw a;
};
goog.asserts.errorHandler_ = goog.asserts.DEFAULT_ERROR_HANDLER;
goog.asserts.subs_ = function(a, b) {
for (var c = a.split("%s"), d = "", e = c.length - 1, f = 0; f < e; f++) {
d += c[f] + (f < b.length ? b[f] : "%s");
}
return d + c[e];
};
goog.asserts.doAssertFailure_ = function(a, b, c, d) {
var e = "Assertion failed";
if (c) {
e += ": " + c;
var f = d;
} else {
a && (e += ": " + a, f = b);
}
a = new goog.asserts.AssertionError("" + e, f || []);
goog.asserts.errorHandler_(a);
};
goog.asserts.setErrorHandler = function(a) {
goog.asserts.ENABLE_ASSERTS && (goog.asserts.errorHandler_ = a);
};
goog.asserts.assert = function(a, b, c) {
goog.asserts.ENABLE_ASSERTS && !a && goog.asserts.doAssertFailure_("", null, b, Array.prototype.slice.call(arguments, 2));
return a;
};
goog.asserts.assertExists = function(a, b, c) {
goog.asserts.ENABLE_ASSERTS && null == a && goog.asserts.doAssertFailure_("Expected to exist: %s.", [a], b, Array.prototype.slice.call(arguments, 2));
return a;
};
goog.asserts.fail = function(a, b) {
goog.asserts.ENABLE_ASSERTS && goog.asserts.errorHandler_(new goog.asserts.AssertionError("Failure" + (a ? ": " + a : ""), Array.prototype.slice.call(arguments, 1)));
};
goog.asserts.assertNumber = function(a, b, c) {
goog.asserts.ENABLE_ASSERTS && "number" !== typeof a && goog.asserts.doAssertFailure_("Expected number but got %s: %s.", [goog.typeOf(a), a], b, Array.prototype.slice.call(arguments, 2));
return a;
};
goog.asserts.assertString = function(a, b, c) {
goog.asserts.ENABLE_ASSERTS && "string" !== typeof a && goog.asserts.doAssertFailure_("Expected string but got %s: %s.", [goog.typeOf(a), a], b, Array.prototype.slice.call(arguments, 2));
return a;
};
goog.asserts.assertFunction = function(a, b, c) {
goog.asserts.ENABLE_ASSERTS && !goog.isFunction(a) && goog.asserts.doAssertFailure_("Expected function but got %s: %s.", [goog.typeOf(a), a], b, Array.prototype.slice.call(arguments, 2));
return a;
};
goog.asserts.assertObject = function(a, b, c) {
goog.asserts.ENABLE_ASSERTS && !goog.isObject(a) && goog.asserts.doAssertFailure_("Expected object but got %s: %s.", [goog.typeOf(a), a], b, Array.prototype.slice.call(arguments, 2));
return a;
};
goog.asserts.assertArray = function(a, b, c) {
goog.asserts.ENABLE_ASSERTS && !goog.isArray(a) && goog.asserts.doAssertFailure_("Expected array but got %s: %s.", [goog.typeOf(a), a], b, Array.prototype.slice.call(arguments, 2));
return a;
};
goog.asserts.assertBoolean = function(a, b, c) {
goog.asserts.ENABLE_ASSERTS && "boolean" !== typeof a && goog.asserts.doAssertFailure_("Expected boolean but got %s: %s.", [goog.typeOf(a), a], b, Array.prototype.slice.call(arguments, 2));
return a;
};
goog.asserts.assertElement = function(a, b, c) {
!goog.asserts.ENABLE_ASSERTS || goog.isObject(a) && a.nodeType == goog.dom.NodeType.ELEMENT || goog.asserts.doAssertFailure_("Expected Element but got %s: %s.", [goog.typeOf(a), a], b, Array.prototype.slice.call(arguments, 2));
return a;
};
goog.asserts.assertInstanceof = function(a, b, c, d) {
!goog.asserts.ENABLE_ASSERTS || a instanceof b || goog.asserts.doAssertFailure_("Expected instanceof %s but got %s.", [goog.asserts.getType_(b), goog.asserts.getType_(a)], c, Array.prototype.slice.call(arguments, 3));
return a;
};
goog.asserts.assertFinite = function(a, b, c) {
!goog.asserts.ENABLE_ASSERTS || "number" == typeof a && isFinite(a) || goog.asserts.doAssertFailure_("Expected %s to be a finite number but it is not.", [a], b, Array.prototype.slice.call(arguments, 2));
return a;
};
goog.asserts.assertObjectPrototypeIsIntact = function() {
for (var a in Object.prototype) {
goog.asserts.fail(a + " should not be enumerable in Object.prototype.");
}
};
goog.asserts.getType_ = function(a) {
return a instanceof Function ? a.displayName || a.name || "unknown type name" : a instanceof Object ? a.constructor.displayName || a.constructor.name || Object.prototype.toString.call(a) : null === a ? "null" : typeof a;
};
goog.array = {};
goog.NATIVE_ARRAY_PROTOTYPES = goog.TRUSTED_SITE;
goog.array.ASSUME_NATIVE_FUNCTIONS = 2012 < goog.FEATURESET_YEAR;
goog.array.peek = function(a) {
return a[a.length - 1];
};
goog.array.last = goog.array.peek;
goog.array.indexOf = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.indexOf) ? function(a, b, c) {
goog.asserts.assert(null != a.length);
return Array.prototype.indexOf.call(a, b, c);
} : function(a, b, c) {
c = null == c ? 0 : 0 > c ? Math.max(0, a.length + c) : c;
if ("string" === typeof a) {
return "string" !== typeof b || 1 != b.length ? -1 : a.indexOf(b, c);
}
for (; c < a.length; c++) {
if (c in a && a[c] === b) {
return c;
}
}
return -1;
};
goog.array.lastIndexOf = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.lastIndexOf) ? function(a, b, c) {
goog.asserts.assert(null != a.length);
return Array.prototype.lastIndexOf.call(a, b, null == c ? a.length - 1 : c);
} : function(a, b, c) {
c = null == c ? a.length - 1 : c;
0 > c && (c = Math.max(0, a.length + c));
if ("string" === typeof a) {
return "string" !== typeof b || 1 != b.length ? -1 : a.lastIndexOf(b, c);
}
for (; 0 <= c; c--) {
if (c in a && a[c] === b) {
return c;
}
}
return -1;
};
goog.array.forEach = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.forEach) ? function(a, b, c) {
goog.asserts.assert(null != a.length);
Array.prototype.forEach.call(a, b, c);
} : function(a, b, c) {
for (var d = a.length, e = "string" === typeof a ? a.split("") : a, f = 0; f < d; f++) {
f in e && b.call(c, e[f], f, a);
}
};
goog.array.forEachRight = function(a, b, c) {
var d = a.length, e = "string" === typeof a ? a.split("") : a;
for (--d; 0 <= d; --d) {
d in e && b.call(c, e[d], d, a);
}
};
goog.array.filter = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.filter) ? function(a, b, c) {
goog.asserts.assert(null != a.length);
return Array.prototype.filter.call(a, b, c);
} : function(a, b, c) {
for (var d = a.length, e = [], f = 0, g = "string" === typeof a ? a.split("") : a, h = 0; h < d; h++) {
if (h in g) {
var k = g[h];
b.call(c, k, h, a) && (e[f++] = k);
}
}
return e;
};
goog.array.map = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.map) ? function(a, b, c) {
goog.asserts.assert(null != a.length);
return Array.prototype.map.call(a, b, c);
} : function(a, b, c) {
for (var d = a.length, e = Array(d), f = "string" === typeof a ? a.split("") : a, g = 0; g < d; g++) {
g in f && (e[g] = b.call(c, f[g], g, a));
}
return e;
};
goog.array.reduce = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.reduce) ? function(a, b, c, d) {
goog.asserts.assert(null != a.length);
d && (b = goog.bind(b, d));
return Array.prototype.reduce.call(a, b, c);
} : function(a, b, c, d) {
var e = c;
goog.array.forEach(a, function(c, g) {
e = b.call(d, e, c, g, a);
});
return e;
};
goog.array.reduceRight = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.reduceRight) ? function(a, b, c, d) {
goog.asserts.assert(null != a.length);
goog.asserts.assert(null != b);
d && (b = goog.bind(b, d));
return Array.prototype.reduceRight.call(a, b, c);
} : function(a, b, c, d) {
var e = c;
goog.array.forEachRight(a, function(c, g) {
e = b.call(d, e, c, g, a);
});
return e;
};
goog.array.some = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.some) ? function(a, b, c) {
goog.asserts.assert(null != a.length);
return Array.prototype.some.call(a, b, c);
} : function(a, b, c) {
for (var d = a.length, e = "string" === typeof a ? a.split("") : a, f = 0; f < d; f++) {
if (f in e && b.call(c, e[f], f, a)) {
return !0;
}
}
return !1;
};
goog.array.every = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.every) ? function(a, b, c) {
goog.asserts.assert(null != a.length);
return Array.prototype.every.call(a, b, c);
} : function(a, b, c) {
for (var d = a.length, e = "string" === typeof a ? a.split("") : a, f = 0; f < d; f++) {
if (f in e && !b.call(c, e[f], f, a)) {
return !1;
}
}
return !0;
};
goog.array.count = function(a, b, c) {
var d = 0;
goog.array.forEach(a, function(a, f, g) {
b.call(c, a, f, g) && ++d;
}, c);
return d;
};
goog.array.find = function(a, b, c) {
b = goog.array.findIndex(a, b, c);
return 0 > b ? null : "string" === typeof a ? a.charAt(b) : a[b];
};
goog.array.findIndex = function(a, b, c) {
for (var d = a.length, e = "string" === typeof a ? a.split("") : a, f = 0; f < d; f++) {
if (f in e && b.call(c, e[f], f, a)) {
return f;
}
}
return -1;
};
goog.array.findRight = function(a, b, c) {
b = goog.array.findIndexRight(a, b, c);
return 0 > b ? null : "string" === typeof a ? a.charAt(b) : a[b];
};
goog.array.findIndexRight = function(a, b, c) {
var d = a.length, e = "string" === typeof a ? a.split("") : a;
for (--d; 0 <= d; d--) {
if (d in e && b.call(c, e[d], d, a)) {
return d;
}
}
return -1;
};
goog.array.contains = function(a, b) {
return 0 <= goog.array.indexOf(a, b);
};
goog.array.isEmpty = function(a) {
return 0 == a.length;
};
goog.array.clear = function(a) {
if (!goog.isArray(a)) {
for (var b = a.length - 1; 0 <= b; b--) {
delete a[b];
}
}
a.length = 0;
};
goog.array.insert = function(a, b) {
goog.array.contains(a, b) || a.push(b);
};
goog.array.insertAt = function(a, b, c) {
goog.array.splice(a, c, 0, b);
};
goog.array.insertArrayAt = function(a, b, c) {
goog.partial(goog.array.splice, a, c, 0).apply(null, b);
};
goog.array.insertBefore = function(a, b, c) {
var d;
2 == arguments.length || 0 > (d = goog.array.indexOf(a, c)) ? a.push(b) : goog.array.insertAt(a, b, d);
};
goog.array.remove = function(a, b) {
var c = goog.array.indexOf(a, b), d;
(d = 0 <= c) && goog.array.removeAt(a, c);
return d;
};
goog.array.removeLast = function(a, b) {
var c = goog.array.lastIndexOf(a, b);
return 0 <= c ? (goog.array.removeAt(a, c), !0) : !1;
};
goog.array.removeAt = function(a, b) {
goog.asserts.assert(null != a.length);
return 1 == Array.prototype.splice.call(a, b, 1).length;
};
goog.array.removeIf = function(a, b, c) {
b = goog.array.findIndex(a, b, c);
return 0 <= b ? (goog.array.removeAt(a, b), !0) : !1;
};
goog.array.removeAllIf = function(a, b, c) {
var d = 0;
goog.array.forEachRight(a, function(e, f) {
b.call(c, e, f, a) && goog.array.removeAt(a, f) && d++;
});
return d;
};
goog.array.concat = function(a) {
return Array.prototype.concat.apply([], arguments);
};
goog.array.join = function(a) {
return Array.prototype.concat.apply([], arguments);
};
goog.array.toArray = function(a) {
var b = a.length;
if (0 < b) {
for (var c = Array(b), d = 0; d < b; d++) {
c[d] = a[d];
}
return c;
}
return [];
};
goog.array.clone = goog.array.toArray;
goog.array.extend = function(a, b) {
for (var c = 1; c < arguments.length; c++) {
var d = arguments[c];
if (goog.isArrayLike(d)) {
var e = a.length || 0, f = d.length || 0;
a.length = e + f;
for (var g = 0; g < f; g++) {
a[e + g] = d[g];
}
} else {
a.push(d);
}
}
};
goog.array.splice = function(a, b, c, d) {
goog.asserts.assert(null != a.length);
return Array.prototype.splice.apply(a, goog.array.slice(arguments, 1));
};
goog.array.slice = function(a, b, c) {
goog.asserts.assert(null != a.length);
return 2 >= arguments.length ? Array.prototype.slice.call(a, b) : Array.prototype.slice.call(a, b, c);
};
goog.array.removeDuplicates = function(a, b, c) {
b = b || a;
var d = function(a) {
return goog.isObject(a) ? "o" + goog.getUid(a) : (typeof a).charAt(0) + a;
};
c = c || d;
d = {};
for (var e = 0, f = 0; f < a.length;) {
var g = a[f++], h = c(g);
Object.prototype.hasOwnProperty.call(d, h) || (d[h] = !0, b[e++] = g);
}
b.length = e;
};
goog.array.binarySearch = function(a, b, c) {
return goog.array.binarySearch_(a, c || goog.array.defaultCompare, !1, b);
};
goog.array.binarySelect = function(a, b, c) {
return goog.array.binarySearch_(a, b, !0, void 0, c);
};
goog.array.binarySearch_ = function(a, b, c, d, e) {
for (var f = 0, g = a.length, h; f < g;) {
var k = f + (g - f >>> 1);
var l = c ? b.call(e, a[k], k, a) : b(d, a[k]);
0 < l ? f = k + 1 : (g = k, h = !l);
}
return h ? f : -f - 1;
};
goog.array.sort = function(a, b) {
a.sort(b || goog.array.defaultCompare);
};
goog.array.stableSort = function(a, b) {
for (var c = Array(a.length), d = 0; d < a.length; d++) {
c[d] = {index:d, value:a[d]};
}
var e = b || goog.array.defaultCompare;
goog.array.sort(c, function(a, b) {
return e(a.value, b.value) || a.index - b.index;
});
for (d = 0; d < a.length; d++) {
a[d] = c[d].value;
}
};
goog.array.sortByKey = function(a, b, c) {
var d = c || goog.array.defaultCompare;
goog.array.sort(a, function(a, c) {
return d(b(a), b(c));
});
};
goog.array.sortObjectsByKey = function(a, b, c) {
goog.array.sortByKey(a, function(a) {
return a[b];
}, c);
};
goog.array.isSorted = function(a, b, c) {
b = b || goog.array.defaultCompare;
for (var d = 1; d < a.length; d++) {
var e = b(a[d - 1], a[d]);
if (0 < e || 0 == e && c) {
return !1;
}
}
return !0;
};
goog.array.equals = function(a, b, c) {
if (!goog.isArrayLike(a) || !goog.isArrayLike(b) || a.length != b.length) {
return !1;
}
var d = a.length;
c = c || goog.array.defaultCompareEquality;
for (var e = 0; e < d; e++) {
if (!c(a[e], b[e])) {
return !1;
}
}
return !0;
};
goog.array.compare3 = function(a, b, c) {
c = c || goog.array.defaultCompare;
for (var d = Math.min(a.length, b.length), e = 0; e < d; e++) {
var f = c(a[e], b[e]);
if (0 != f) {
return f;
}
}
return goog.array.defaultCompare(a.length, b.length);
};
goog.array.defaultCompare = function(a, b) {
return a > b ? 1 : a < b ? -1 : 0;
};
goog.array.inverseDefaultCompare = function(a, b) {
return -goog.array.defaultCompare(a, b);
};
goog.array.defaultCompareEquality = function(a, b) {
return a === b;
};
goog.array.binaryInsert = function(a, b, c) {
c = goog.array.binarySearch(a, b, c);
return 0 > c ? (goog.array.insertAt(a, b, -(c + 1)), !0) : !1;
};
goog.array.binaryRemove = function(a, b, c) {
b = goog.array.binarySearch(a, b, c);
return 0 <= b ? goog.array.removeAt(a, b) : !1;
};
goog.array.bucket = function(a, b, c) {
for (var d = {}, e = 0; e < a.length; e++) {
var f = a[e], g = b.call(c, f, e, a);
void 0 !== g && (d[g] || (d[g] = [])).push(f);
}
return d;
};
goog.array.toObject = function(a, b, c) {
var d = {};
goog.array.forEach(a, function(e, f) {
d[b.call(c, e, f, a)] = e;
});
return d;
};
goog.array.range = function(a, b, c) {
var d = [], e = 0, f = a;
c = c || 1;
void 0 !== b && (e = a, f = b);
if (0 > c * (f - e)) {
return [];
}
if (0 < c) {
for (a = e; a < f; a += c) {
d.push(a);
}
} else {
for (a = e; a > f; a += c) {
d.push(a);
}
}
return d;
};
goog.array.repeat = function(a, b) {
for (var c = [], d = 0; d < b; d++) {
c[d] = a;
}
return c;
};
goog.array.flatten = function(a) {
for (var b = [], c = 0; c < arguments.length; c++) {
var d = arguments[c];
if (goog.isArray(d)) {
for (var e = 0; e < d.length; e += 8192) {
var f = goog.array.slice(d, e, e + 8192);
f = goog.array.flatten.apply(null, f);
for (var g = 0; g < f.length; g++) {
b.push(f[g]);
}
}
} else {
b.push(d);
}
}
return b;
};
goog.array.rotate = function(a, b) {
goog.asserts.assert(null != a.length);
a.length && (b %= a.length, 0 < b ? Array.prototype.unshift.apply(a, a.splice(-b, b)) : 0 > b && Array.prototype.push.apply(a, a.splice(0, -b)));
return a;
};
goog.array.moveItem = function(a, b, c) {
goog.asserts.assert(0 <= b && b < a.length);
goog.asserts.assert(0 <= c && c < a.length);
b = Array.prototype.splice.call(a, b, 1);
Array.prototype.splice.call(a, c, 0, b[0]);
};
goog.array.zip = function(a) {
if (!arguments.length) {
return [];
}
for (var b = [], c = arguments[0].length, d = 1; d < arguments.length; d++) {
arguments[d].length < c && (c = arguments[d].length);
}
for (d = 0; d < c; d++) {
for (var e = [], f = 0; f < arguments.length; f++) {
e.push(arguments[f][d]);
}
b.push(e);
}
return b;
};
goog.array.shuffle = function(a, b) {
for (var c = b || Math.random, d = a.length - 1; 0 < d; d--) {
var e = Math.floor(c() * (d + 1)), f = a[d];
a[d] = a[e];
a[e] = f;
}
};
goog.array.copyByIndex = function(a, b) {
var c = [];
goog.array.forEach(b, function(b) {
c.push(a[b]);
});
return c;
};
goog.array.concatMap = function(a, b, c) {
return goog.array.concat.apply([], goog.array.map(a, b, c));
};
goog.object = {};
goog.object.is = function(a, b) {
return a === b ? 0 !== a || 1 / a === 1 / b : a !== a && b !== b;
};
goog.object.forEach = function(a, b, c) {
for (var d in a) {
b.call(c, a[d], d, a);
}
};
goog.object.filter = function(a, b, c) {
var d = {}, e;
for (e in a) {
b.call(c, a[e], e, a) && (d[e] = a[e]);
}
return d;
};
goog.object.map = function(a, b, c) {
var d = {}, e;
for (e in a) {
d[e] = b.call(c, a[e], e, a);
}
return d;
};
goog.object.some = function(a, b, c) {
for (var d in a) {
if (b.call(c, a[d], d, a)) {
return !0;
}
}
return !1;
};
goog.object.every = function(a, b, c) {
for (var d in a) {
if (!b.call(c, a[d], d, a)) {
return !1;
}
}
return !0;
};
goog.object.getCount = function(a) {
var b = 0, c;
for (c in a) {
b++;
}
return b;
};
goog.object.getAnyKey = function(a) {
for (var b in a) {
return b;
}
};
goog.object.getAnyValue = function(a) {
for (var b in a) {
return a[b];
}
};
goog.object.contains = function(a, b) {
return goog.object.containsValue(a, b);
};
goog.object.getValues = function(a) {
var b = [], c = 0, d;
for (d in a) {
b[c++] = a[d];
}
return b;
};
goog.object.getKeys = function(a) {
var b = [], c = 0, d;
for (d in a) {
b[c++] = d;
}
return b;
};
goog.object.getValueByKeys = function(a, b) {
var c = goog.isArrayLike(b), d = c ? b : arguments;
for (c = c ? 0 : 1; c < d.length; c++) {
if (null == a) {
return;
}
a = a[d[c]];
}
return a;
};
goog.object.containsKey = function(a, b) {
return null !== a && b in a;
};
goog.object.containsValue = function(a, b) {
for (var c in a) {
if (a[c] == b) {
return !0;
}
}
return !1;
};
goog.object.findKey = function(a, b, c) {
for (var d in a) {
if (b.call(c, a[d], d, a)) {
return d;
}
}
};
goog.object.findValue = function(a, b, c) {
return (b = goog.object.findKey(a, b, c)) && a[b];
};
goog.object.isEmpty = function(a) {
for (var b in a) {
return !1;
}
return !0;
};
goog.object.clear = function(a) {
for (var b in a) {
delete a[b];
}
};
goog.object.remove = function(a, b) {
var c;
(c = b in a) && delete a[b];
return c;
};
goog.object.add = function(a, b, c) {
if (null !== a && b in a) {
throw Error('The object already contains the key "' + b + '"');
}
goog.object.set(a, b, c);
};
goog.object.get = function(a, b, c) {
return null !== a && b in a ? a[b] : c;
};
goog.object.set = function(a, b, c) {
a[b] = c;
};
goog.object.setIfUndefined = function(a, b, c) {
return b in a ? a[b] : a[b] = c;
};
goog.object.setWithReturnValueIfNotSet = function(a, b, c) {
if (b in a) {
return a[b];
}
c = c();
return a[b] = c;
};
goog.object.equals = function(a, b) {
for (var c in a) {
if (!(c in b) || a[c] !== b[c]) {
return !1;
}
}
for (var d in b) {
if (!(d in a)) {
return !1;
}
}
return !0;
};
goog.object.clone = function(a) {
var b = {}, c;
for (c in a) {
b[c] = a[c];
}
return b;
};
goog.object.unsafeClone = function(a) {
var b = goog.typeOf(a);
if ("object" == b || "array" == b) {
if (goog.isFunction(a.clone)) {
return a.clone();
}
b = "array" == b ? [] : {};
for (var c in a) {
b[c] = goog.object.unsafeClone(a[c]);
}
return b;
}
return a;
};
goog.object.transpose = function(a) {
var b = {}, c;
for (c in a) {
b[a[c]] = c;
}
return b;
};
goog.object.PROTOTYPE_FIELDS_ = "constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");
goog.object.extend = function(a, b) {
for (var c, d, e = 1; e < arguments.length; e++) {
d = arguments[e];
for (c in d) {
a[c] = d[c];
}
for (var f = 0; f < goog.object.PROTOTYPE_FIELDS_.length; f++) {
c = goog.object.PROTOTYPE_FIELDS_[f], Object.prototype.hasOwnProperty.call(d, c) && (a[c] = d[c]);
}
}
};
goog.object.create = function(a) {
var b = arguments.length;
if (1 == b && goog.isArray(arguments[0])) {
return goog.object.create.apply(null, arguments[0]);
}
if (b % 2) {
throw Error("Uneven number of arguments");
}
for (var c = {}, d = 0; d < b; d += 2) {
c[arguments[d]] = arguments[d + 1];
}
return c;
};
goog.object.createSet = function(a) {
var b = arguments.length;
if (1 == b && goog.isArray(arguments[0])) {
return goog.object.createSet.apply(null, arguments[0]);
}
for (var c = {}, d = 0; d < b; d++) {
c[arguments[d]] = !0;
}
return c;
};
goog.object.createImmutableView = function(a) {
var b = a;
Object.isFrozen && !Object.isFrozen(a) && (b = Object.create(a), Object.freeze(b));
return b;
};
goog.object.isImmutableView = function(a) {
return !!Object.isFrozen && Object.isFrozen(a);
};
goog.object.getAllPropertyNames = function(a, b, c) {
if (!a) {
return [];
}
if (!Object.getOwnPropertyNames || !Object.getPrototypeOf) {
return goog.object.getKeys(a);
}
for (var d = {}; a && (a !== Object.prototype || b) && (a !== Function.prototype || c);) {
for (var e = Object.getOwnPropertyNames(a), f = 0; f < e.length; f++) {
d[e[f]] = !0;
}
a = Object.getPrototypeOf(a);
}
return goog.object.getKeys(d);
};
goog.object.getSuperClass = function(a) {
return (a = Object.getPrototypeOf(a.prototype)) && a.constructor;
};
goog.dom.asserts = {};
goog.dom.asserts.assertIsLocation = function(a) {
if (goog.asserts.ENABLE_ASSERTS) {
var b = goog.dom.asserts.getWindow_(a);
b && (!a || !(a instanceof b.Location) && a instanceof b.Element) && goog.asserts.fail("Argument is not a Location (or a non-Element mock); got: %s", goog.dom.asserts.debugStringForType_(a));
}
return a;
};
goog.dom.asserts.assertIsElementType_ = function(a, b) {
if (goog.asserts.ENABLE_ASSERTS) {
var c = goog.dom.asserts.getWindow_(a);
c && "undefined" != typeof c[b] && (a && (a instanceof c[b] || !(a instanceof c.Location || a instanceof c.Element)) || goog.asserts.fail("Argument is not a %s (or a non-Element, non-Location mock); got: %s", b, goog.dom.asserts.debugStringForType_(a)));
}
return a;
};
goog.dom.asserts.assertIsHTMLAnchorElement = function(a) {
return goog.dom.asserts.assertIsElementType_(a, "HTMLAnchorElement");
};
goog.dom.asserts.assertIsHTMLButtonElement = function(a) {
return goog.dom.asserts.assertIsElementType_(a, "HTMLButtonElement");
};
goog.dom.asserts.assertIsHTMLLinkElement = function(a) {
return goog.dom.asserts.assertIsElementType_(a, "HTMLLinkElement");
};
goog.dom.asserts.assertIsHTMLImageElement = function(a) {
return goog.dom.asserts.assertIsElementType_(a, "HTMLImageElement");
};
goog.dom.asserts.assertIsHTMLAudioElement = function(a) {
return goog.dom.asserts.assertIsElementType_(a, "HTMLAudioElement");
};
goog.dom.asserts.assertIsHTMLVideoElement = function(a) {
return goog.dom.asserts.assertIsElementType_(a, "HTMLVideoElement");
};
goog.dom.asserts.assertIsHTMLInputElement = function(a) {
return goog.dom.asserts.assertIsElementType_(a, "HTMLInputElement");
};
goog.dom.asserts.assertIsHTMLTextAreaElement = function(a) {
return goog.dom.asserts.assertIsElementType_(a, "HTMLTextAreaElement");
};
goog.dom.asserts.assertIsHTMLCanvasElement = function(a) {
return goog.dom.asserts.assertIsElementType_(a, "HTMLCanvasElement");
};
goog.dom.asserts.assertIsHTMLEmbedElement = function(a) {
return goog.dom.asserts.assertIsElementType_(a, "HTMLEmbedElement");
};
goog.dom.asserts.assertIsHTMLFormElement = function(a) {
return goog.dom.asserts.assertIsElementType_(a, "HTMLFormElement");
};
goog.dom.asserts.assertIsHTMLFrameElement = function(a) {
return goog.dom.asserts.assertIsElementType_(a, "HTMLFrameElement");
};
goog.dom.asserts.assertIsHTMLIFrameElement = function(a) {
return goog.dom.asserts.assertIsElementType_(a, "HTMLIFrameElement");
};
goog.dom.asserts.assertIsHTMLObjectElement = function(a) {
return goog.dom.asserts.assertIsElementType_(a, "HTMLObjectElement");
};
goog.dom.asserts.assertIsHTMLScriptElement = function(a) {
return goog.dom.asserts.assertIsElementType_(a, "HTMLScriptElement");
};
goog.dom.asserts.debugStringForType_ = function(a) {
if (goog.isObject(a)) {
try {
return a.constructor.displayName || a.constructor.name || Object.prototype.toString.call(a);
} catch (b) {
return "<object could not be stringified>";
}
} else {
return void 0 === a ? "undefined" : null === a ? "null" : typeof a;
}
};
goog.dom.asserts.getWindow_ = function(a) {
try {
var b = a && a.ownerDocument, c = b && (b.defaultView || b.parentWindow);
c = c || goog.global;
if (c.Element && c.Location) {
return c;
}
} catch (d) {
}
return null;
};
goog.functions = {};
goog.functions.constant = function(a) {
return function() {
return a;
};
};
goog.functions.FALSE = function() {
return !1;
};
goog.functions.TRUE = function() {
return !0;
};
goog.functions.NULL = function() {
return null;
};
goog.functions.identity = function(a, b) {
return a;
};
goog.functions.error = function(a) {
return function() {
throw Error(a);
};
};
goog.functions.fail = function(a) {
return function() {
throw a;
};
};
goog.functions.lock = function(a, b) {
b = b || 0;
return function() {
return a.apply(this, Array.prototype.slice.call(arguments, 0, b));
};
};
goog.functions.nth = function(a) {
return function() {
return arguments[a];
};
};
goog.functions.partialRight = function(a, b) {
var c = Array.prototype.slice.call(arguments, 1);
return function() {
var b = Array.prototype.slice.call(arguments);
b.push.apply(b, c);
return a.apply(this, b);
};
};
goog.functions.withReturnValue = function(a, b) {
return goog.functions.sequence(a, goog.functions.constant(b));
};
goog.functions.equalTo = function(a, b) {
return function(c) {
return b ? a == c : a === c;
};
};
goog.functions.compose = function(a, b) {
var c = arguments, d = c.length;
return function() {
var a;
d && (a = c[d - 1].apply(this, arguments));
for (var b = d - 2; 0 <= b; b--) {
a = c[b].call(this, a);
}
return a;
};
};
goog.functions.sequence = function(a) {
var b = arguments, c = b.length;
return function() {
for (var a, e = 0; e < c; e++) {
a = b[e].apply(this, arguments);
}
return a;
};
};
goog.functions.and = function(a) {
var b = arguments, c = b.length;
return function() {
for (var a = 0; a < c; a++) {
if (!b[a].apply(this, arguments)) {
return !1;
}
}
return !0;
};
};
goog.functions.or = function(a) {
var b = arguments, c = b.length;
return function() {
for (var a = 0; a < c; a++) {
if (b[a].apply(this, arguments)) {
return !0;
}
}
return !1;
};
};
goog.functions.not = function(a) {
return function() {
return !a.apply(this, arguments);
};
};
goog.functions.create = function(a, b) {
var c = function() {
};
c.prototype = a.prototype;
c = new c;
a.apply(c, Array.prototype.slice.call(arguments, 1));
return c;
};
goog.functions.CACHE_RETURN_VALUE = !0;
goog.functions.cacheReturnValue = function(a) {
var b = !1, c;
return function() {
if (!goog.functions.CACHE_RETURN_VALUE) {
return a();
}
b || (c = a(), b = !0);
return c;
};
};
goog.functions.once = function(a) {
var b = a;
return function() {
if (b) {
var a = b;
b = null;
a();
}
};
};
goog.functions.debounce = function(a, b, c) {
var d = 0;
return function(e) {
goog.global.clearTimeout(d);
var f = arguments;
d = goog.global.setTimeout(function() {
a.apply(c, f);
}, b);
};
};
goog.functions.throttle = function(a, b, c) {
var d = 0, e = !1, f = [], g = function() {
d = 0;
e && (e = !1, h());
}, h = function() {
d = goog.global.setTimeout(g, b);
a.apply(c, f);
};
return function(a) {
f = arguments;
d ? e = !0 : h();
};
};
goog.functions.rateLimit = function(a, b, c) {
var d = 0, e = function() {
d = 0;
};
return function(f) {
d || (d = goog.global.setTimeout(e, b), a.apply(c, arguments));
};
};
goog.dom.HtmlElement = function() {
};
goog.dom.TagName = function(a) {
this.tagName_ = a;
};
goog.dom.TagName.prototype.toString = function() {
return this.tagName_;
};
goog.dom.TagName.A = new goog.dom.TagName("A");
goog.dom.TagName.ABBR = new goog.dom.TagName("ABBR");
goog.dom.TagName.ACRONYM = new goog.dom.TagName("ACRONYM");
goog.dom.TagName.ADDRESS = new goog.dom.TagName("ADDRESS");
goog.dom.TagName.APPLET = new goog.dom.TagName("APPLET");
goog.dom.TagName.AREA = new goog.dom.TagName("AREA");
goog.dom.TagName.ARTICLE = new goog.dom.TagName("ARTICLE");
goog.dom.TagName.ASIDE = new goog.dom.TagName("ASIDE");
goog.dom.TagName.AUDIO = new goog.dom.TagName("AUDIO");
goog.dom.TagName.B = new goog.dom.TagName("B");
goog.dom.TagName.BASE = new goog.dom.TagName("BASE");
goog.dom.TagName.BASEFONT = new goog.dom.TagName("BASEFONT");
goog.dom.TagName.BDI = new goog.dom.TagName("BDI");
goog.dom.TagName.BDO = new goog.dom.TagName("BDO");
goog.dom.TagName.BIG = new goog.dom.TagName("BIG");
goog.dom.TagName.BLOCKQUOTE = new goog.dom.TagName("BLOCKQUOTE");
goog.dom.TagName.BODY = new goog.dom.TagName("BODY");
goog.dom.TagName.BR = new goog.dom.TagName("BR");
goog.dom.TagName.BUTTON = new goog.dom.TagName("BUTTON");
goog.dom.TagName.CANVAS = new goog.dom.TagName("CANVAS");
goog.dom.TagName.CAPTION = new goog.dom.TagName("CAPTION");
goog.dom.TagName.CENTER = new goog.dom.TagName("CENTER");
goog.dom.TagName.CITE = new goog.dom.TagName("CITE");
goog.dom.TagName.CODE = new goog.dom.TagName("CODE");
goog.dom.TagName.COL = new goog.dom.TagName("COL");
goog.dom.TagName.COLGROUP = new goog.dom.TagName("COLGROUP");
goog.dom.TagName.COMMAND = new goog.dom.TagName("COMMAND");
goog.dom.TagName.DATA = new goog.dom.TagName("DATA");
goog.dom.TagName.DATALIST = new goog.dom.TagName("DATALIST");
goog.dom.TagName.DD = new goog.dom.TagName("DD");
goog.dom.TagName.DEL = new goog.dom.TagName("DEL");
goog.dom.TagName.DETAILS = new goog.dom.TagName("DETAILS");
goog.dom.TagName.DFN = new goog.dom.TagName("DFN");
goog.dom.TagName.DIALOG = new goog.dom.TagName("DIALOG");
goog.dom.TagName.DIR = new goog.dom.TagName("DIR");
goog.dom.TagName.DIV = new goog.dom.TagName("DIV");
goog.dom.TagName.DL = new goog.dom.TagName("DL");
goog.dom.TagName.DT = new goog.dom.TagName("DT");
goog.dom.TagName.EM = new goog.dom.TagName("EM");
goog.dom.TagName.EMBED = new goog.dom.TagName("EMBED");
goog.dom.TagName.FIELDSET = new goog.dom.TagName("FIELDSET");
goog.dom.TagName.FIGCAPTION = new goog.dom.TagName("FIGCAPTION");
goog.dom.TagName.FIGURE = new goog.dom.TagName("FIGURE");
goog.dom.TagName.FONT = new goog.dom.TagName("FONT");
goog.dom.TagName.FOOTER = new goog.dom.TagName("FOOTER");
goog.dom.TagName.FORM = new goog.dom.TagName("FORM");
goog.dom.TagName.FRAME = new goog.dom.TagName("FRAME");
goog.dom.TagName.FRAMESET = new goog.dom.TagName("FRAMESET");
goog.dom.TagName.H1 = new goog.dom.TagName("H1");
goog.dom.TagName.H2 = new goog.dom.TagName("H2");
goog.dom.TagName.H3 = new goog.dom.TagName("H3");
goog.dom.TagName.H4 = new goog.dom.TagName("H4");
goog.dom.TagName.H5 = new goog.dom.TagName("H5");
goog.dom.TagName.H6 = new goog.dom.TagName("H6");
goog.dom.TagName.HEAD = new goog.dom.TagName("HEAD");
goog.dom.TagName.HEADER = new goog.dom.TagName("HEADER");
goog.dom.TagName.HGROUP = new goog.dom.TagName("HGROUP");
goog.dom.TagName.HR = new goog.dom.TagName("HR");
goog.dom.TagName.HTML = new goog.dom.TagName("HTML");
goog.dom.TagName.I = new goog.dom.TagName("I");
goog.dom.TagName.IFRAME = new goog.dom.TagName("IFRAME");
goog.dom.TagName.IMG = new goog.dom.TagName("IMG");
goog.dom.TagName.INPUT = new goog.dom.TagName("INPUT");
goog.dom.TagName.INS = new goog.dom.TagName("INS");
goog.dom.TagName.ISINDEX = new goog.dom.TagName("ISINDEX");
goog.dom.TagName.KBD = new goog.dom.TagName("KBD");
goog.dom.TagName.KEYGEN = new goog.dom.TagName("KEYGEN");
goog.dom.TagName.LABEL = new goog.dom.TagName("LABEL");
goog.dom.TagName.LEGEND = new goog.dom.TagName("LEGEND");
goog.dom.TagName.LI = new goog.dom.TagName("LI");
goog.dom.TagName.LINK = new goog.dom.TagName("LINK");
goog.dom.TagName.MAIN = new goog.dom.TagName("MAIN");
goog.dom.TagName.MAP = new goog.dom.TagName("MAP");
goog.dom.TagName.MARK = new goog.dom.TagName("MARK");
goog.dom.TagName.MATH = new goog.dom.TagName("MATH");
goog.dom.TagName.MENU = new goog.dom.TagName("MENU");
goog.dom.TagName.MENUITEM = new goog.dom.TagName("MENUITEM");
goog.dom.TagName.META = new goog.dom.TagName("META");
goog.dom.TagName.METER = new goog.dom.TagName("METER");
goog.dom.TagName.NAV = new goog.dom.TagName("NAV");
goog.dom.TagName.NOFRAMES = new goog.dom.TagName("NOFRAMES");
goog.dom.TagName.NOSCRIPT = new goog.dom.TagName("NOSCRIPT");
goog.dom.TagName.OBJECT = new goog.dom.TagName("OBJECT");
goog.dom.TagName.OL = new goog.dom.TagName("OL");
goog.dom.TagName.OPTGROUP = new goog.dom.TagName("OPTGROUP");
goog.dom.TagName.OPTION = new goog.dom.TagName("OPTION");
goog.dom.TagName.OUTPUT = new goog.dom.TagName("OUTPUT");
goog.dom.TagName.P = new goog.dom.TagName("P");
goog.dom.TagName.PARAM = new goog.dom.TagName("PARAM");
goog.dom.TagName.PICTURE = new goog.dom.TagName("PICTURE");
goog.dom.TagName.PRE = new goog.dom.TagName("PRE");
goog.dom.TagName.PROGRESS = new goog.dom.TagName("PROGRESS");
goog.dom.TagName.Q = new goog.dom.TagName("Q");
goog.dom.TagName.RP = new goog.dom.TagName("RP");
goog.dom.TagName.RT = new goog.dom.TagName("RT");
goog.dom.TagName.RTC = new goog.dom.TagName("RTC");
goog.dom.TagName.RUBY = new goog.dom.TagName("RUBY");
goog.dom.TagName.S = new goog.dom.TagName("S");
goog.dom.TagName.SAMP = new goog.dom.TagName("SAMP");
goog.dom.TagName.SCRIPT = new goog.dom.TagName("SCRIPT");
goog.dom.TagName.SECTION = new goog.dom.TagName("SECTION");
goog.dom.TagName.SELECT = new goog.dom.TagName("SELECT");
goog.dom.TagName.SMALL = new goog.dom.TagName("SMALL");
goog.dom.TagName.SOURCE = new goog.dom.TagName("SOURCE");
goog.dom.TagName.SPAN = new goog.dom.TagName("SPAN");
goog.dom.TagName.STRIKE = new goog.dom.TagName("STRIKE");
goog.dom.TagName.STRONG = new goog.dom.TagName("STRONG");
goog.dom.TagName.STYLE = new goog.dom.TagName("STYLE");
goog.dom.TagName.SUB = new goog.dom.TagName("SUB");
goog.dom.TagName.SUMMARY = new goog.dom.TagName("SUMMARY");
goog.dom.TagName.SUP = new goog.dom.TagName("SUP");
goog.dom.TagName.SVG = new goog.dom.TagName("SVG");
goog.dom.TagName.TABLE = new goog.dom.TagName("TABLE");
goog.dom.TagName.TBODY = new goog.dom.TagName("TBODY");
goog.dom.TagName.TD = new goog.dom.TagName("TD");
goog.dom.TagName.TEMPLATE = new goog.dom.TagName("TEMPLATE");
goog.dom.TagName.TEXTAREA = new goog.dom.TagName("TEXTAREA");
goog.dom.TagName.TFOOT = new goog.dom.TagName("TFOOT");
goog.dom.TagName.TH = new goog.dom.TagName("TH");
goog.dom.TagName.THEAD = new goog.dom.TagName("THEAD");
goog.dom.TagName.TIME = new goog.dom.TagName("TIME");
goog.dom.TagName.TITLE = new goog.dom.TagName("TITLE");
goog.dom.TagName.TR = new goog.dom.TagName("TR");
goog.dom.TagName.TRACK = new goog.dom.TagName("TRACK");
goog.dom.TagName.TT = new goog.dom.TagName("TT");
goog.dom.TagName.U = new goog.dom.TagName("U");
goog.dom.TagName.UL = new goog.dom.TagName("UL");
goog.dom.TagName.VAR = new goog.dom.TagName("VAR");
goog.dom.TagName.VIDEO = new goog.dom.TagName("VIDEO");
goog.dom.TagName.WBR = new goog.dom.TagName("WBR");
goog.dom.tags = {};
goog.dom.tags.VOID_TAGS_ = {area:!0, base:!0, br:!0, col:!0, command:!0, embed:!0, hr:!0, img:!0, input:!0, keygen:!0, link:!0, meta:!0, param:!0, source:!0, track:!0, wbr:!0};
goog.dom.tags.isVoidTag = function(a) {
return !0 === goog.dom.tags.VOID_TAGS_[a];
};
goog.html = {};
goog.html.trustedtypes = {};
goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY = goog.TRUSTED_TYPES_POLICY_NAME ? goog.createTrustedTypesPolicy(goog.TRUSTED_TYPES_POLICY_NAME + "#html") : null;
goog.string.TypedString = function() {
};
goog.string.Const = function(a, b) {
this.stringConstValueWithSecurityContract__googStringSecurityPrivate_ = a === goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_ && b || "";
this.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_ = goog.string.Const.TYPE_MARKER_;
};
goog.string.Const.prototype.implementsGoogStringTypedString = !0;
goog.string.Const.prototype.getTypedStringValue = function() {
return this.stringConstValueWithSecurityContract__googStringSecurityPrivate_;
};
goog.DEBUG && (goog.string.Const.prototype.toString = function() {
return "Const{" + this.stringConstValueWithSecurityContract__googStringSecurityPrivate_ + "}";
});
goog.string.Const.unwrap = function(a) {
if (a instanceof goog.string.Const && a.constructor === goog.string.Const && a.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_ === goog.string.Const.TYPE_MARKER_) {
return a.stringConstValueWithSecurityContract__googStringSecurityPrivate_;
}
goog.asserts.fail("expected object of type Const, got '" + a + "'");
return "type_error:Const";
};
goog.string.Const.from = function(a) {
return new goog.string.Const(goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_, a);
};
goog.string.Const.TYPE_MARKER_ = {};
goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_ = {};
goog.string.Const.EMPTY = goog.string.Const.from("");
goog.html.SafeScript = function() {
this.privateDoNotAccessOrElseSafeScriptWrappedValue_ = "";
this.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_;
};
goog.html.SafeScript.prototype.implementsGoogStringTypedString = !0;
goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = {};
goog.html.SafeScript.fromConstant = function(a) {
a = goog.string.Const.unwrap(a);
return 0 === a.length ? goog.html.SafeScript.EMPTY : goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(a);
};
goog.html.SafeScript.fromConstantAndArgs = function(a, b) {
for (var c = [], d = 1; d < arguments.length; d++) {
c.push(goog.html.SafeScript.stringify_(arguments[d]));
}
return goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse("(" + goog.string.Const.unwrap(a) + ")(" + c.join(", ") + ");");
};
goog.html.SafeScript.fromJson = function(a) {
return goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(goog.html.SafeScript.stringify_(a));
};
goog.html.SafeScript.prototype.getTypedStringValue = function() {
return this.privateDoNotAccessOrElseSafeScriptWrappedValue_.toString();
};
goog.DEBUG && (goog.html.SafeScript.prototype.toString = function() {
return "SafeScript{" + this.privateDoNotAccessOrElseSafeScriptWrappedValue_ + "}";
});
goog.html.SafeScript.unwrap = function(a) {
return goog.html.SafeScript.unwrapTrustedScript(a).toString();
};
goog.html.SafeScript.unwrapTrustedScript = function(a) {
if (a instanceof goog.html.SafeScript && a.constructor === goog.html.SafeScript && a.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ === goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_) {
return a.privateDoNotAccessOrElseSafeScriptWrappedValue_;
}
goog.asserts.fail("expected object of type SafeScript, got '" + a + "' of type " + goog.typeOf(a));
return "type_error:SafeScript";
};
goog.html.SafeScript.stringify_ = function(a) {
return JSON.stringify(a).replace(/</g, "\\x3c");
};
goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse = function(a) {
return (new goog.html.SafeScript).initSecurityPrivateDoNotAccessOrElse_(a);
};
goog.html.SafeScript.prototype.initSecurityPrivateDoNotAccessOrElse_ = function(a) {
this.privateDoNotAccessOrElseSafeScriptWrappedValue_ = goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY ? goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createScript(a) : a;
return this;
};
goog.html.SafeScript.EMPTY = goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse("");
goog.fs = {};
goog.fs.url = {};
goog.fs.url.createObjectUrl = function(a) {
return goog.fs.url.getUrlObject_().createObjectURL(a);
};
goog.fs.url.revokeObjectUrl = function(a) {
goog.fs.url.getUrlObject_().revokeObjectURL(a);
};
goog.fs.url.getUrlObject_ = function() {
var a = goog.fs.url.findUrlObject_();
if (null != a) {
return a;
}
throw Error("This browser doesn't seem to support blob URLs");
};
goog.fs.url.findUrlObject_ = function() {
return void 0 !== goog.global.URL && void 0 !== goog.global.URL.createObjectURL ? goog.global.URL : void 0 !== goog.global.webkitURL && void 0 !== goog.global.webkitURL.createObjectURL ? goog.global.webkitURL : void 0 !== goog.global.createObjectURL ? goog.global : null;
};
goog.fs.url.browserSupportsObjectUrls = function() {
return null != goog.fs.url.findUrlObject_();
};
goog.i18n = {};
goog.i18n.bidi = {};
goog.i18n.bidi.FORCE_RTL = !1;
goog.i18n.bidi.IS_RTL = goog.i18n.bidi.FORCE_RTL || ("ar" == goog.LOCALE.substring(0, 2).toLowerCase() || "fa" == goog.LOCALE.substring(0, 2).toLowerCase() || "he" == goog.LOCALE.substring(0, 2).toLowerCase() || "iw" == goog.LOCALE.substring(0, 2).toLowerCase() || "ps" == goog.LOCALE.substring(0, 2).toLowerCase() || "sd" == goog.LOCALE.substring(0, 2).toLowerCase() || "ug" == goog.LOCALE.substring(0, 2).toLowerCase() || "ur" == goog.LOCALE.substring(0, 2).toLowerCase() || "yi" == goog.LOCALE.substring(0,
2).toLowerCase()) && (2 == goog.LOCALE.length || "-" == goog.LOCALE.substring(2, 3) || "_" == goog.LOCALE.substring(2, 3)) || 3 <= goog.LOCALE.length && "ckb" == goog.LOCALE.substring(0, 3).toLowerCase() && (3 == goog.LOCALE.length || "-" == goog.LOCALE.substring(3, 4) || "_" == goog.LOCALE.substring(3, 4)) || 7 <= goog.LOCALE.length && ("-" == goog.LOCALE.substring(2, 3) || "_" == goog.LOCALE.substring(2, 3)) && ("adlm" == goog.LOCALE.substring(3, 7).toLowerCase() || "arab" == goog.LOCALE.substring(3,
7).toLowerCase() || "hebr" == goog.LOCALE.substring(3, 7).toLowerCase() || "nkoo" == goog.LOCALE.substring(3, 7).toLowerCase() || "rohg" == goog.LOCALE.substring(3, 7).toLowerCase() || "thaa" == goog.LOCALE.substring(3, 7).toLowerCase()) || 8 <= goog.LOCALE.length && ("-" == goog.LOCALE.substring(3, 4) || "_" == goog.LOCALE.substring(3, 4)) && ("adlm" == goog.LOCALE.substring(4, 8).toLowerCase() || "arab" == goog.LOCALE.substring(4, 8).toLowerCase() || "hebr" == goog.LOCALE.substring(4, 8).toLowerCase() ||
"nkoo" == goog.LOCALE.substring(4, 8).toLowerCase() || "rohg" == goog.LOCALE.substring(4, 8).toLowerCase() || "thaa" == goog.LOCALE.substring(4, 8).toLowerCase());
goog.i18n.bidi.Format = {LRE:"\u202a", RLE:"\u202b", PDF:"\u202c", LRM:"\u200e", RLM:"\u200f"};
goog.i18n.bidi.Dir = {LTR:1, RTL:-1, NEUTRAL:0};
goog.i18n.bidi.RIGHT = "right";
goog.i18n.bidi.LEFT = "left";
goog.i18n.bidi.I18N_RIGHT = goog.i18n.bidi.IS_RTL ? goog.i18n.bidi.LEFT : goog.i18n.bidi.RIGHT;
goog.i18n.bidi.I18N_LEFT = goog.i18n.bidi.IS_RTL ? goog.i18n.bidi.RIGHT : goog.i18n.bidi.LEFT;
goog.i18n.bidi.toDir = function(a, b) {
return "number" == typeof a ? 0 < a ? goog.i18n.bidi.Dir.LTR : 0 > a ? goog.i18n.bidi.Dir.RTL : b ? null : goog.i18n.bidi.Dir.NEUTRAL : null == a ? null : a ? goog.i18n.bidi.Dir.RTL : goog.i18n.bidi.Dir.LTR;
};
goog.i18n.bidi.ltrChars_ = "A-Za-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02b8\u0300-\u0590\u0900-\u1fff\u200e\u2c00-\ud801\ud804-\ud839\ud83c-\udbff\uf900-\ufb1c\ufe00-\ufe6f\ufefd-\uffff";
goog.i18n.bidi.rtlChars_ = "\u0591-\u06ef\u06fa-\u08ff\u200f\ud802-\ud803\ud83a-\ud83b\ufb1d-\ufdff\ufe70-\ufefc";
goog.i18n.bidi.htmlSkipReg_ = /<[^>]*>|&[^;]+;/g;
goog.i18n.bidi.stripHtmlIfNeeded_ = function(a, b) {
return b ? a.replace(goog.i18n.bidi.htmlSkipReg_, "") : a;
};
goog.i18n.bidi.rtlCharReg_ = new RegExp("[" + goog.i18n.bidi.rtlChars_ + "]");
goog.i18n.bidi.ltrCharReg_ = new RegExp("[" + goog.i18n.bidi.ltrChars_ + "]");
goog.i18n.bidi.hasAnyRtl = function(a, b) {
return goog.i18n.bidi.rtlCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a, b));
};
goog.i18n.bidi.hasRtlChar = goog.i18n.bidi.hasAnyRtl;
goog.i18n.bidi.hasAnyLtr = function(a, b) {
return goog.i18n.bidi.ltrCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a, b));
};
goog.i18n.bidi.ltrRe_ = new RegExp("^[" + goog.i18n.bidi.ltrChars_ + "]");
goog.i18n.bidi.rtlRe_ = new RegExp("^[" + goog.i18n.bidi.rtlChars_ + "]");
goog.i18n.bidi.isRtlChar = function(a) {
return goog.i18n.bidi.rtlRe_.test(a);
};
goog.i18n.bidi.isLtrChar = function(a) {
return goog.i18n.bidi.ltrRe_.test(a);
};
goog.i18n.bidi.isNeutralChar = function(a) {
return !goog.i18n.bidi.isLtrChar(a) && !goog.i18n.bidi.isRtlChar(a);
};
goog.i18n.bidi.ltrDirCheckRe_ = new RegExp("^[^" + goog.i18n.bidi.rtlChars_ + "]*[" + goog.i18n.bidi.ltrChars_ + "]");
goog.i18n.bidi.rtlDirCheckRe_ = new RegExp("^[^" + goog.i18n.bidi.ltrChars_ + "]*[" + goog.i18n.bidi.rtlChars_ + "]");
goog.i18n.bidi.startsWithRtl = function(a, b) {
return goog.i18n.bidi.rtlDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a, b));
};
goog.i18n.bidi.isRtlText = goog.i18n.bidi.startsWithRtl;
goog.i18n.bidi.startsWithLtr = function(a, b) {
return goog.i18n.bidi.ltrDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a, b));
};
goog.i18n.bidi.isLtrText = goog.i18n.bidi.startsWithLtr;
goog.i18n.bidi.isRequiredLtrRe_ = /^http:\/\/.*/;
goog.i18n.bidi.isNeutralText = function(a, b) {
a = goog.i18n.bidi.stripHtmlIfNeeded_(a, b);
return goog.i18n.bidi.isRequiredLtrRe_.test(a) || !goog.i18n.bidi.hasAnyLtr(a) && !goog.i18n.bidi.hasAnyRtl(a);
};
goog.i18n.bidi.ltrExitDirCheckRe_ = new RegExp("[" + goog.i18n.bidi.ltrChars_ + "][^" + goog.i18n.bidi.rtlChars_ + "]*$");
goog.i18n.bidi.rtlExitDirCheckRe_ = new RegExp("[" + goog.i18n.bidi.rtlChars_ + "][^" + goog.i18n.bidi.ltrChars_ + "]*$");
goog.i18n.bidi.endsWithLtr = function(a, b) {
return goog.i18n.bidi.ltrExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a, b));
};
goog.i18n.bidi.isLtrExitText = goog.i18n.bidi.endsWithLtr;
goog.i18n.bidi.endsWithRtl = function(a, b) {
return goog.i18n.bidi.rtlExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a, b));
};
goog.i18n.bidi.isRtlExitText = goog.i18n.bidi.endsWithRtl;
goog.i18n.bidi.rtlLocalesRe_ = /^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;
goog.i18n.bidi.isRtlLanguage = function(a) {
return goog.i18n.bidi.rtlLocalesRe_.test(a);
};
goog.i18n.bidi.bracketGuardTextRe_ = /(\(.*?\)+)|(\[.*?\]+)|(\{.*?\}+)|(<.*?>+)/g;
goog.i18n.bidi.guardBracketInText = function(a, b) {
var c = (void 0 === b ? goog.i18n.bidi.hasAnyRtl(a) : b) ? goog.i18n.bidi.Format.RLM : goog.i18n.bidi.Format.LRM;
return a.replace(goog.i18n.bidi.bracketGuardTextRe_, c + "$&" + c);
};
goog.i18n.bidi.enforceRtlInHtml = function(a) {
return "<" == a.charAt(0) ? a.replace(/<\w+/, "$& dir=rtl") : "\n<span dir=rtl>" + a + "</span>";
};
goog.i18n.bidi.enforceRtlInText = function(a) {
return goog.i18n.bidi.Format.RLE + a + goog.i18n.bidi.Format.PDF;
};
goog.i18n.bidi.enforceLtrInHtml = function(a) {
return "<" == a.charAt(0) ? a.replace(/<\w+/, "$& dir=ltr") : "\n<span dir=ltr>" + a + "</span>";
};
goog.i18n.bidi.enforceLtrInText = function(a) {
return goog.i18n.bidi.Format.LRE + a + goog.i18n.bidi.Format.PDF;
};
goog.i18n.bidi.dimensionsRe_ = /:\s*([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)/g;
goog.i18n.bidi.leftRe_ = /left/gi;
goog.i18n.bidi.rightRe_ = /right/gi;
goog.i18n.bidi.tempRe_ = /%%%%/g;
goog.i18n.bidi.mirrorCSS = function(a) {
return a.replace(goog.i18n.bidi.dimensionsRe_, ":$1 $4 $3 $2").replace(goog.i18n.bidi.leftRe_, "%%%%").replace(goog.i18n.bidi.rightRe_, goog.i18n.bidi.LEFT).replace(goog.i18n.bidi.tempRe_, goog.i18n.bidi.RIGHT);
};
goog.i18n.bidi.doubleQuoteSubstituteRe_ = /([\u0591-\u05f2])"/g;
goog.i18n.bidi.singleQuoteSubstituteRe_ = /([\u0591-\u05f2])'/g;
goog.i18n.bidi.normalizeHebrewQuote = function(a) {
return a.replace(goog.i18n.bidi.doubleQuoteSubstituteRe_, "$1\u05f4").replace(goog.i18n.bidi.singleQuoteSubstituteRe_, "$1\u05f3");
};
goog.i18n.bidi.wordSeparatorRe_ = /\s+/;
goog.i18n.bidi.hasNumeralsRe_ = /[\d\u06f0-\u06f9]/;
goog.i18n.bidi.rtlDetectionThreshold_ = 0.40;
goog.i18n.bidi.estimateDirection = function(a, b) {
for (var c = 0, d = 0, e = !1, f = goog.i18n.bidi.stripHtmlIfNeeded_(a, b).split(goog.i18n.bidi.wordSeparatorRe_), g = 0; g < f.length; g++) {
var h = f[g];
goog.i18n.bidi.startsWithRtl(h) ? (c++, d++) : goog.i18n.bidi.isRequiredLtrRe_.test(h) ? e = !0 : goog.i18n.bidi.hasAnyLtr(h) ? d++ : goog.i18n.bidi.hasNumeralsRe_.test(h) && (e = !0);
}
return 0 == d ? e ? goog.i18n.bidi.Dir.LTR : goog.i18n.bidi.Dir.NEUTRAL : c / d > goog.i18n.bidi.rtlDetectionThreshold_ ? goog.i18n.bidi.Dir.RTL : goog.i18n.bidi.Dir.LTR;
};
goog.i18n.bidi.detectRtlDirectionality = function(a, b) {
return goog.i18n.bidi.estimateDirection(a, b) == goog.i18n.bidi.Dir.RTL;
};
goog.i18n.bidi.setElementDirAndAlign = function(a, b) {
a && (b = goog.i18n.bidi.toDir(b)) && (a.style.textAlign = b == goog.i18n.bidi.Dir.RTL ? goog.i18n.bidi.RIGHT : goog.i18n.bidi.LEFT, a.dir = b == goog.i18n.bidi.Dir.RTL ? "rtl" : "ltr");
};
goog.i18n.bidi.setElementDirByTextDirectionality = function(a, b) {
switch(goog.i18n.bidi.estimateDirection(b)) {
case goog.i18n.bidi.Dir.LTR:
a.dir = "ltr";
break;
case goog.i18n.bidi.Dir.RTL:
a.dir = "rtl";
break;
default:
a.removeAttribute("dir");
}
};
goog.i18n.bidi.DirectionalString = function() {
};
goog.html.TrustedResourceUrl = function(a, b, c) {
this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_ = a === goog.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_ && b || "";
this.trustedURL_ = a === goog.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_ && c || null;
this.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_;
};
goog.html.TrustedResourceUrl.prototype.implementsGoogStringTypedString = !0;
goog.html.TrustedResourceUrl.prototype.getTypedStringValue = function() {
return this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_.toString();
};
goog.html.TrustedResourceUrl.prototype.implementsGoogI18nBidiDirectionalString = !0;
goog.html.TrustedResourceUrl.prototype.getDirection = function() {
return goog.i18n.bidi.Dir.LTR;
};
goog.html.TrustedResourceUrl.prototype.cloneWithParams = function(a, b) {
var c = goog.html.TrustedResourceUrl.unwrap(this);
c = goog.html.TrustedResourceUrl.URL_PARAM_PARSER_.exec(c);
var d = c[3] || "";
return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(c[1] + goog.html.TrustedResourceUrl.stringifyParams_("?", c[2] || "", a) + goog.html.TrustedResourceUrl.stringifyParams_("#", d, b));
};
goog.DEBUG && (goog.html.TrustedResourceUrl.prototype.toString = function() {
return "TrustedResourceUrl{" + this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_ + "}";
});
goog.html.TrustedResourceUrl.unwrap = function(a) {
return goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(a).toString();
};
goog.html.TrustedResourceUrl.unwrapTrustedScriptURL = function(a) {
if (a instanceof goog.html.TrustedResourceUrl && a.constructor === goog.html.TrustedResourceUrl && a.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ === goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_) {
return a.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_;
}
goog.asserts.fail("expected object of type TrustedResourceUrl, got '" + a + "' of type " + goog.typeOf(a));
return "type_error:TrustedResourceUrl";
};
goog.html.TrustedResourceUrl.unwrapTrustedURL = function(a) {
return a.trustedURL_ ? a.trustedURL_ : goog.html.TrustedResourceUrl.unwrap(a);
};
goog.html.TrustedResourceUrl.format = function(a, b) {
var c = goog.string.Const.unwrap(a);
if (!goog.html.TrustedResourceUrl.BASE_URL_.test(c)) {
throw Error("Invalid TrustedResourceUrl format: " + c);
}
var d = c.replace(goog.html.TrustedResourceUrl.FORMAT_MARKER_, function(a, d) {
if (!Object.prototype.hasOwnProperty.call(b, d)) {
throw Error('Found marker, "' + d + '", in format string, "' + c + '", but no valid label mapping found in args: ' + JSON.stringify(b));
}
var e = b[d];
return e instanceof goog.string.Const ? goog.string.Const.unwrap(e) : encodeURIComponent(String(e));
});
return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(d);
};
goog.html.TrustedResourceUrl.FORMAT_MARKER_ = /%{(\w+)}/g;
goog.html.TrustedResourceUrl.BASE_URL_ = /^((https:)?\/\/[0-9a-z.:[\]-]+\/|\/[^/\\]|[^:/\\%]+\/|[^:/\\%]*[?#]|about:blank#)/i;
goog.html.TrustedResourceUrl.URL_PARAM_PARSER_ = /^([^?#]*)(\?[^#]*)?(#[\s\S]*)?/;
goog.html.TrustedResourceUrl.formatWithParams = function(a, b, c, d) {
return goog.html.TrustedResourceUrl.format(a, b).cloneWithParams(c, d);
};
goog.html.TrustedResourceUrl.fromConstant = function(a) {
return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(a));
};
goog.html.TrustedResourceUrl.fromConstants = function(a) {
for (var b = "", c = 0; c < a.length; c++) {
b += goog.string.Const.unwrap(a[c]);
}
return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(b);
};
goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = {};
goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse = function(a) {
var b = goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY ? goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createScriptURL(a) : a;
a = goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY ? goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createURL(a) : null;
return new goog.html.TrustedResourceUrl(goog.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_, b, a);
};
goog.html.TrustedResourceUrl.stringifyParams_ = function(a, b, c) {
if (null == c) {
return b;
}
if ("string" === typeof c) {
return c ? a + encodeURIComponent(c) : "";
}
for (var d in c) {
var e = c[d];
e = goog.isArray(e) ? e : [e];
for (var f = 0; f < e.length; f++) {
var g = e[f];
null != g && (b || (b = a), b += (b.length > a.length ? "&" : "") + encodeURIComponent(d) + "=" + encodeURIComponent(String(g)));
}
}
return b;
};
goog.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_ = {};
goog.string.internal = {};
goog.string.internal.startsWith = function(a, b) {
return 0 == a.lastIndexOf(b, 0);
};
goog.string.internal.endsWith = function(a, b) {
var c = a.length - b.length;
return 0 <= c && a.indexOf(b, c) == c;
};
goog.string.internal.caseInsensitiveStartsWith = function(a, b) {
return 0 == goog.string.internal.caseInsensitiveCompare(b, a.substr(0, b.length));
};
goog.string.internal.caseInsensitiveEndsWith = function(a, b) {
return 0 == goog.string.internal.caseInsensitiveCompare(b, a.substr(a.length - b.length, b.length));
};
goog.string.internal.caseInsensitiveEquals = function(a, b) {
return a.toLowerCase() == b.toLowerCase();
};
goog.string.internal.isEmptyOrWhitespace = function(a) {
return /^[\s\xa0]*$/.test(a);
};
goog.string.internal.trim = goog.TRUSTED_SITE && String.prototype.trim ? function(a) {
return a.trim();
} : function(a) {
return /^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(a)[1];
};
goog.string.internal.caseInsensitiveCompare = function(a, b) {
var c = String(a).toLowerCase(), d = String(b).toLowerCase();
return c < d ? -1 : c == d ? 0 : 1;
};
goog.string.internal.newLineToBr = function(a, b) {
return a.replace(/(\r\n|\r|\n)/g, b ? "<br />" : "<br>");
};
goog.string.internal.htmlEscape = function(a, b) {
if (b) {
a = a.replace(goog.string.internal.AMP_RE_, "&").replace(goog.string.internal.LT_RE_, "<").replace(goog.string.internal.GT_RE_, ">").replace(goog.string.internal.QUOT_RE_, """).replace(goog.string.internal.SINGLE_QUOTE_RE_, "'").replace(goog.string.internal.NULL_RE_, "�");
} else {
if (!goog.string.internal.ALL_RE_.test(a)) {
return a;
}
-1 != a.indexOf("&") && (a = a.replace(goog.string.internal.AMP_RE_, "&"));
-1 != a.indexOf("<") && (a = a.replace(goog.string.internal.LT_RE_, "<"));
-1 != a.indexOf(">") && (a = a.replace(goog.string.internal.GT_RE_, ">"));
-1 != a.indexOf('"') && (a = a.replace(goog.string.internal.QUOT_RE_, """));
-1 != a.indexOf("'") && (a = a.replace(goog.string.internal.SINGLE_QUOTE_RE_, "'"));
-1 != a.indexOf("\x00") && (a = a.replace(goog.string.internal.NULL_RE_, "�"));
}
return a;
};
goog.string.internal.AMP_RE_ = /&/g;
goog.string.internal.LT_RE_ = /</g;
goog.string.internal.GT_RE_ = />/g;
goog.string.internal.QUOT_RE_ = /"/g;
goog.string.internal.SINGLE_QUOTE_RE_ = /'/g;
goog.string.internal.NULL_RE_ = /\x00/g;
goog.string.internal.ALL_RE_ = /[\x00&<>"']/;
goog.string.internal.whitespaceEscape = function(a, b) {
return goog.string.internal.newLineToBr(a.replace(/ /g, "  "), b);
};
goog.string.internal.contains = function(a, b) {
return -1 != a.indexOf(b);
};
goog.string.internal.caseInsensitiveContains = function(a, b) {
return goog.string.internal.contains(a.toLowerCase(), b.toLowerCase());
};
goog.string.internal.compareVersions = function(a, b) {
for (var c = 0, d = goog.string.internal.trim(String(a)).split("."), e = goog.string.internal.trim(String(b)).split("."), f = Math.max(d.length, e.length), g = 0; 0 == c && g < f; g++) {
var h = d[g] || "", k = e[g] || "";
do {
h = /(\d*)(\D*)(.*)/.exec(h) || ["", "", "", ""];
k = /(\d*)(\D*)(.*)/.exec(k) || ["", "", "", ""];
if (0 == h[0].length && 0 == k[0].length) {
break;
}
c = 0 == h[1].length ? 0 : parseInt(h[1], 10);
var l = 0 == k[1].length ? 0 : parseInt(k[1], 10);
c = goog.string.internal.compareElements_(c, l) || goog.string.internal.compareElements_(0 == h[2].length, 0 == k[2].length) || goog.string.internal.compareElements_(h[2], k[2]);
h = h[3];
k = k[3];
} while (0 == c);
}
return c;
};
goog.string.internal.compareElements_ = function(a, b) {
return a < b ? -1 : a > b ? 1 : 0;
};
goog.html.SafeUrl = function(a, b) {
this.privateDoNotAccessOrElseSafeUrlWrappedValue_ = a === goog.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_ && b || "";
this.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_;
};
goog.html.SafeUrl.INNOCUOUS_STRING = "about:invalid#zClosurez";
goog.html.SafeUrl.prototype.implementsGoogStringTypedString = !0;
goog.html.SafeUrl.prototype.getTypedStringValue = function() {
return this.privateDoNotAccessOrElseSafeUrlWrappedValue_.toString();
};
goog.html.SafeUrl.prototype.implementsGoogI18nBidiDirectionalString = !0;
goog.html.SafeUrl.prototype.getDirection = function() {
return goog.i18n.bidi.Dir.LTR;
};
goog.DEBUG && (goog.html.SafeUrl.prototype.toString = function() {
return "SafeUrl{" + this.privateDoNotAccessOrElseSafeUrlWrappedValue_ + "}";
});
goog.html.SafeUrl.unwrap = function(a) {
return goog.html.SafeUrl.unwrapTrustedURL(a).toString();
};
goog.html.SafeUrl.unwrapTrustedURL = function(a) {
if (a instanceof goog.html.SafeUrl && a.constructor === goog.html.SafeUrl && a.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ === goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_) {
return a.privateDoNotAccessOrElseSafeUrlWrappedValue_;
}
goog.asserts.fail("expected object of type SafeUrl, got '" + a + "' of type " + goog.typeOf(a));
return "type_error:SafeUrl";
};
goog.html.SafeUrl.fromConstant = function(a) {
return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(a));
};
goog.html.SAFE_MIME_TYPE_PATTERN_ = /^(?:audio\/(?:3gpp2|3gpp|aac|L16|midi|mp3|mp4|mpeg|oga|ogg|opus|x-m4a|x-wav|wav|webm)|image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp|x-icon)|text\/csv|video\/(?:mpeg|mp4|ogg|webm|quicktime))(?:;\w+=(?:\w+|"[\w;=]+"))*$/i;
goog.html.SafeUrl.isSafeMimeType = function(a) {
return goog.html.SAFE_MIME_TYPE_PATTERN_.test(a);
};
goog.html.SafeUrl.fromBlob = function(a) {
a = goog.html.SAFE_MIME_TYPE_PATTERN_.test(a.type) ? goog.fs.url.createObjectUrl(a) : goog.html.SafeUrl.INNOCUOUS_STRING;
return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);
};
goog.html.DATA_URL_PATTERN_ = /^data:([^,]*);base64,[a-z0-9+\/]+=*$/i;
goog.html.SafeUrl.fromDataUrl = function(a) {
a = a.replace(/(%0A|%0D)/g, "");
var b = a.match(goog.html.DATA_URL_PATTERN_);
b = b && goog.html.SAFE_MIME_TYPE_PATTERN_.test(b[1]);
return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b ? a : goog.html.SafeUrl.INNOCUOUS_STRING);
};
goog.html.SafeUrl.fromTelUrl = function(a) {
goog.string.internal.caseInsensitiveStartsWith(a, "tel:") || (a = goog.html.SafeUrl.INNOCUOUS_STRING);
return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);
};
goog.html.SIP_URL_PATTERN_ = /^sip[s]?:[+a-z0-9_.!$%&'*\/=^`{|}~-]+@([a-z0-9-]+\.)+[a-z0-9]{2,63}$/i;
goog.html.SafeUrl.fromSipUrl = function(a) {
goog.html.SIP_URL_PATTERN_.test(decodeURIComponent(a)) || (a = goog.html.SafeUrl.INNOCUOUS_STRING);
return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);
};
goog.html.SafeUrl.fromFacebookMessengerUrl = function(a) {
goog.string.internal.caseInsensitiveStartsWith(a, "fb-messenger://share") || (a = goog.html.SafeUrl.INNOCUOUS_STRING);
return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);
};
goog.html.SafeUrl.fromWhatsAppUrl = function(a) {
goog.string.internal.caseInsensitiveStartsWith(a, "whatsapp://send") || (a = goog.html.SafeUrl.INNOCUOUS_STRING);
return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);
};
goog.html.SafeUrl.fromSmsUrl = function(a) {
goog.string.internal.caseInsensitiveStartsWith(a, "sms:") && goog.html.SafeUrl.isSmsUrlBodyValid_(a) || (a = goog.html.SafeUrl.INNOCUOUS_STRING);
return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);
};
goog.html.SafeUrl.isSmsUrlBodyValid_ = function(a) {
var b = a.indexOf("#");
0 < b && (a = a.substring(0, b));
b = a.match(/[?&]body=/gi);
if (!b) {
return !0;
}
if (1 < b.length) {
return !1;
}
a = a.match(/[?&]body=([^&]*)/)[1];
if (!a) {
return !0;
}
try {
decodeURIComponent(a);
} catch (c) {
return !1;
}
return /^(?:[a-z0-9\-_.~]|%[0-9a-f]{2})+$/i.test(a);
};
goog.html.SafeUrl.fromSshUrl = function(a) {
goog.string.internal.caseInsensitiveStartsWith(a, "ssh://") || (a = goog.html.SafeUrl.INNOCUOUS_STRING);
return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);
};
goog.html.SafeUrl.sanitizeChromeExtensionUrl = function(a, b) {
return goog.html.SafeUrl.sanitizeExtensionUrl_(/^chrome-extension:\/\/([^\/]+)\//, a, b);
};
goog.html.SafeUrl.sanitizeFirefoxExtensionUrl = function(a, b) {
return goog.html.SafeUrl.sanitizeExtensionUrl_(/^moz-extension:\/\/([^\/]+)\//, a, b);
};
goog.html.SafeUrl.sanitizeEdgeExtensionUrl = function(a, b) {
return goog.html.SafeUrl.sanitizeExtensionUrl_(/^ms-browser-extension:\/\/([^\/]+)\//, a, b);
};
goog.html.SafeUrl.sanitizeExtensionUrl_ = function(a, b, c) {
(a = a.exec(b)) ? (a = a[1], -1 == (c instanceof goog.string.Const ? [goog.string.Const.unwrap(c)] : c.map(function(a) {
return goog.string.Const.unwrap(a);
})).indexOf(a) && (b = goog.html.SafeUrl.INNOCUOUS_STRING)) : b = goog.html.SafeUrl.INNOCUOUS_STRING;
return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b);
};
goog.html.SafeUrl.fromTrustedResourceUrl = function(a) {
return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(goog.html.TrustedResourceUrl.unwrap(a));
};
goog.html.SAFE_URL_PATTERN_ = /^(?:(?:https?|mailto|ftp):|[^:/?#]*(?:[/?#]|$))/i;
goog.html.SafeUrl.SAFE_URL_PATTERN = goog.html.SAFE_URL_PATTERN_;
goog.html.SafeUrl.sanitize = function(a) {
if (a instanceof goog.html.SafeUrl) {
return a;
}
a = "object" == typeof a && a.implementsGoogStringTypedString ? a.getTypedStringValue() : String(a);
goog.html.SAFE_URL_PATTERN_.test(a) || (a = goog.html.SafeUrl.INNOCUOUS_STRING);
return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);
};
goog.html.SafeUrl.sanitizeAssertUnchanged = function(a, b) {
if (a instanceof goog.html.SafeUrl) {
return a;
}
a = "object" == typeof a && a.implementsGoogStringTypedString ? a.getTypedStringValue() : String(a);
if (b && /^data:/i.test(a)) {
var c = goog.html.SafeUrl.fromDataUrl(a);
if (c.getTypedStringValue() == a) {
return c;
}
}
goog.asserts.assert(goog.html.SAFE_URL_PATTERN_.test(a), "%s does not match the safe URL pattern", a) || (a = goog.html.SafeUrl.INNOCUOUS_STRING);
return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);
};
goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = {};
goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse = function(a) {
return new goog.html.SafeUrl(goog.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_, goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY ? goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createURL(a) : a);
};
goog.html.SafeUrl.ABOUT_BLANK = goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse("about:blank");
goog.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_ = {};
goog.html.SafeStyle = function() {
this.privateDoNotAccessOrElseSafeStyleWrappedValue_ = "";
this.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_;
};
goog.html.SafeStyle.prototype.implementsGoogStringTypedString = !0;
goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = {};
goog.html.SafeStyle.fromConstant = function(a) {
a = goog.string.Const.unwrap(a);
if (0 === a.length) {
return goog.html.SafeStyle.EMPTY;
}
goog.asserts.assert(goog.string.internal.endsWith(a, ";"), "Last character of style string is not ';': " + a);
goog.asserts.assert(goog.string.internal.contains(a, ":"), "Style string must contain at least one ':', to specify a \"name: value\" pair: " + a);
return goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(a);
};
goog.html.SafeStyle.prototype.getTypedStringValue = function() {
return this.privateDoNotAccessOrElseSafeStyleWrappedValue_;
};
goog.DEBUG && (goog.html.SafeStyle.prototype.toString = function() {
return "SafeStyle{" + this.privateDoNotAccessOrElseSafeStyleWrappedValue_ + "}";
});
goog.html.SafeStyle.unwrap = function(a) {
if (a instanceof goog.html.SafeStyle && a.constructor === goog.html.SafeStyle && a.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ === goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_) {
return a.privateDoNotAccessOrElseSafeStyleWrappedValue_;
}
goog.asserts.fail("expected object of type SafeStyle, got '" + a + "' of type " + goog.typeOf(a));
return "type_error:SafeStyle";
};
goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse = function(a) {
return (new goog.html.SafeStyle).initSecurityPrivateDoNotAccessOrElse_(a);
};
goog.html.SafeStyle.prototype.initSecurityPrivateDoNotAccessOrElse_ = function(a) {
this.privateDoNotAccessOrElseSafeStyleWrappedValue_ = a;
return this;
};
goog.html.SafeStyle.EMPTY = goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse("");
goog.html.SafeStyle.INNOCUOUS_STRING = "zClosurez";
goog.html.SafeStyle.create = function(a) {
var b = "", c;
for (c in a) {
if (!/^[-_a-zA-Z0-9]+$/.test(c)) {
throw Error("Name allows only [-_a-zA-Z0-9], got: " + c);
}
var d = a[c];
null != d && (d = goog.isArray(d) ? goog.array.map(d, goog.html.SafeStyle.sanitizePropertyValue_).join(" ") : goog.html.SafeStyle.sanitizePropertyValue_(d), b += c + ":" + d + ";");
}
return b ? goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(b) : goog.html.SafeStyle.EMPTY;
};
goog.html.SafeStyle.sanitizePropertyValue_ = function(a) {
if (a instanceof goog.html.SafeUrl) {
return 'url("' + goog.html.SafeUrl.unwrap(a).replace(/</g, "%3c").replace(/[\\"]/g, "\\$&") + '")';
}
a = a instanceof goog.string.Const ? goog.string.Const.unwrap(a) : goog.html.SafeStyle.sanitizePropertyValueString_(String(a));
if (/[{;}]/.test(a)) {
throw new goog.asserts.AssertionError("Value does not allow [{;}], got: %s.", [a]);
}
return a;
};
goog.html.SafeStyle.sanitizePropertyValueString_ = function(a) {
var b = a.replace(goog.html.SafeStyle.FUNCTIONS_RE_, "$1").replace(goog.html.SafeStyle.FUNCTIONS_RE_, "$1").replace(goog.html.SafeStyle.URL_RE_, "url");
if (goog.html.SafeStyle.VALUE_RE_.test(b)) {
if (goog.html.SafeStyle.COMMENT_RE_.test(a)) {
return goog.asserts.fail("String value disallows comments, got: " + a), goog.html.SafeStyle.INNOCUOUS_STRING;
}
if (!goog.html.SafeStyle.hasBalancedQuotes_(a)) {
return goog.asserts.fail("String value requires balanced quotes, got: " + a), goog.html.SafeStyle.INNOCUOUS_STRING;
}
if (!goog.html.SafeStyle.hasBalancedSquareBrackets_(a)) {
return goog.asserts.fail("String value requires balanced square brackets and one identifier per pair of brackets, got: " + a), goog.html.SafeStyle.INNOCUOUS_STRING;
}
} else {
return goog.asserts.fail("String value allows only " + goog.html.SafeStyle.VALUE_ALLOWED_CHARS_ + " and simple functions, got: " + a), goog.html.SafeStyle.INNOCUOUS_STRING;
}
return goog.html.SafeStyle.sanitizeUrl_(a);
};
goog.html.SafeStyle.hasBalancedQuotes_ = function(a) {
for (var b = !0, c = !0, d = 0; d < a.length; d++) {
var e = a.charAt(d);
"'" == e && c ? b = !b : '"' == e && b && (c = !c);
}
return b && c;
};
goog.html.SafeStyle.hasBalancedSquareBrackets_ = function(a) {
for (var b = !0, c = /^[-_a-zA-Z0-9]$/, d = 0; d < a.length; d++) {
var e = a.charAt(d);
if ("]" == e) {
if (b) {
return !1;
}
b = !0;
} else {
if ("[" == e) {
if (!b) {
return !1;
}
b = !1;
} else {
if (!b && !c.test(e)) {
return !1;
}
}
}
}
return b;
};
goog.html.SafeStyle.VALUE_ALLOWED_CHARS_ = "[-,.\"'%_!# a-zA-Z0-9\\[\\]]";
goog.html.SafeStyle.VALUE_RE_ = new RegExp("^" + goog.html.SafeStyle.VALUE_ALLOWED_CHARS_ + "+$");
goog.html.SafeStyle.URL_RE_ = RegExp("\\b(url\\([ \t\n]*)('[ -&(-\\[\\]-~]*'|\"[ !#-\\[\\]-~]*\"|[!#-&*-\\[\\]-~]*)([ \t\n]*\\))", "g");
goog.html.SafeStyle.ALLOWED_FUNCTIONS_ = "calc cubic-bezier fit-content hsl hsla matrix minmax repeat rgb rgba (rotate|scale|translate)(X|Y|Z|3d)?".split(" ");
goog.html.SafeStyle.FUNCTIONS_RE_ = new RegExp("\\b(" + goog.html.SafeStyle.ALLOWED_FUNCTIONS_.join("|") + ")\\([-+*/0-9a-z.%\\[\\], ]+\\)", "g");
goog.html.SafeStyle.COMMENT_RE_ = /\/\*/;
goog.html.SafeStyle.sanitizeUrl_ = function(a) {
return a.replace(goog.html.SafeStyle.URL_RE_, function(a, c, d, e) {
var b = "";
d = d.replace(/^(['"])(.*)\1$/, function(a, c, d) {
b = c;
return d;
});
a = goog.html.SafeUrl.sanitize(d).getTypedStringValue();
return c + b + a + b + e;
});
};
goog.html.SafeStyle.concat = function(a) {
var b = "", c = function(a) {
goog.isArray(a) ? goog.array.forEach(a, c) : b += goog.html.SafeStyle.unwrap(a);
};
goog.array.forEach(arguments, c);
return b ? goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(b) : goog.html.SafeStyle.EMPTY;
};
goog.html.SafeStyleSheet = function() {
this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_ = "";
this.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_;
};
goog.html.SafeStyleSheet.prototype.implementsGoogStringTypedString = !0;
goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = {};
goog.html.SafeStyleSheet.createRule = function(a, b) {
if (goog.string.internal.contains(a, "<")) {
throw Error("Selector does not allow '<', got: " + a);
}
var c = a.replace(/('|")((?!\1)[^\r\n\f\\]|\\[\s\S])*\1/g, "");
if (!/^[-_a-zA-Z0-9#.:* ,>+~[\]()=^$|]+$/.test(c)) {
throw Error("Selector allows only [-_a-zA-Z0-9#.:* ,>+~[\\]()=^$|] and strings, got: " + a);
}
if (!goog.html.SafeStyleSheet.hasBalancedBrackets_(c)) {
throw Error("() and [] in selector must be balanced, got: " + a);
}
b instanceof goog.html.SafeStyle || (b = goog.html.SafeStyle.create(b));
c = a + "{" + goog.html.SafeStyle.unwrap(b).replace(/</g, "\\3C ") + "}";
return goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(c);
};
goog.html.SafeStyleSheet.hasBalancedBrackets_ = function(a) {
for (var b = {"(":")", "[":"]"}, c = [], d = 0; d < a.length; d++) {
var e = a[d];
if (b[e]) {
c.push(b[e]);
} else {
if (goog.object.contains(b, e) && c.pop() != e) {
return !1;
}
}
}
return 0 == c.length;
};
goog.html.SafeStyleSheet.concat = function(a) {
var b = "", c = function(a) {
goog.isArray(a) ? goog.array.forEach(a, c) : b += goog.html.SafeStyleSheet.unwrap(a);
};
goog.array.forEach(arguments, c);
return goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(b);
};
goog.html.SafeStyleSheet.fromConstant = function(a) {
a = goog.string.Const.unwrap(a);
if (0 === a.length) {
return goog.html.SafeStyleSheet.EMPTY;
}
goog.asserts.assert(!goog.string.internal.contains(a, "<"), "Forbidden '<' character in style sheet string: " + a);
return goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(a);
};
goog.html.SafeStyleSheet.prototype.getTypedStringValue = function() {
return this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_;
};
goog.DEBUG && (goog.html.SafeStyleSheet.prototype.toString = function() {
return "SafeStyleSheet{" + this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_ + "}";
});
goog.html.SafeStyleSheet.unwrap = function(a) {
if (a instanceof goog.html.SafeStyleSheet && a.constructor === goog.html.SafeStyleSheet && a.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ === goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_) {
return a.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_;
}
goog.asserts.fail("expected object of type SafeStyleSheet, got '" + a + "' of type " + goog.typeOf(a));
return "type_error:SafeStyleSheet";
};
goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse = function(a) {
return (new goog.html.SafeStyleSheet).initSecurityPrivateDoNotAccessOrElse_(a);
};
goog.html.SafeStyleSheet.prototype.initSecurityPrivateDoNotAccessOrElse_ = function(a) {
this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_ = a;
return this;
};
goog.html.SafeStyleSheet.EMPTY = goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse("");
goog.labs = {};
goog.labs.userAgent = {};
goog.labs.userAgent.util = {};
goog.labs.userAgent.util.getNativeUserAgentString_ = function() {
var a = goog.labs.userAgent.util.getNavigator_();
return a && (a = a.userAgent) ? a : "";
};
goog.labs.userAgent.util.getNavigator_ = function() {
return goog.global.navigator;
};
goog.labs.userAgent.util.userAgent_ = goog.labs.userAgent.util.getNativeUserAgentString_();
goog.labs.userAgent.util.setUserAgent = function(a) {
goog.labs.userAgent.util.userAgent_ = a || goog.labs.userAgent.util.getNativeUserAgentString_();
};
goog.labs.userAgent.util.getUserAgent = function() {
return goog.labs.userAgent.util.userAgent_;
};
goog.labs.userAgent.util.matchUserAgent = function(a) {
var b = goog.labs.userAgent.util.getUserAgent();
return goog.string.internal.contains(b, a);
};
goog.labs.userAgent.util.matchUserAgentIgnoreCase = function(a) {
var b = goog.labs.userAgent.util.getUserAgent();
return goog.string.internal.caseInsensitiveContains(b, a);
};
goog.labs.userAgent.util.extractVersionTuples = function(a) {
for (var b = RegExp("(\\w[\\w ]+)/([^\\s]+)\\s*(?:\\((.*?)\\))?", "g"), c = [], d; d = b.exec(a);) {
c.push([d[1], d[2], d[3] || void 0]);
}
return c;
};
goog.labs.userAgent.browser = {};
goog.labs.userAgent.browser.matchOpera_ = function() {
return goog.labs.userAgent.util.matchUserAgent("Opera");
};
goog.labs.userAgent.browser.matchIE_ = function() {
return goog.labs.userAgent.util.matchUserAgent("Trident") || goog.labs.userAgent.util.matchUserAgent("MSIE");
};
goog.labs.userAgent.browser.matchEdgeHtml_ = function() {
return goog.labs.userAgent.util.matchUserAgent("Edge");
};
goog.labs.userAgent.browser.matchEdgeChromium_ = function() {
return goog.labs.userAgent.util.matchUserAgent("Edg/");
};
goog.labs.userAgent.browser.matchOperaChromium_ = function() {
return goog.labs.userAgent.util.matchUserAgent("OPR");
};
goog.labs.userAgent.browser.matchFirefox_ = function() {
return goog.labs.userAgent.util.matchUserAgent("Firefox") || goog.labs.userAgent.util.matchUserAgent("FxiOS");
};
goog.labs.userAgent.browser.matchSafari_ = function() {
return goog.labs.userAgent.util.matchUserAgent("Safari") && !(goog.labs.userAgent.browser.matchChrome_() || goog.labs.userAgent.browser.matchCoast_() || goog.labs.userAgent.browser.matchOpera_() || goog.labs.userAgent.browser.matchEdgeHtml_() || goog.labs.userAgent.browser.matchEdgeChromium_() || goog.labs.userAgent.browser.matchOperaChromium_() || goog.labs.userAgent.browser.matchFirefox_() || goog.labs.userAgent.browser.isSilk() || goog.labs.userAgent.util.matchUserAgent("Android"));
};
goog.labs.userAgent.browser.matchCoast_ = function() {
return goog.labs.userAgent.util.matchUserAgent("Coast");
};
goog.labs.userAgent.browser.matchIosWebview_ = function() {
return (goog.labs.userAgent.util.matchUserAgent("iPad") || goog.labs.userAgent.util.matchUserAgent("iPhone")) && !goog.labs.userAgent.browser.matchSafari_() && !goog.labs.userAgent.browser.matchChrome_() && !goog.labs.userAgent.browser.matchCoast_() && !goog.labs.userAgent.browser.matchFirefox_() && goog.labs.userAgent.util.matchUserAgent("AppleWebKit");
};
goog.labs.userAgent.browser.matchChrome_ = function() {
return (goog.labs.userAgent.util.matchUserAgent("Chrome") || goog.labs.userAgent.util.matchUserAgent("CriOS")) && !goog.labs.userAgent.browser.matchEdgeHtml_();
};
goog.labs.userAgent.browser.matchAndroidBrowser_ = function() {
return goog.labs.userAgent.util.matchUserAgent("Android") && !(goog.labs.userAgent.browser.isChrome() || goog.labs.userAgent.browser.isFirefox() || goog.labs.userAgent.browser.isOpera() || goog.labs.userAgent.browser.isSilk());
};
goog.labs.userAgent.browser.isOpera = goog.labs.userAgent.browser.matchOpera_;
goog.labs.userAgent.browser.isIE = goog.labs.userAgent.browser.matchIE_;
goog.labs.userAgent.browser.isEdge = goog.labs.userAgent.browser.matchEdgeHtml_;
goog.labs.userAgent.browser.isEdgeChromium = goog.labs.userAgent.browser.matchEdgeChromium_;
goog.labs.userAgent.browser.isOperaChromium = goog.labs.userAgent.browser.matchOperaChromium_;
goog.labs.userAgent.browser.isFirefox = goog.labs.userAgent.browser.matchFirefox_;
goog.labs.userAgent.browser.isSafari = goog.labs.userAgent.browser.matchSafari_;
goog.labs.userAgent.browser.isCoast = goog.labs.userAgent.browser.matchCoast_;
goog.labs.userAgent.browser.isIosWebview = goog.labs.userAgent.browser.matchIosWebview_;
goog.labs.userAgent.browser.isChrome = goog.labs.userAgent.browser.matchChrome_;
goog.labs.userAgent.browser.isAndroidBrowser = goog.labs.userAgent.browser.matchAndroidBrowser_;
goog.labs.userAgent.browser.isSilk = function() {
return goog.labs.userAgent.util.matchUserAgent("Silk");
};
goog.labs.userAgent.browser.getVersion = function() {
function a(a) {
a = goog.array.find(a, d);
return c[a] || "";
}
var b = goog.labs.userAgent.util.getUserAgent();
if (goog.labs.userAgent.browser.isIE()) {
return goog.labs.userAgent.browser.getIEVersion_(b);
}
b = goog.labs.userAgent.util.extractVersionTuples(b);
var c = {};
goog.array.forEach(b, function(a) {
c[a[0]] = a[1];
});
var d = goog.partial(goog.object.containsKey, c);
return goog.labs.userAgent.browser.isOpera() ? a(["Version", "Opera"]) : goog.labs.userAgent.browser.isEdge() ? a(["Edge"]) : goog.labs.userAgent.browser.isEdgeChromium() ? a(["Edg"]) : goog.labs.userAgent.browser.isChrome() ? a(["Chrome", "CriOS"]) : (b = b[2]) && b[1] || "";
};
goog.labs.userAgent.browser.isVersionOrHigher = function(a) {
return 0 <= goog.string.internal.compareVersions(goog.labs.userAgent.browser.getVersion(), a);
};
goog.labs.userAgent.browser.getIEVersion_ = function(a) {
var b = /rv: *([\d\.]*)/.exec(a);
if (b && b[1]) {
return b[1];
}
b = "";
var c = /MSIE +([\d\.]+)/.exec(a);
if (c && c[1]) {
if (a = /Trident\/(\d.\d)/.exec(a), "7.0" == c[1]) {
if (a && a[1]) {
switch(a[1]) {
case "4.0":
b = "8.0";
break;
case "5.0":
b = "9.0";
break;
case "6.0":
b = "10.0";
break;
case "7.0":
b = "11.0";
}
} else {
b = "7.0";
}
} else {
b = c[1];
}
}
return b;
};
goog.html.SafeHtml = function() {
this.privateDoNotAccessOrElseSafeHtmlWrappedValue_ = "";
this.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_;
this.dir_ = null;
};
goog.html.SafeHtml.ENABLE_ERROR_MESSAGES = goog.DEBUG;
goog.html.SafeHtml.SUPPORT_STYLE_ATTRIBUTE = !0;
goog.html.SafeHtml.prototype.implementsGoogI18nBidiDirectionalString = !0;
goog.html.SafeHtml.prototype.getDirection = function() {
return this.dir_;
};
goog.html.SafeHtml.prototype.implementsGoogStringTypedString = !0;
goog.html.SafeHtml.prototype.getTypedStringValue = function() {
return this.privateDoNotAccessOrElseSafeHtmlWrappedValue_.toString();
};
goog.DEBUG && (goog.html.SafeHtml.prototype.toString = function() {
return "SafeHtml{" + this.privateDoNotAccessOrElseSafeHtmlWrappedValue_ + "}";
});
goog.html.SafeHtml.unwrap = function(a) {
return goog.html.SafeHtml.unwrapTrustedHTML(a).toString();
};
goog.html.SafeHtml.unwrapTrustedHTML = function(a) {
if (a instanceof goog.html.SafeHtml && a.constructor === goog.html.SafeHtml && a.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ === goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_) {
return a.privateDoNotAccessOrElseSafeHtmlWrappedValue_;
}
goog.asserts.fail("expected object of type SafeHtml, got '" + a + "' of type " + goog.typeOf(a));
return "type_error:SafeHtml";
};
goog.html.SafeHtml.htmlEscape = function(a) {
if (a instanceof goog.html.SafeHtml) {
return a;
}
var b = "object" == typeof a, c = null;
b && a.implementsGoogI18nBidiDirectionalString && (c = a.getDirection());
a = b && a.implementsGoogStringTypedString ? a.getTypedStringValue() : String(a);
return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.internal.htmlEscape(a), c);
};
goog.html.SafeHtml.htmlEscapePreservingNewlines = function(a) {
if (a instanceof goog.html.SafeHtml) {
return a;
}
a = goog.html.SafeHtml.htmlEscape(a);
return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.internal.newLineToBr(goog.html.SafeHtml.unwrap(a)), a.getDirection());
};
goog.html.SafeHtml.htmlEscapePreservingNewlinesAndSpaces = function(a) {
if (a instanceof goog.html.SafeHtml) {
return a;
}
a = goog.html.SafeHtml.htmlEscape(a);
return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.internal.whitespaceEscape(goog.html.SafeHtml.unwrap(a)), a.getDirection());
};
goog.html.SafeHtml.from = goog.html.SafeHtml.htmlEscape;
goog.html.SafeHtml.VALID_NAMES_IN_TAG_ = /^[a-zA-Z0-9-]+$/;
goog.html.SafeHtml.URL_ATTRIBUTES_ = {action:!0, cite:!0, data:!0, formaction:!0, href:!0, manifest:!0, poster:!0, src:!0};
goog.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_ = {APPLET:!0, BASE:!0, EMBED:!0, IFRAME:!0, LINK:!0, MATH:!0, META:!0, OBJECT:!0, SCRIPT:!0, STYLE:!0, SVG:!0, TEMPLATE:!0};
goog.html.SafeHtml.create = function(a, b, c) {
goog.html.SafeHtml.verifyTagName(String(a));
return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(String(a), b, c);
};
goog.html.SafeHtml.verifyTagName = function(a) {
if (!goog.html.SafeHtml.VALID_NAMES_IN_TAG_.test(a)) {
throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? "Invalid tag name <" + a + ">." : "");
}
if (a.toUpperCase() in goog.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_) {
throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? "Tag name <" + a + "> is not allowed for SafeHtml." : "");
}
};
goog.html.SafeHtml.createIframe = function(a, b, c, d) {
a && goog.html.TrustedResourceUrl.unwrap(a);
var e = {};
e.src = a || null;
e.srcdoc = b && goog.html.SafeHtml.unwrap(b);
a = goog.html.SafeHtml.combineAttributes(e, {sandbox:""}, c);
return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe", a, d);
};
goog.html.SafeHtml.createSandboxIframe = function(a, b, c, d) {
if (!goog.html.SafeHtml.canUseSandboxIframe()) {
throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? "The browser does not support sandboxed iframes." : "");
}
var e = {};
e.src = a ? goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitize(a)) : null;
e.srcdoc = b || null;
e.sandbox = "";
a = goog.html.SafeHtml.combineAttributes(e, {}, c);
return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe", a, d);
};
goog.html.SafeHtml.canUseSandboxIframe = function() {
return goog.global.HTMLIFrameElement && "sandbox" in goog.global.HTMLIFrameElement.prototype;
};
goog.html.SafeHtml.createScriptSrc = function(a, b) {
goog.html.TrustedResourceUrl.unwrap(a);
var c = goog.html.SafeHtml.combineAttributes({src:a}, {}, b);
return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("script", c);
};
goog.html.SafeHtml.createScript = function(a, b) {
for (var c in b) {
var d = c.toLowerCase();
if ("language" == d || "src" == d || "text" == d || "type" == d) {
throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? 'Cannot set "' + d + '" attribute' : "");
}
}
c = "";
a = goog.array.concat(a);
for (d = 0; d < a.length; d++) {
c += goog.html.SafeScript.unwrap(a[d]);
}
c = goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(c, goog.i18n.bidi.Dir.NEUTRAL);
return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("script", b, c);
};
goog.html.SafeHtml.createStyle = function(a, b) {
var c = goog.html.SafeHtml.combineAttributes({type:"text/css"}, {}, b), d = "";
a = goog.array.concat(a);
for (var e = 0; e < a.length; e++) {
d += goog.html.SafeStyleSheet.unwrap(a[e]);
}
d = goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(d, goog.i18n.bidi.Dir.NEUTRAL);
return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("style", c, d);
};
goog.html.SafeHtml.createMetaRefresh = function(a, b) {
var c = goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitize(a));
(goog.labs.userAgent.browser.isIE() || goog.labs.userAgent.browser.isEdge()) && goog.string.internal.contains(c, ";") && (c = "'" + c.replace(/'/g, "%27") + "'");
return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("meta", {"http-equiv":"refresh", content:(b || 0) + "; url=" + c});
};
goog.html.SafeHtml.getAttrNameAndValue_ = function(a, b, c) {
if (c instanceof goog.string.Const) {
c = goog.string.Const.unwrap(c);
} else {
if ("style" == b.toLowerCase()) {
if (goog.html.SafeHtml.SUPPORT_STYLE_ATTRIBUTE) {
c = goog.html.SafeHtml.getStyleValue_(c);
} else {
throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? 'Attribute "style" not supported.' : "");
}
} else {
if (/^on/i.test(b)) {
throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? 'Attribute "' + b + '" requires goog.string.Const value, "' + c + '" given.' : "");
}
if (b.toLowerCase() in goog.html.SafeHtml.URL_ATTRIBUTES_) {
if (c instanceof goog.html.TrustedResourceUrl) {
c = goog.html.TrustedResourceUrl.unwrap(c);
} else {
if (c instanceof goog.html.SafeUrl) {
c = goog.html.SafeUrl.unwrap(c);
} else {
if ("string" === typeof c) {
c = goog.html.SafeUrl.sanitize(c).getTypedStringValue();
} else {
throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? 'Attribute "' + b + '" on tag "' + a + '" requires goog.html.SafeUrl, goog.string.Const, or string, value "' + c + '" given.' : "");
}
}
}
}
}
}
c.implementsGoogStringTypedString && (c = c.getTypedStringValue());
goog.asserts.assert("string" === typeof c || "number" === typeof c, "String or number value expected, got " + typeof c + " with value: " + c);
return b + '="' + goog.string.internal.htmlEscape(String(c)) + '"';
};
goog.html.SafeHtml.getStyleValue_ = function(a) {
if (!goog.isObject(a)) {
throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? 'The "style" attribute requires goog.html.SafeStyle or map of style properties, ' + typeof a + " given: " + a : "");
}
a instanceof goog.html.SafeStyle || (a = goog.html.SafeStyle.create(a));
return goog.html.SafeStyle.unwrap(a);
};
goog.html.SafeHtml.createWithDir = function(a, b, c, d) {
b = goog.html.SafeHtml.create(b, c, d);
b.dir_ = a;
return b;
};
goog.html.SafeHtml.join = function(a, b) {
var c = goog.html.SafeHtml.htmlEscape(a), d = c.getDirection(), e = [], f = function(a) {
goog.isArray(a) ? goog.array.forEach(a, f) : (a = goog.html.SafeHtml.htmlEscape(a), e.push(goog.html.SafeHtml.unwrap(a)), a = a.getDirection(), d == goog.i18n.bidi.Dir.NEUTRAL ? d = a : a != goog.i18n.bidi.Dir.NEUTRAL && d != a && (d = null));
};
goog.array.forEach(b, f);
return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(e.join(goog.html.SafeHtml.unwrap(c)), d);
};
goog.html.SafeHtml.concat = function(a) {
return goog.html.SafeHtml.join(goog.html.SafeHtml.EMPTY, Array.prototype.slice.call(arguments));
};
goog.html.SafeHtml.concatWithDir = function(a, b) {
var c = goog.html.SafeHtml.concat(goog.array.slice(arguments, 1));
c.dir_ = a;
return c;
};
goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = {};
goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse = function(a, b) {
return (new goog.html.SafeHtml).initSecurityPrivateDoNotAccessOrElse_(a, b);
};
goog.html.SafeHtml.prototype.initSecurityPrivateDoNotAccessOrElse_ = function(a, b) {
this.privateDoNotAccessOrElseSafeHtmlWrappedValue_ = goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY ? goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createHTML(a) : a;
this.dir_ = b;
return this;
};
goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse = function(a, b, c) {
var d = null;
var e = "<" + a + goog.html.SafeHtml.stringifyAttributes(a, b);
null == c ? c = [] : goog.isArray(c) || (c = [c]);
goog.dom.tags.isVoidTag(a.toLowerCase()) ? (goog.asserts.assert(!c.length, "Void tag <" + a + "> does not allow content."), e += ">") : (d = goog.html.SafeHtml.concat(c), e += ">" + goog.html.SafeHtml.unwrap(d) + "</" + a + ">", d = d.getDirection());
(a = b && b.dir) && (d = /^(ltr|rtl|auto)$/i.test(a) ? goog.i18n.bidi.Dir.NEUTRAL : null);
return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(e, d);
};
goog.html.SafeHtml.stringifyAttributes = function(a, b) {
var c = "";
if (b) {
for (var d in b) {
if (!goog.html.SafeHtml.VALID_NAMES_IN_TAG_.test(d)) {
throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? 'Invalid attribute name "' + d + '".' : "");
}
var e = b[d];
null != e && (c += " " + goog.html.SafeHtml.getAttrNameAndValue_(a, d, e));
}
}
return c;
};
goog.html.SafeHtml.combineAttributes = function(a, b, c) {
var d = {}, e;
for (e in a) {
goog.asserts.assert(e.toLowerCase() == e, "Must be lower case"), d[e] = a[e];
}
for (e in b) {
goog.asserts.assert(e.toLowerCase() == e, "Must be lower case"), d[e] = b[e];
}
if (c) {
for (e in c) {
var f = e.toLowerCase();
if (f in a) {
throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? 'Cannot override "' + f + '" attribute, got "' + e + '" with value "' + c[e] + '"' : "");
}
f in b && delete d[f];
d[e] = c[e];
}
}
return d;
};
goog.html.SafeHtml.DOCTYPE_HTML = goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("<!DOCTYPE html>", goog.i18n.bidi.Dir.NEUTRAL);
goog.html.SafeHtml.EMPTY = goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("", goog.i18n.bidi.Dir.NEUTRAL);
goog.html.SafeHtml.BR = goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("<br>", goog.i18n.bidi.Dir.NEUTRAL);
goog.html.uncheckedconversions = {};
goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract = function(a, b, c) {
goog.asserts.assertString(goog.string.Const.unwrap(a), "must provide justification");
goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)), "must provide non-empty justification");
return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(b, c || null);
};
goog.html.uncheckedconversions.safeScriptFromStringKnownToSatisfyTypeContract = function(a, b) {
goog.asserts.assertString(goog.string.Const.unwrap(a), "must provide justification");
goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)), "must provide non-empty justification");
return goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(b);
};
goog.html.uncheckedconversions.safeStyleFromStringKnownToSatisfyTypeContract = function(a, b) {
goog.asserts.assertString(goog.string.Const.unwrap(a), "must provide justification");
goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)), "must provide non-empty justification");
return goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(b);
};
goog.html.uncheckedconversions.safeStyleSheetFromStringKnownToSatisfyTypeContract = function(a, b) {
goog.asserts.assertString(goog.string.Const.unwrap(a), "must provide justification");
goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)), "must provide non-empty justification");
return goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(b);
};
goog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract = function(a, b) {
goog.asserts.assertString(goog.string.Const.unwrap(a), "must provide justification");
goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)), "must provide non-empty justification");
return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b);
};
goog.html.uncheckedconversions.trustedResourceUrlFromStringKnownToSatisfyTypeContract = function(a, b) {
goog.asserts.assertString(goog.string.Const.unwrap(a), "must provide justification");
goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)), "must provide non-empty justification");
return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(b);
};
goog.dom.safe = {};
goog.dom.safe.InsertAdjacentHtmlPosition = {AFTERBEGIN:"afterbegin", AFTEREND:"afterend", BEFOREBEGIN:"beforebegin", BEFOREEND:"beforeend"};
goog.dom.safe.insertAdjacentHtml = function(a, b, c) {
a.insertAdjacentHTML(b, goog.html.SafeHtml.unwrapTrustedHTML(c));
};
goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_ = {MATH:!0, SCRIPT:!0, STYLE:!0, SVG:!0, TEMPLATE:!0};
goog.dom.safe.isInnerHtmlCleanupRecursive_ = goog.functions.cacheReturnValue(function() {
if (goog.DEBUG && "undefined" === typeof document) {
return !1;
}
var a = document.createElement("div"), b = document.createElement("div");
b.appendChild(document.createElement("div"));
a.appendChild(b);
if (goog.DEBUG && !a.firstChild) {
return !1;
}
b = a.firstChild.firstChild;
a.innerHTML = goog.html.SafeHtml.unwrapTrustedHTML(goog.html.SafeHtml.EMPTY);
return !b.parentElement;
});
goog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse = function(a, b) {
if (goog.dom.safe.isInnerHtmlCleanupRecursive_()) {
for (; a.lastChild;) {
a.removeChild(a.lastChild);
}
}
a.innerHTML = goog.html.SafeHtml.unwrapTrustedHTML(b);
};
goog.dom.safe.setInnerHtml = function(a, b) {
if (goog.asserts.ENABLE_ASSERTS) {
var c = a.tagName.toUpperCase();
if (goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_[c]) {
throw Error("goog.dom.safe.setInnerHtml cannot be used to set content of " + a.tagName + ".");
}
}
goog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse(a, b);
};
goog.dom.safe.setOuterHtml = function(a, b) {
a.outerHTML = goog.html.SafeHtml.unwrapTrustedHTML(b);
};
goog.dom.safe.setFormElementAction = function(a, b) {
var c = b instanceof goog.html.SafeUrl ? b : goog.html.SafeUrl.sanitizeAssertUnchanged(b);
goog.dom.asserts.assertIsHTMLFormElement(a).action = goog.html.SafeUrl.unwrapTrustedURL(c);
};
goog.dom.safe.setButtonFormAction = function(a, b) {
var c = b instanceof goog.html.SafeUrl ? b : goog.html.SafeUrl.sanitizeAssertUnchanged(b);
goog.dom.asserts.assertIsHTMLButtonElement(a).formAction = goog.html.SafeUrl.unwrapTrustedURL(c);
};
goog.dom.safe.setInputFormAction = function(a, b) {
var c = b instanceof goog.html.SafeUrl ? b : goog.html.SafeUrl.sanitizeAssertUnchanged(b);
goog.dom.asserts.assertIsHTMLInputElement(a).formAction = goog.html.SafeUrl.unwrapTrustedURL(c);
};
goog.dom.safe.setStyle = function(a, b) {
a.style.cssText = goog.html.SafeStyle.unwrap(b);
};
goog.dom.safe.documentWrite = function(a, b) {
a.write(goog.html.SafeHtml.unwrapTrustedHTML(b));
};
goog.dom.safe.setAnchorHref = function(a, b) {
goog.dom.asserts.assertIsHTMLAnchorElement(a);
var c = b instanceof goog.html.SafeUrl ? b : goog.html.SafeUrl.sanitizeAssertUnchanged(b);
a.href = goog.html.SafeUrl.unwrapTrustedURL(c);
};
goog.dom.safe.setImageSrc = function(a, b) {
goog.dom.asserts.assertIsHTMLImageElement(a);
if (b instanceof goog.html.SafeUrl) {
var c = b;
} else {
c = /^data:image\//i.test(b), c = goog.html.SafeUrl.sanitizeAssertUnchanged(b, c);
}
a.src = goog.html.SafeUrl.unwrapTrustedURL(c);
};
goog.dom.safe.setAudioSrc = function(a, b) {
goog.dom.asserts.assertIsHTMLAudioElement(a);
if (b instanceof goog.html.SafeUrl) {
var c = b;
} else {
c = /^data:audio\//i.test(b), c = goog.html.SafeUrl.sanitizeAssertUnchanged(b, c);
}
a.src = goog.html.SafeUrl.unwrapTrustedURL(c);
};
goog.dom.safe.setVideoSrc = function(a, b) {
goog.dom.asserts.assertIsHTMLVideoElement(a);
if (b instanceof goog.html.SafeUrl) {
var c = b;
} else {
c = /^data:video\//i.test(b), c = goog.html.SafeUrl.sanitizeAssertUnchanged(b, c);
}
a.src = goog.html.SafeUrl.unwrapTrustedURL(c);
};
goog.dom.safe.setEmbedSrc = function(a, b) {
goog.dom.asserts.assertIsHTMLEmbedElement(a);
a.src = goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(b);
};
goog.dom.safe.setFrameSrc = function(a, b) {
goog.dom.asserts.assertIsHTMLFrameElement(a);
a.src = goog.html.TrustedResourceUrl.unwrapTrustedURL(b);
};
goog.dom.safe.setIframeSrc = function(a, b) {
goog.dom.asserts.assertIsHTMLIFrameElement(a);
a.src = goog.html.TrustedResourceUrl.unwrapTrustedURL(b);
};
goog.dom.safe.setIframeSrcdoc = function(a, b) {
goog.dom.asserts.assertIsHTMLIFrameElement(a);
a.srcdoc = goog.html.SafeHtml.unwrapTrustedHTML(b);
};
goog.dom.safe.setLinkHrefAndRel = function(a, b, c) {
goog.dom.asserts.assertIsHTMLLinkElement(a);
a.rel = c;
goog.string.internal.caseInsensitiveContains(c, "stylesheet") ? (goog.asserts.assert(b instanceof goog.html.TrustedResourceUrl, 'URL must be TrustedResourceUrl because "rel" contains "stylesheet"'), a.href = goog.html.TrustedResourceUrl.unwrapTrustedURL(b)) : a.href = b instanceof goog.html.TrustedResourceUrl ? goog.html.TrustedResourceUrl.unwrapTrustedURL(b) : b instanceof goog.html.SafeUrl ? goog.html.SafeUrl.unwrapTrustedURL(b) : goog.html.SafeUrl.unwrapTrustedURL(goog.html.SafeUrl.sanitizeAssertUnchanged(b));
};
goog.dom.safe.setObjectData = function(a, b) {
goog.dom.asserts.assertIsHTMLObjectElement(a);
a.data = goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(b);
};
goog.dom.safe.setScriptSrc = function(a, b) {
goog.dom.asserts.assertIsHTMLScriptElement(a);
a.src = goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(b);
var c = goog.getScriptNonce();
c && a.setAttribute("nonce", c);
};
goog.dom.safe.setScriptContent = function(a, b) {
goog.dom.asserts.assertIsHTMLScriptElement(a);
a.text = goog.html.SafeScript.unwrapTrustedScript(b);
var c = goog.getScriptNonce();
c && a.setAttribute("nonce", c);
};
goog.dom.safe.setLocationHref = function(a, b) {
goog.dom.asserts.assertIsLocation(a);
var c = b instanceof goog.html.SafeUrl ? b : goog.html.SafeUrl.sanitizeAssertUnchanged(b);
a.href = goog.html.SafeUrl.unwrapTrustedURL(c);
};
goog.dom.safe.assignLocation = function(a, b) {
goog.dom.asserts.assertIsLocation(a);
var c = b instanceof goog.html.SafeUrl ? b : goog.html.SafeUrl.sanitizeAssertUnchanged(b);
a.assign(goog.html.SafeUrl.unwrapTrustedURL(c));
};
goog.dom.safe.replaceLocation = function(a, b) {
goog.dom.asserts.assertIsLocation(a);
var c = b instanceof goog.html.SafeUrl ? b : goog.html.SafeUrl.sanitizeAssertUnchanged(b);
a.replace(goog.html.SafeUrl.unwrapTrustedURL(c));
};
goog.dom.safe.openInWindow = function(a, b, c, d, e) {
a = a instanceof goog.html.SafeUrl ? a : goog.html.SafeUrl.sanitizeAssertUnchanged(a);
return (b || goog.global).open(goog.html.SafeUrl.unwrapTrustedURL(a), c ? goog.string.Const.unwrap(c) : "", d, e);
};
goog.dom.safe.parseFromStringHtml = function(a, b) {
return goog.dom.safe.parseFromString(a, b, "text/html");
};
goog.dom.safe.parseFromString = function(a, b, c) {
return a.parseFromString(goog.html.SafeHtml.unwrapTrustedHTML(b), c);
};
goog.dom.safe.createImageFromBlob = function(a) {
if (!/^image\/.*/g.test(a.type)) {
throw Error("goog.dom.safe.createImageFromBlob only accepts MIME type image/.*.");
}
var b = goog.global.URL.createObjectURL(a);
a = new goog.global.Image;
a.onload = function() {
goog.global.URL.revokeObjectURL(b);
};
goog.dom.safe.setImageSrc(a, goog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("Image blob URL."), b));
return a;
};
goog.string.DETECT_DOUBLE_ESCAPING = !1;
goog.string.FORCE_NON_DOM_HTML_UNESCAPING = !1;
goog.string.Unicode = {NBSP:"\u00a0"};
goog.string.startsWith = goog.string.internal.startsWith;
goog.string.endsWith = goog.string.internal.endsWith;
goog.string.caseInsensitiveStartsWith = goog.string.internal.caseInsensitiveStartsWith;
goog.string.caseInsensitiveEndsWith = goog.string.internal.caseInsensitiveEndsWith;
goog.string.caseInsensitiveEquals = goog.string.internal.caseInsensitiveEquals;
goog.string.subs = function(a, b) {
for (var c = a.split("%s"), d = "", e = Array.prototype.slice.call(arguments, 1); e.length && 1 < c.length;) {
d += c.shift() + e.shift();
}
return d + c.join("%s");
};
goog.string.collapseWhitespace = function(a) {
return a.replace(/[\s\xa0]+/g, " ").replace(/^\s+|\s+$/g, "");
};
goog.string.isEmptyOrWhitespace = goog.string.internal.isEmptyOrWhitespace;
goog.string.isEmptyString = function(a) {
return 0 == a.length;
};
goog.string.isEmpty = goog.string.isEmptyOrWhitespace;
goog.string.isEmptyOrWhitespaceSafe = function(a) {
return goog.string.isEmptyOrWhitespace(goog.string.makeSafe(a));
};
goog.string.isEmptySafe = goog.string.isEmptyOrWhitespaceSafe;
goog.string.isBreakingWhitespace = function(a) {
return !/[^\t\n\r ]/.test(a);
};
goog.string.isAlpha = function(a) {
return !/[^a-zA-Z]/.test(a);
};
goog.string.isNumeric = function(a) {
return !/[^0-9]/.test(a);
};
goog.string.isAlphaNumeric = function(a) {
return !/[^a-zA-Z0-9]/.test(a);
};
goog.string.isSpace = function(a) {
return " " == a;
};
goog.string.isUnicodeChar = function(a) {
return 1 == a.length && " " <= a && "~" >= a || "\u0080" <= a && "\ufffd" >= a;
};
goog.string.stripNewlines = function(a) {
return a.replace(/(\r\n|\r|\n)+/g, " ");
};
goog.string.canonicalizeNewlines = function(a) {
return a.replace(/(\r\n|\r|\n)/g, "\n");
};
goog.string.normalizeWhitespace = function(a) {
return a.replace(/\xa0|\s/g, " ");
};
goog.string.normalizeSpaces = function(a) {
return a.replace(/\xa0|[ \t]+/g, " ");
};
goog.string.collapseBreakingSpaces = function(a) {
return a.replace(/[\t\r\n ]+/g, " ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g, "");
};
goog.string.trim = goog.string.internal.trim;
goog.string.trimLeft = function(a) {
return a.replace(/^[\s\xa0]+/, "");
};
goog.string.trimRight = function(a) {
return a.replace(/[\s\xa0]+$/, "");
};
goog.string.caseInsensitiveCompare = goog.string.internal.caseInsensitiveCompare;
goog.string.numberAwareCompare_ = function(a, b, c) {
if (a == b) {
return 0;
}
if (!a) {
return -1;
}
if (!b) {
return 1;
}
for (var d = a.toLowerCase().match(c), e = b.toLowerCase().match(c), f = Math.min(d.length, e.length), g = 0; g < f; g++) {
c = d[g];
var h = e[g];
if (c != h) {
return a = parseInt(c, 10), !isNaN(a) && (b = parseInt(h, 10), !isNaN(b) && a - b) ? a - b : c < h ? -1 : 1;
}
}
return d.length != e.length ? d.length - e.length : a < b ? -1 : 1;
};
goog.string.intAwareCompare = function(a, b) {
return goog.string.numberAwareCompare_(a, b, /\d+|\D+/g);
};
goog.string.floatAwareCompare = function(a, b) {
return goog.string.numberAwareCompare_(a, b, /\d+|\.\d+|\D+/g);
};
goog.string.numerateCompare = goog.string.floatAwareCompare;
goog.string.urlEncode = function(a) {
return encodeURIComponent(String(a));
};
goog.string.urlDecode = function(a) {
return decodeURIComponent(a.replace(/\+/g, " "));
};
goog.string.newLineToBr = goog.string.internal.newLineToBr;
goog.string.htmlEscape = function(a, b) {
a = goog.string.internal.htmlEscape(a, b);
goog.string.DETECT_DOUBLE_ESCAPING && (a = a.replace(goog.string.E_RE_, "e"));
return a;
};
goog.string.E_RE_ = /e/g;
goog.string.unescapeEntities = function(a) {
return goog.string.contains(a, "&") ? !goog.string.FORCE_NON_DOM_HTML_UNESCAPING && "document" in goog.global ? goog.string.unescapeEntitiesUsingDom_(a) : goog.string.unescapePureXmlEntities_(a) : a;
};
goog.string.unescapeEntitiesWithDocument = function(a, b) {
return goog.string.contains(a, "&") ? goog.string.unescapeEntitiesUsingDom_(a, b) : a;
};
goog.string.unescapeEntitiesUsingDom_ = function(a, b) {
var c = {"&":"&", "<":"<", ">":">", """:'"'};
var d = b ? b.createElement("div") : goog.global.document.createElement("div");
return a.replace(goog.string.HTML_ENTITY_PATTERN_, function(a, b) {
var e = c[a];
if (e) {
return e;
}
if ("#" == b.charAt(0)) {
var f = Number("0" + b.substr(1));
isNaN(f) || (e = String.fromCharCode(f));
}
e || (goog.dom.safe.setInnerHtml(d, goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("Single HTML entity."), a + " ")), e = d.firstChild.nodeValue.slice(0, -1));
return c[a] = e;
});
};
goog.string.unescapePureXmlEntities_ = function(a) {
return a.replace(/&([^;]+);/g, function(a, c) {
switch(c) {
case "amp":
return "&";
case "lt":
return "<";
case "gt":
return ">";
case "quot":
return '"';
default:
if ("#" == c.charAt(0)) {
var b = Number("0" + c.substr(1));
if (!isNaN(b)) {
return String.fromCharCode(b);
}
}
return a;
}
});
};
goog.string.HTML_ENTITY_PATTERN_ = /&([^;\s<&]+);?/g;
goog.string.whitespaceEscape = function(a, b) {
return goog.string.newLineToBr(a.replace(/ /g, "  "), b);
};
goog.string.preserveSpaces = function(a) {
return a.replace(/(^|[\n ]) /g, "$1" + goog.string.Unicode.NBSP);
};
goog.string.stripQuotes = function(a, b) {
for (var c = b.length, d = 0; d < c; d++) {
var e = 1 == c ? b : b.charAt(d);
if (a.charAt(0) == e && a.charAt(a.length - 1) == e) {
return a.substring(1, a.length - 1);
}
}
return a;
};
goog.string.truncate = function(a, b, c) {
c && (a = goog.string.unescapeEntities(a));
a.length > b && (a = a.substring(0, b - 3) + "...");
c && (a = goog.string.htmlEscape(a));
return a;
};
goog.string.truncateMiddle = function(a, b, c, d) {
c && (a = goog.string.unescapeEntities(a));
if (d && a.length > b) {
d > b && (d = b);
var e = a.length - d;
a = a.substring(0, b - d) + "..." + a.substring(e);
} else {
a.length > b && (d = Math.floor(b / 2), e = a.length - d, a = a.substring(0, d + b % 2) + "..." + a.substring(e));
}
c && (a = goog.string.htmlEscape(a));
return a;
};
goog.string.specialEscapeChars_ = {"\x00":"\\0", "\b":"\\b", "\f":"\\f", "\n":"\\n", "\r":"\\r", "\t":"\\t", "\x0B":"\\x0B", '"':'\\"', "\\":"\\\\", "<":"\\u003C"};
goog.string.jsEscapeCache_ = {"'":"\\'"};
goog.string.quote = function(a) {
a = String(a);
for (var b = ['"'], c = 0; c < a.length; c++) {
var d = a.charAt(c), e = d.charCodeAt(0);
b[c + 1] = goog.string.specialEscapeChars_[d] || (31 < e && 127 > e ? d : goog.string.escapeChar(d));
}
b.push('"');
return b.join("");
};
goog.string.escapeString = function(a) {
for (var b = [], c = 0; c < a.length; c++) {
b[c] = goog.string.escapeChar(a.charAt(c));
}
return b.join("");
};
goog.string.escapeChar = function(a) {
if (a in goog.string.jsEscapeCache_) {
return goog.string.jsEscapeCache_[a];
}
if (a in goog.string.specialEscapeChars_) {
return goog.string.jsEscapeCache_[a] = goog.string.specialEscapeChars_[a];
}
var b = a.charCodeAt(0);
if (31 < b && 127 > b) {
var c = a;
} else {
if (256 > b) {
if (c = "\\x", 16 > b || 256 < b) {
c += "0";
}
} else {
c = "\\u", 4096 > b && (c += "0");
}
c += b.toString(16).toUpperCase();
}
return goog.string.jsEscapeCache_[a] = c;
};
goog.string.contains = goog.string.internal.contains;
goog.string.caseInsensitiveContains = goog.string.internal.caseInsensitiveContains;
goog.string.countOf = function(a, b) {
return a && b ? a.split(b).length - 1 : 0;
};
goog.string.removeAt = function(a, b, c) {
var d = a;
0 <= b && b < a.length && 0 < c && (d = a.substr(0, b) + a.substr(b + c, a.length - b - c));
return d;
};
goog.string.remove = function(a, b) {
return a.replace(b, "");
};
goog.string.removeAll = function(a, b) {
var c = new RegExp(goog.string.regExpEscape(b), "g");
return a.replace(c, "");
};
goog.string.replaceAll = function(a, b, c) {
b = new RegExp(goog.string.regExpEscape(b), "g");
return a.replace(b, c.replace(/\$/g, "$$$$"));
};
goog.string.regExpEscape = function(a) {
return String(a).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g, "\\$1").replace(/\x08/g, "\\x08");
};
goog.string.repeat = String.prototype.repeat ? function(a, b) {
return a.repeat(b);
} : function(a, b) {
return Array(b + 1).join(a);
};
goog.string.padNumber = function(a, b, c) {
a = void 0 !== c ? a.toFixed(c) : String(a);
c = a.indexOf(".");
-1 == c && (c = a.length);
return goog.string.repeat("0", Math.max(0, b - c)) + a;
};
goog.string.makeSafe = function(a) {
return null == a ? "" : String(a);
};
goog.string.buildString = function(a) {
return Array.prototype.join.call(arguments, "");
};
goog.string.getRandomString = function() {
return Math.floor(2147483648 * Math.random()).toString(36) + Math.abs(Math.floor(2147483648 * Math.random()) ^ goog.now()).toString(36);
};
goog.string.compareVersions = goog.string.internal.compareVersions;
goog.string.hashCode = function(a) {
for (var b = 0, c = 0; c < a.length; ++c) {
b = 31 * b + a.charCodeAt(c) >>> 0;
}
return b;
};
goog.string.uniqueStringCounter_ = 2147483648 * Math.random() | 0;
goog.string.createUniqueString = function() {
return "goog_" + goog.string.uniqueStringCounter_++;
};
goog.string.toNumber = function(a) {
var b = Number(a);
return 0 == b && goog.string.isEmptyOrWhitespace(a) ? NaN : b;
};
goog.string.isLowerCamelCase = function(a) {
return /^[a-z]+([A-Z][a-z]*)*$/.test(a);
};
goog.string.isUpperCamelCase = function(a) {
return /^([A-Z][a-z]*)+$/.test(a);
};
goog.string.toCamelCase = function(a) {
return String(a).replace(/\-([a-z])/g, function(a, c) {
return c.toUpperCase();
});
};
goog.string.toSelectorCase = function(a) {
return String(a).replace(/([A-Z])/g, "-$1").toLowerCase();
};
goog.string.toTitleCase = function(a, b) {
var c = "string" === typeof b ? goog.string.regExpEscape(b) : "\\s";
return a.replace(new RegExp("(^" + (c ? "|[" + c + "]+" : "") + ")([a-z])", "g"), function(a, b, c) {
return b + c.toUpperCase();
});
};
goog.string.capitalize = function(a) {
return String(a.charAt(0)).toUpperCase() + String(a.substr(1)).toLowerCase();
};
goog.string.parseInt = function(a) {
isFinite(a) && (a = String(a));
return "string" === typeof a ? /^\s*-?0x/i.test(a) ? parseInt(a, 16) : parseInt(a, 10) : NaN;
};
goog.string.splitLimit = function(a, b, c) {
a = a.split(b);
for (var d = []; 0 < c && a.length;) {
d.push(a.shift()), c--;
}
a.length && d.push(a.join(b));
return d;
};
goog.string.lastComponent = function(a, b) {
if (b) {
"string" == typeof b && (b = [b]);
} else {
return a;
}
for (var c = -1, d = 0; d < b.length; d++) {
if ("" != b[d]) {
var e = a.lastIndexOf(b[d]);
e > c && (c = e);
}
}
return -1 == c ? a : a.slice(c + 1);
};
goog.string.editDistance = function(a, b) {
var c = [], d = [];
if (a == b) {
return 0;
}
if (!a.length || !b.length) {
return Math.max(a.length, b.length);
}
for (var e = 0; e < b.length + 1; e++) {
c[e] = e;
}
for (e = 0; e < a.length; e++) {
d[0] = e + 1;
for (var f = 0; f < b.length; f++) {
d[f + 1] = Math.min(d[f] + 1, c[f + 1] + 1, c[f] + Number(a[e] != b[f]));
}
for (f = 0; f < c.length; f++) {
c[f] = d[f];
}
}
return d[b.length];
};
goog.proto2 = {};
goog.proto2.FieldDescriptor = function(a, b, c) {
this.parent_ = a;
goog.asserts.assert(goog.string.isNumeric(b));
this.tag_ = b;
this.name_ = c.name;
this.isPacked_ = !!c.packed;
this.isRepeated_ = !!c.repeated;
this.isRequired_ = !!c.required;
this.fieldType_ = c.fieldType;
this.nativeType_ = c.type;
this.deserializationConversionPermitted_ = !1;
switch(this.fieldType_) {
case goog.proto2.FieldDescriptor.FieldType.INT64:
case goog.proto2.FieldDescriptor.FieldType.UINT64:
case goog.proto2.FieldDescriptor.FieldType.FIXED64:
case goog.proto2.FieldDescriptor.FieldType.SFIXED64:
case goog.proto2.FieldDescriptor.FieldType.SINT64:
case goog.proto2.FieldDescriptor.FieldType.FLOAT:
case goog.proto2.FieldDescriptor.FieldType.DOUBLE:
this.deserializationConversionPermitted_ = !0;
}
this.defaultValue_ = c.defaultValue;
};
goog.proto2.FieldDescriptor.FieldType = {DOUBLE:1, FLOAT:2, INT64:3, UINT64:4, INT32:5, FIXED64:6, FIXED32:7, BOOL:8, STRING:9, GROUP:10, MESSAGE:11, BYTES:12, UINT32:13, ENUM:14, SFIXED32:15, SFIXED64:16, SINT32:17, SINT64:18};
goog.proto2.FieldDescriptor.prototype.getTag = function() {
return this.tag_;
};
goog.proto2.FieldDescriptor.prototype.getContainingType = function() {
return this.parent_.prototype.getDescriptor();
};
goog.proto2.FieldDescriptor.prototype.getName = function() {
return this.name_;
};
goog.proto2.FieldDescriptor.prototype.getDefaultValue = function() {
if (void 0 === this.defaultValue_) {
var a = this.nativeType_;
if (a === Boolean) {
this.defaultValue_ = !1;
} else {
if (a === Number) {
this.defaultValue_ = 0;
} else {
if (a === String) {
this.defaultValue_ = this.deserializationConversionPermitted_ ? "0" : "";
} else {
return new a;
}
}
}
}
return this.defaultValue_;
};
goog.proto2.FieldDescriptor.prototype.getFieldType = function() {
return this.fieldType_;
};
goog.proto2.FieldDescriptor.prototype.getNativeType = function() {
return this.nativeType_;
};
goog.proto2.FieldDescriptor.prototype.deserializationConversionPermitted = function() {
return this.deserializationConversionPermitted_;
};
goog.proto2.FieldDescriptor.prototype.getFieldMessageType = function() {
return this.nativeType_.prototype.getDescriptor();
};
goog.proto2.FieldDescriptor.prototype.isCompositeType = function() {
return this.fieldType_ == goog.proto2.FieldDescriptor.FieldType.MESSAGE || this.fieldType_ == goog.proto2.FieldDescriptor.FieldType.GROUP;
};
goog.proto2.FieldDescriptor.prototype.isPacked = function() {
return this.isPacked_;
};
goog.proto2.FieldDescriptor.prototype.isRepeated = function() {
return this.isRepeated_;
};
goog.proto2.FieldDescriptor.prototype.isRequired = function() {
return this.isRequired_;
};
goog.proto2.FieldDescriptor.prototype.isOptional = function() {
return !this.isRepeated_ && !this.isRequired_;
};
goog.proto2.Descriptor = function(a, b, c) {
this.messageType_ = a;
this.name_ = b.name || null;
this.fullName_ = b.fullName || null;
this.containingType_ = b.containingType;
this.fields_ = {};
for (a = 0; a < c.length; a++) {
b = c[a], this.fields_[b.getTag()] = b;
}
};
goog.proto2.Descriptor.prototype.getName = function() {
return this.name_;
};
goog.proto2.Descriptor.prototype.getFullName = function() {
return this.fullName_;
};
goog.proto2.Descriptor.prototype.getContainingType = function() {
return this.containingType_ ? this.containingType_.getDescriptor() : null;
};
goog.proto2.Descriptor.prototype.getFields = function() {
var a = goog.object.getValues(this.fields_);
goog.array.sort(a, function(a, c) {
return a.getTag() - c.getTag();
});
return a;
};
goog.proto2.Descriptor.prototype.getFieldsMap = function() {
return this.fields_;
};
goog.proto2.Descriptor.prototype.findFieldByName = function(a) {
return goog.object.findValue(this.fields_, function(b, c, d) {
return b.getName() == a;
}) || null;
};
goog.proto2.Descriptor.prototype.findFieldByTag = function(a) {
goog.asserts.assert(goog.string.isNumeric(a));
return this.fields_[parseInt(a, 10)] || null;
};
goog.proto2.Descriptor.prototype.createMessageInstance = function() {
return new this.messageType_;
};
goog.proto2.Message = function() {
this.values_ = {};
this.fields_ = this.getDescriptor().getFieldsMap();
this.deserializedFields_ = this.lazyDeserializer_ = null;
};
goog.proto2.Message.FieldType = {DOUBLE:1, FLOAT:2, INT64:3, UINT64:4, INT32:5, FIXED64:6, FIXED32:7, BOOL:8, STRING:9, GROUP:10, MESSAGE:11, BYTES:12, UINT32:13, ENUM:14, SFIXED32:15, SFIXED64:16, SINT32:17, SINT64:18};
goog.proto2.Message.prototype.initializeForLazyDeserializer = function(a, b) {
this.lazyDeserializer_ = a;
this.values_ = b;
this.deserializedFields_ = {};
};
goog.proto2.Message.prototype.setUnknown = function(a, b) {
goog.asserts.assert(!this.fields_[a], "Field is not unknown in this message");
goog.asserts.assert(1 <= a, "Tag " + a + ' has value "' + b + '" in descriptor ' + this.getDescriptor().getName());
goog.asserts.assert(null !== b, "Value cannot be null");
this.values_[a] = b;
this.deserializedFields_ && delete this.deserializedFields_[a];
};
goog.proto2.Message.prototype.forEachUnknown = function(a, b) {
var c = b || this, d;
for (d in this.values_) {
var e = Number(d);
this.fields_[e] || a.call(c, e, this.values_[d]);
}
};
goog.proto2.Message.prototype.getDescriptor = goog.abstractMethod;
goog.proto2.Message.prototype.has = function(a) {
goog.asserts.assert(a.getContainingType() == this.getDescriptor(), "The current message does not contain the given field");
return this.has$Value(a.getTag());
};
goog.proto2.Message.prototype.arrayOf = function(a) {
goog.asserts.assert(a.getContainingType() == this.getDescriptor(), "The current message does not contain the given field");
return this.array$Values(a.getTag());
};
goog.proto2.Message.prototype.countOf = function(a) {
goog.asserts.assert(a.getContainingType() == this.getDescriptor(), "The current message does not contain the given field");
return this.count$Values(a.getTag());
};
goog.proto2.Message.prototype.get = function(a, b) {
goog.asserts.assert(a.getContainingType() == this.getDescriptor(), "The current message does not contain the given field");
return this.get$Value(a.getTag(), b);
};
goog.proto2.Message.prototype.getOrDefault = function(a, b) {
goog.asserts.assert(a.getContainingType() == this.getDescriptor(), "The current message does not contain the given field");
return this.get$ValueOrDefault(a.getTag(), b);
};
goog.proto2.Message.prototype.set = function(a, b) {
goog.asserts.assert(a.getContainingType() == this.getDescriptor(), "The current message does not contain the given field");
this.set$Value(a.getTag(), b);
};
goog.proto2.Message.prototype.add = function(a, b) {
goog.asserts.assert(a.getContainingType() == this.getDescriptor(), "The current message does not contain the given field");
this.add$Value(a.getTag(), b);
};
goog.proto2.Message.prototype.clear = function(a) {
goog.asserts.assert(a.getContainingType() == this.getDescriptor(), "The current message does not contain the given field");
this.clear$Field(a.getTag());
};
goog.proto2.Message.prototype.equals = function(a) {
if (!a || this.constructor != a.constructor) {
return !1;
}
for (var b = this.getDescriptor().getFields(), c = 0; c < b.length; c++) {
var d = b[c], e = d.getTag();
if (this.has$Value(e) != a.has$Value(e)) {
return !1;
}
if (this.has$Value(e)) {
var f = d.isCompositeType(), g = this.getValueForTag_(e);
e = a.getValueForTag_(e);
if (d.isRepeated()) {
if (g.length != e.length) {
return !1;
}
for (d = 0; d < g.length; d++) {
var h = g[d], k = e[d];
if (f ? !h.equals(k) : h != k) {
return !1;
}
}
} else {
if (f ? !g.equals(e) : g != e) {
return !1;
}
}
}
}
return !0;
};
goog.proto2.Message.prototype.copyFrom = function(a) {
goog.asserts.assert(this.constructor == a.constructor, "The source message must have the same type.");
this != a && (this.values_ = {}, this.deserializedFields_ && (this.deserializedFields_ = {}), this.mergeFrom(a));
};
goog.proto2.Message.prototype.mergeFrom = function(a) {
goog.asserts.assert(this.constructor == a.constructor, "The source message must have the same type.");
for (var b = this.getDescriptor().getFields(), c = 0; c < b.length; c++) {
var d = b[c], e = d.getTag();
if (a.has$Value(e)) {
this.deserializedFields_ && delete this.deserializedFields_[d.getTag()];
var f = d.isCompositeType();
if (d.isRepeated()) {
d = a.array$Values(e);
for (var g = 0; g < d.length; g++) {
this.add$Value(e, f ? d[g].clone() : d[g]);
}
} else {
d = a.getValueForTag_(e), f ? (f = this.getValueForTag_(e)) ? f.mergeFrom(d) : this.set$Value(e, d.clone()) : this.set$Value(e, d);
}
}
}
};
goog.proto2.Message.prototype.clone = function() {
var a = new this.constructor;
a.copyFrom(this);
return a;
};
goog.proto2.Message.prototype.initDefaults = function(a) {
for (var b = this.getDescriptor().getFields(), c = 0; c < b.length; c++) {
var d = b[c], e = d.getTag(), f = d.isCompositeType();
this.has$Value(e) || d.isRepeated() || (f ? this.values_[e] = new (d.getNativeType()) : a && (this.values_[e] = d.getDefaultValue()));
if (f) {
if (d.isRepeated()) {
for (d = this.array$Values(e), e = 0; e < d.length; e++) {
d[e].initDefaults(a);
}
} else {
this.get$Value(e).initDefaults(a);
}
}
}
};
goog.proto2.Message.prototype.has$Value = function(a) {
return null != this.values_[a];
};
goog.proto2.Message.prototype.getValueForTag_ = function(a) {
var b = this.values_[a];
return null == b ? null : this.lazyDeserializer_ ? a in this.deserializedFields_ ? this.deserializedFields_[a] : (b = this.lazyDeserializer_.deserializeField(this, this.fields_[a], b), this.deserializedFields_[a] = b) : b;
};
goog.proto2.Message.prototype.get$Value = function(a, b) {
var c = this.getValueForTag_(a);
if (this.fields_[a].isRepeated()) {
var d = b || 0;
goog.asserts.assert(0 <= d && d < c.length, "Given index %s is out of bounds. Repeated field length: %s", d, c.length);
return c[d];
}
return c;
};
goog.proto2.Message.prototype.get$ValueOrDefault = function(a, b) {
return this.has$Value(a) ? this.get$Value(a, b) : this.fields_[a].getDefaultValue();
};
goog.proto2.Message.prototype.array$Values = function(a) {
return this.getValueForTag_(a) || [];
};
goog.proto2.Message.prototype.count$Values = function(a) {
return this.fields_[a].isRepeated() ? this.has$Value(a) ? this.values_[a].length : 0 : this.has$Value(a) ? 1 : 0;
};
goog.proto2.Message.prototype.set$Value = function(a, b) {
goog.asserts.ENABLE_ASSERTS && this.checkFieldType_(this.fields_[a], b);
this.values_[a] = b;
this.deserializedFields_ && (this.deserializedFields_[a] = b);
};
goog.proto2.Message.prototype.add$Value = function(a, b) {
goog.asserts.ENABLE_ASSERTS && this.checkFieldType_(this.fields_[a], b);
this.values_[a] || (this.values_[a] = []);
this.values_[a].push(b);
this.deserializedFields_ && delete this.deserializedFields_[a];
};
goog.proto2.Message.prototype.checkFieldType_ = function(a, b) {
a.getFieldType() == goog.proto2.FieldDescriptor.FieldType.ENUM ? goog.asserts.assertNumber(b) : goog.asserts.assert(Object(b).constructor == a.getNativeType());
};
goog.proto2.Message.prototype.clear$Field = function(a) {
delete this.values_[a];
this.deserializedFields_ && delete this.deserializedFields_[a];
};
goog.proto2.Message.createDescriptor = function(a, b) {
var c = [], d = b[0], e;
for (e in b) {
0 != e && c.push(new goog.proto2.FieldDescriptor(a, e, b[e]));
}
return new goog.proto2.Descriptor(a, d, c);
};
goog.proto2.Serializer = function() {
};
goog.proto2.Serializer.DECODE_SYMBOLIC_ENUMS = !1;
goog.proto2.Serializer.prototype.serialize = goog.abstractMethod;
goog.proto2.Serializer.prototype.getSerializedValue = function(a, b) {
return a.isCompositeType() ? this.serialize(b) : "number" !== typeof b || isFinite(b) ? b : b.toString();
};
goog.proto2.Serializer.prototype.deserialize = function(a, b) {
var c = a.createMessageInstance();
this.deserializeTo(c, b);
goog.asserts.assert(c instanceof goog.proto2.Message);
return c;
};
goog.proto2.Serializer.prototype.deserializeTo = goog.abstractMethod;
goog.proto2.Serializer.prototype.getDeserializedValue = function(a, b) {
if (a.isCompositeType()) {
return b instanceof goog.proto2.Message ? b : this.deserialize(a.getFieldMessageType(), b);
}
if (a.getFieldType() == goog.proto2.FieldDescriptor.FieldType.ENUM) {
if (goog.proto2.Serializer.DECODE_SYMBOLIC_ENUMS && "string" === typeof b) {
var c = a.getNativeType();
if (c.hasOwnProperty(b)) {
return c[b];
}
}
return "string" === typeof b && goog.proto2.Serializer.INTEGER_REGEX.test(b) && (c = Number(b), 0 < c) ? c : b;
}
if (!a.deserializationConversionPermitted()) {
return b;
}
c = a.getNativeType();
if (c === String) {
if ("number" === typeof b) {
return String(b);
}
} else {
if (c === Number && "string" === typeof b && ("Infinity" === b || "-Infinity" === b || "NaN" === b || goog.proto2.Serializer.INTEGER_REGEX.test(b))) {
return Number(b);
}
}
return b;
};
goog.proto2.Serializer.INTEGER_REGEX = /^-?[0-9]+$/;
goog.proto2.LazyDeserializer = function() {
};
goog.inherits(goog.proto2.LazyDeserializer, goog.proto2.Serializer);
goog.proto2.LazyDeserializer.prototype.deserialize = function(a, b) {
var c = a.createMessageInstance();
c.initializeForLazyDeserializer(this, b);
goog.asserts.assert(c instanceof goog.proto2.Message);
return c;
};
goog.proto2.LazyDeserializer.prototype.deserializeTo = function(a, b) {
throw Error("Unimplemented");
};
goog.proto2.LazyDeserializer.prototype.deserializeField = goog.abstractMethod;
goog.proto2.PbLiteSerializer = function() {
};
goog.inherits(goog.proto2.PbLiteSerializer, goog.proto2.LazyDeserializer);
goog.proto2.PbLiteSerializer.prototype.zeroIndexing_ = !1;
goog.proto2.PbLiteSerializer.prototype.setZeroIndexed = function(a) {
this.zeroIndexing_ = a;
};
goog.proto2.PbLiteSerializer.prototype.serialize = function(a) {
for (var b = a.getDescriptor().getFields(), c = [], d = this.zeroIndexing_, e = 0; e < b.length; e++) {
var f = b[e];
if (a.has(f)) {
var g = f.getTag();
g = d ? g - 1 : g;
if (f.isRepeated()) {
c[g] = [];
for (var h = 0; h < a.countOf(f); h++) {
c[g][h] = this.getSerializedValue(f, a.get(f, h));
}
} else {
c[g] = this.getSerializedValue(f, a.get(f));
}
}
}
a.forEachUnknown(function(a, b) {
c[d ? a - 1 : a] = b;
});
return c;
};
goog.proto2.PbLiteSerializer.prototype.deserializeField = function(a, b, c) {
if (null == c) {
return c;
}
if (b.isRepeated()) {
a = [];
goog.asserts.assert(goog.isArray(c), "Value must be array: %s", c);
for (var d = 0; d < c.length; d++) {
a[d] = this.getDeserializedValue(b, c[d]);
}
return a;
}
return this.getDeserializedValue(b, c);
};
goog.proto2.PbLiteSerializer.prototype.getSerializedValue = function(a, b) {
return a.getFieldType() == goog.proto2.FieldDescriptor.FieldType.BOOL ? b ? 1 : 0 : goog.proto2.Serializer.prototype.getSerializedValue.apply(this, arguments);
};
goog.proto2.PbLiteSerializer.prototype.getDeserializedValue = function(a, b) {
return a.getFieldType() == goog.proto2.FieldDescriptor.FieldType.BOOL ? (goog.asserts.assert("number" === typeof b || "boolean" === typeof b, "Value is expected to be a number or boolean"), !!b) : goog.proto2.Serializer.prototype.getDeserializedValue.apply(this, arguments);
};
goog.proto2.PbLiteSerializer.prototype.deserialize = function(a, b) {
var c = b;
if (this.zeroIndexing_) {
c = [];
for (var d in b) {
c[parseInt(d, 10) + 1] = b[d];
}
}
return goog.proto2.PbLiteSerializer.superClass_.deserialize.call(this, a, c);
};
goog.labs.userAgent.engine = {};
goog.labs.userAgent.engine.isPresto = function() {
return goog.labs.userAgent.util.matchUserAgent("Presto");
};
goog.labs.userAgent.engine.isTrident = function() {
return goog.labs.userAgent.util.matchUserAgent("Trident") || goog.labs.userAgent.util.matchUserAgent("MSIE");
};
goog.labs.userAgent.engine.isEdge = function() {
return goog.labs.userAgent.util.matchUserAgent("Edge");
};
goog.labs.userAgent.engine.isWebKit = function() {
return goog.labs.userAgent.util.matchUserAgentIgnoreCase("WebKit") && !goog.labs.userAgent.engine.isEdge();
};
goog.labs.userAgent.engine.isGecko = function() {
return goog.labs.userAgent.util.matchUserAgent("Gecko") && !goog.labs.userAgent.engine.isWebKit() && !goog.labs.userAgent.engine.isTrident() && !goog.labs.userAgent.engine.isEdge();
};
goog.labs.userAgent.engine.getVersion = function() {
var a = goog.labs.userAgent.util.getUserAgent();
if (a) {
a = goog.labs.userAgent.util.extractVersionTuples(a);
var b = goog.labs.userAgent.engine.getEngineTuple_(a);
if (b) {
return "Gecko" == b[0] ? goog.labs.userAgent.engine.getVersionForKey_(a, "Firefox") : b[1];
}
a = a[0];
var c;
if (a && (c = a[2]) && (c = /Trident\/([^\s;]+)/.exec(c))) {
return c[1];
}
}
return "";
};
goog.labs.userAgent.engine.getEngineTuple_ = function(a) {
if (!goog.labs.userAgent.engine.isEdge()) {
return a[1];
}
for (var b = 0; b < a.length; b++) {
var c = a[b];
if ("Edge" == c[0]) {
return c;
}
}
};
goog.labs.userAgent.engine.isVersionOrHigher = function(a) {
return 0 <= goog.string.compareVersions(goog.labs.userAgent.engine.getVersion(), a);
};
goog.labs.userAgent.engine.getVersionForKey_ = function(a, b) {
var c = goog.array.find(a, function(a) {
return b == a[0];
});
return c && c[1] || "";
};
goog.labs.userAgent.platform = {};
goog.labs.userAgent.platform.isAndroid = function() {
return goog.labs.userAgent.util.matchUserAgent("Android");
};
goog.labs.userAgent.platform.isIpod = function() {
return goog.labs.userAgent.util.matchUserAgent("iPod");
};
goog.labs.userAgent.platform.isIphone = function() {
return goog.labs.userAgent.util.matchUserAgent("iPhone") && !goog.labs.userAgent.util.matchUserAgent("iPod") && !goog.labs.userAgent.util.matchUserAgent("iPad");
};
goog.labs.userAgent.platform.isIpad = function() {
return goog.labs.userAgent.util.matchUserAgent("iPad");
};
goog.labs.userAgent.platform.isIos = function() {
return goog.labs.userAgent.platform.isIphone() || goog.labs.userAgent.platform.isIpad() || goog.labs.userAgent.platform.isIpod();
};
goog.labs.userAgent.platform.isMacintosh = function() {
return goog.labs.userAgent.util.matchUserAgent("Macintosh");
};
goog.labs.userAgent.platform.isLinux = function() {
return goog.labs.userAgent.util.matchUserAgent("Linux");
};
goog.labs.userAgent.platform.isWindows = function() {
return goog.labs.userAgent.util.matchUserAgent("Windows");
};
goog.labs.userAgent.platform.isChromeOS = function() {
return goog.labs.userAgent.util.matchUserAgent("CrOS");
};
goog.labs.userAgent.platform.isChromecast = function() {
return goog.labs.userAgent.util.matchUserAgent("CrKey");
};
goog.labs.userAgent.platform.isKaiOS = function() {
return goog.labs.userAgent.util.matchUserAgentIgnoreCase("KaiOS");
};
goog.labs.userAgent.platform.isGo2Phone = function() {
return goog.labs.userAgent.util.matchUserAgentIgnoreCase("GAFP");
};
goog.labs.userAgent.platform.getVersion = function() {
var a = goog.labs.userAgent.util.getUserAgent(), b = "";
goog.labs.userAgent.platform.isWindows() ? (b = /Windows (?:NT|Phone) ([0-9.]+)/, b = (a = b.exec(a)) ? a[1] : "0.0") : goog.labs.userAgent.platform.isIos() ? (b = /(?:iPhone|iPod|iPad|CPU)\s+OS\s+(\S+)/, b = (a = b.exec(a)) && a[1].replace(/_/g, ".")) : goog.labs.userAgent.platform.isMacintosh() ? (b = /Mac OS X ([0-9_.]+)/, b = (a = b.exec(a)) ? a[1].replace(/_/g, ".") : "10") : goog.labs.userAgent.platform.isKaiOS() ? (b = /(?:KaiOS)\/(\S+)/i, b = (a = b.exec(a)) && a[1]) : goog.labs.userAgent.platform.isAndroid() ?
(b = /Android\s+([^\);]+)(\)|;)/, b = (a = b.exec(a)) && a[1]) : goog.labs.userAgent.platform.isChromeOS() && (b = /(?:CrOS\s+(?:i686|x86_64)\s+([0-9.]+))/, b = (a = b.exec(a)) && a[1]);
return b || "";
};
goog.labs.userAgent.platform.isVersionOrHigher = function(a) {
return 0 <= goog.string.compareVersions(goog.labs.userAgent.platform.getVersion(), a);
};
goog.reflect = {};
goog.reflect.object = function(a, b) {
return b;
};
goog.reflect.objectProperty = function(a, b) {
return a;
};
goog.reflect.sinkValue = function(a) {
goog.reflect.sinkValue[" "](a);
return a;
};
goog.reflect.sinkValue[" "] = goog.nullFunction;
goog.reflect.canAccessProperty = function(a, b) {
try {
return goog.reflect.sinkValue(a[b]), !0;
} catch (c) {
}
return !1;
};
goog.reflect.cache = function(a, b, c, d) {
d = d ? d(b) : b;
return Object.prototype.hasOwnProperty.call(a, d) ? a[d] : a[d] = c(b);
};
goog.userAgent = {};
goog.userAgent.ASSUME_IE = !1;
goog.userAgent.ASSUME_EDGE = !1;
goog.userAgent.ASSUME_GECKO = !1;
goog.userAgent.ASSUME_WEBKIT = !1;
goog.userAgent.ASSUME_MOBILE_WEBKIT = !1;
goog.userAgent.ASSUME_OPERA = !1;
goog.userAgent.ASSUME_ANY_VERSION = !1;
goog.userAgent.BROWSER_KNOWN_ = goog.userAgent.ASSUME_IE || goog.userAgent.ASSUME_EDGE || goog.userAgent.ASSUME_GECKO || goog.userAgent.ASSUME_MOBILE_WEBKIT || goog.userAgent.ASSUME_WEBKIT || goog.userAgent.ASSUME_OPERA;
goog.userAgent.getUserAgentString = function() {
return goog.labs.userAgent.util.getUserAgent();
};
goog.userAgent.getNavigatorTyped = function() {
return goog.global.navigator || null;
};
goog.userAgent.getNavigator = function() {
return goog.userAgent.getNavigatorTyped();
};
goog.userAgent.OPERA = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_OPERA : goog.labs.userAgent.browser.isOpera();
goog.userAgent.IE = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_IE : goog.labs.userAgent.browser.isIE();
goog.userAgent.EDGE = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_EDGE : goog.labs.userAgent.engine.isEdge();
goog.userAgent.EDGE_OR_IE = goog.userAgent.EDGE || goog.userAgent.IE;
goog.userAgent.GECKO = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_GECKO : goog.labs.userAgent.engine.isGecko();
goog.userAgent.WEBKIT = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_WEBKIT || goog.userAgent.ASSUME_MOBILE_WEBKIT : goog.labs.userAgent.engine.isWebKit();
goog.userAgent.isMobile_ = function() {
return goog.userAgent.WEBKIT && goog.labs.userAgent.util.matchUserAgent("Mobile");
};
goog.userAgent.MOBILE = goog.userAgent.ASSUME_MOBILE_WEBKIT || goog.userAgent.isMobile_();
goog.userAgent.SAFARI = goog.userAgent.WEBKIT;
goog.userAgent.determinePlatform_ = function() {
var a = goog.userAgent.getNavigatorTyped();
return a && a.platform || "";
};
goog.userAgent.PLATFORM = goog.userAgent.determinePlatform_();
goog.userAgent.ASSUME_MAC = !1;
goog.userAgent.ASSUME_WINDOWS = !1;
goog.userAgent.ASSUME_LINUX = !1;
goog.userAgent.ASSUME_X11 = !1;
goog.userAgent.ASSUME_ANDROID = !1;
goog.userAgent.ASSUME_IPHONE = !1;
goog.userAgent.ASSUME_IPAD = !1;
goog.userAgent.ASSUME_IPOD = !1;
goog.userAgent.ASSUME_KAIOS = !1;
goog.userAgent.ASSUME_GO2PHONE = !1;
goog.userAgent.PLATFORM_KNOWN_ = goog.userAgent.ASSUME_MAC || goog.userAgent.ASSUME_WINDOWS || goog.userAgent.ASSUME_LINUX || goog.userAgent.ASSUME_X11 || goog.userAgent.ASSUME_ANDROID || goog.userAgent.ASSUME_IPHONE || goog.userAgent.ASSUME_IPAD || goog.userAgent.ASSUME_IPOD;
goog.userAgent.MAC = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_MAC : goog.labs.userAgent.platform.isMacintosh();
goog.userAgent.WINDOWS = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_WINDOWS : goog.labs.userAgent.platform.isWindows();
goog.userAgent.isLegacyLinux_ = function() {
return goog.labs.userAgent.platform.isLinux() || goog.labs.userAgent.platform.isChromeOS();
};
goog.userAgent.LINUX = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_LINUX : goog.userAgent.isLegacyLinux_();
goog.userAgent.isX11_ = function() {
var a = goog.userAgent.getNavigatorTyped();
return !!a && goog.string.contains(a.appVersion || "", "X11");
};
goog.userAgent.X11 = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_X11 : goog.userAgent.isX11_();
goog.userAgent.ANDROID = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_ANDROID : goog.labs.userAgent.platform.isAndroid();
goog.userAgent.IPHONE = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPHONE : goog.labs.userAgent.platform.isIphone();
goog.userAgent.IPAD = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPAD : goog.labs.userAgent.platform.isIpad();
goog.userAgent.IPOD = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPOD : goog.labs.userAgent.platform.isIpod();
goog.userAgent.IOS = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPHONE || goog.userAgent.ASSUME_IPAD || goog.userAgent.ASSUME_IPOD : goog.labs.userAgent.platform.isIos();
goog.userAgent.KAIOS = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_KAIOS : goog.labs.userAgent.platform.isKaiOS();
goog.userAgent.GO2PHONE = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_GO2PHONE : goog.labs.userAgent.platform.isGo2Phone();
goog.userAgent.determineVersion_ = function() {
var a = "", b = goog.userAgent.getVersionRegexResult_();
b && (a = b ? b[1] : "");
return goog.userAgent.IE && (b = goog.userAgent.getDocumentMode_(), null != b && b > parseFloat(a)) ? String(b) : a;
};
goog.userAgent.getVersionRegexResult_ = function() {
var a = goog.userAgent.getUserAgentString();
if (goog.userAgent.GECKO) {
return /rv:([^\);]+)(\)|;)/.exec(a);
}
if (goog.userAgent.EDGE) {
return /Edge\/([\d\.]+)/.exec(a);
}
if (goog.userAgent.IE) {
return /\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a);
}
if (goog.userAgent.WEBKIT) {
return /WebKit\/(\S+)/.exec(a);
}
if (goog.userAgent.OPERA) {
return /(?:Version)[ \/]?(\S+)/.exec(a);
}
};
goog.userAgent.getDocumentMode_ = function() {
var a = goog.global.document;
return a ? a.documentMode : void 0;
};
goog.userAgent.VERSION = goog.userAgent.determineVersion_();
goog.userAgent.compare = function(a, b) {
return goog.string.compareVersions(a, b);
};
goog.userAgent.isVersionOrHigherCache_ = {};
goog.userAgent.isVersionOrHigher = function(a) {
return goog.userAgent.ASSUME_ANY_VERSION || goog.reflect.cache(goog.userAgent.isVersionOrHigherCache_, a, function() {
return 0 <= goog.string.compareVersions(goog.userAgent.VERSION, a);
});
};
goog.userAgent.isVersion = goog.userAgent.isVersionOrHigher;
goog.userAgent.isDocumentModeOrHigher = function(a) {
return Number(goog.userAgent.DOCUMENT_MODE) >= a;
};
goog.userAgent.isDocumentMode = goog.userAgent.isDocumentModeOrHigher;
goog.userAgent.DOCUMENT_MODE = function() {
if (goog.global.document && goog.userAgent.IE) {
return goog.userAgent.getDocumentMode_();
}
}();
goog.dom.BrowserFeature = {};
goog.dom.BrowserFeature.ASSUME_NO_OFFSCREEN_CANVAS = !1;
goog.dom.BrowserFeature.ASSUME_OFFSCREEN_CANVAS = !1;
goog.dom.BrowserFeature.detectOffscreenCanvas_ = function(a) {
try {
return !!(new self.OffscreenCanvas(0, 0)).getContext(a);
} catch (b) {
}
return !1;
};
goog.dom.BrowserFeature.OFFSCREEN_CANVAS_2D = !goog.dom.BrowserFeature.ASSUME_NO_OFFSCREEN_CANVAS && (goog.dom.BrowserFeature.ASSUME_OFFSCREEN_CANVAS || goog.dom.BrowserFeature.detectOffscreenCanvas_("2d"));
goog.dom.BrowserFeature.CAN_ADD_NAME_OR_TYPE_ATTRIBUTES = !goog.userAgent.IE || goog.userAgent.isDocumentModeOrHigher(9);
goog.dom.BrowserFeature.CAN_USE_CHILDREN_ATTRIBUTE = !goog.userAgent.GECKO && !goog.userAgent.IE || goog.userAgent.IE && goog.userAgent.isDocumentModeOrHigher(9) || goog.userAgent.GECKO && goog.userAgent.isVersionOrHigher("1.9.1");
goog.dom.BrowserFeature.CAN_USE_INNER_TEXT = goog.userAgent.IE && !goog.userAgent.isVersionOrHigher("9");
goog.dom.BrowserFeature.CAN_USE_PARENT_ELEMENT_PROPERTY = goog.userAgent.IE || goog.userAgent.OPERA || goog.userAgent.WEBKIT;
goog.dom.BrowserFeature.INNER_HTML_NEEDS_SCOPED_ELEMENT = goog.userAgent.IE;
goog.dom.BrowserFeature.LEGACY_IE_RANGES = goog.userAgent.IE && !goog.userAgent.isDocumentModeOrHigher(9);
goog.math = {};
goog.math.randomInt = function(a) {
return Math.floor(Math.random() * a);
};
goog.math.uniformRandom = function(a, b) {
return a + Math.random() * (b - a);
};
goog.math.clamp = function(a, b, c) {
return Math.min(Math.max(a, b), c);
};
goog.math.modulo = function(a, b) {
var c = a % b;
return 0 > c * b ? c + b : c;
};
goog.math.lerp = function(a, b, c) {
return a + c * (b - a);
};
goog.math.nearlyEquals = function(a, b, c) {
return Math.abs(a - b) <= (c || 0.000001);
};
goog.math.standardAngle = function(a) {
return goog.math.modulo(a, 360);
};
goog.math.standardAngleInRadians = function(a) {
return goog.math.modulo(a, 2 * Math.PI);
};
goog.math.toRadians = function(a) {
return a * Math.PI / 180;
};
goog.math.toDegrees = function(a) {
return 180 * a / Math.PI;
};
goog.math.angleDx = function(a, b) {
return b * Math.cos(goog.math.toRadians(a));
};
goog.math.angleDy = function(a, b) {
return b * Math.sin(goog.math.toRadians(a));
};
goog.math.angle = function(a, b, c, d) {
return goog.math.standardAngle(goog.math.toDegrees(Math.atan2(d - b, c - a)));
};
goog.math.angleDifference = function(a, b) {
var c = goog.math.standardAngle(b) - goog.math.standardAngle(a);
180 < c ? c -= 360 : -180 >= c && (c = 360 + c);
return c;
};
goog.math.sign = function(a) {
return 0 < a ? 1 : 0 > a ? -1 : a;
};
goog.math.longestCommonSubsequence = function(a, b, c, d) {
c = c || function(a, b) {
return a == b;
};
d = d || function(b, c) {
return a[b];
};
for (var e = a.length, f = b.length, g = [], h = 0; h < e + 1; h++) {
g[h] = [], g[h][0] = 0;
}
for (var k = 0; k < f + 1; k++) {
g[0][k] = 0;
}
for (h = 1; h <= e; h++) {
for (k = 1; k <= f; k++) {
c(a[h - 1], b[k - 1]) ? g[h][k] = g[h - 1][k - 1] + 1 : g[h][k] = Math.max(g[h - 1][k], g[h][k - 1]);
}
}
var l = [];
h = e;
for (k = f; 0 < h && 0 < k;) {
c(a[h - 1], b[k - 1]) ? (l.unshift(d(h - 1,
gitextract_xjtp52z4/
├── .gitignore
├── Gruntfile.js
├── LICENSE
├── README.md
├── bower.json
├── closure.txt
├── dist/
│ ├── phone-format-amd.js
│ ├── phone-format-exports.js
│ ├── phone-format-global.js
│ └── phone-format.js
├── lib/
│ ├── global-wrap-end.js
│ ├── global-wrap-start.js
│ ├── google-libraries.js
│ └── phone-format-interface.js
├── package.json
└── tests/
├── index.html
├── jquery.js
├── phone-format-amd.js
├── qunit.js
├── require.js
├── test-runner.js
└── unit/
└── phone-test.js
SYMBOL INDEX (227 symbols across 10 files)
FILE: dist/phone-format-amd.js
function c (line 515) | function c() {
function a (line 637) | function a(a, b) {
function b (line 640) | function b(a) {
function c (line 698) | function c() {
function b (line 928) | function b(a, b) {
function c (line 932) | function c(a, b) {
function b (line 980) | function b() {
function c (line 984) | function c() {
function d (line 1004) | function d() {
function a (line 3111) | function a(a) {
function e (line 5031) | function e(c) {
function countryForE164Number (line 8624) | function countryForE164Number(phone) {
function formatNumberForMobileDialing (line 8645) | function formatNumberForMobileDialing(country, phone) {
function isValidNumber (line 8668) | function isValidNumber(phone, country, type) {
function formatE164 (line 8700) | function formatE164(country, phone) {
function formatInternational (line 8725) | function formatInternational(country, phone) {
function formatLocal (line 8750) | function formatLocal(country, phone) {
function exampleLandlineNumber (line 8778) | function exampleLandlineNumber(country) {
function exampleMobileNumber (line 8797) | function exampleMobileNumber(country) {
function cleanPhone (line 8816) | function cleanPhone(phone) {
function countryCodeToName (line 8835) | function countryCodeToName(countryCode) {
FILE: dist/phone-format-exports.js
function c (line 515) | function c() {
function a (line 637) | function a(a, b) {
function b (line 640) | function b(a) {
function c (line 698) | function c() {
function b (line 928) | function b(a, b) {
function c (line 932) | function c(a, b) {
function b (line 980) | function b() {
function c (line 984) | function c() {
function d (line 1004) | function d() {
function a (line 3111) | function a(a) {
function e (line 5031) | function e(c) {
function countryForE164Number (line 8624) | function countryForE164Number(phone) {
function formatNumberForMobileDialing (line 8645) | function formatNumberForMobileDialing(country, phone) {
function isValidNumber (line 8668) | function isValidNumber(phone, country, type) {
function formatE164 (line 8700) | function formatE164(country, phone) {
function formatInternational (line 8725) | function formatInternational(country, phone) {
function formatLocal (line 8750) | function formatLocal(country, phone) {
function exampleLandlineNumber (line 8778) | function exampleLandlineNumber(country) {
function exampleMobileNumber (line 8797) | function exampleMobileNumber(country) {
function cleanPhone (line 8816) | function cleanPhone(phone) {
function countryCodeToName (line 8835) | function countryCodeToName(countryCode) {
FILE: dist/phone-format-global.js
function c (line 516) | function c() {
function a (line 638) | function a(a, b) {
function b (line 641) | function b(a) {
function c (line 699) | function c() {
function b (line 929) | function b(a, b) {
function c (line 933) | function c(a, b) {
function b (line 981) | function b() {
function c (line 985) | function c() {
function d (line 1005) | function d() {
function a (line 3112) | function a(a) {
function e (line 5032) | function e(c) {
function countryForE164Number (line 8625) | function countryForE164Number(phone) {
function formatNumberForMobileDialing (line 8646) | function formatNumberForMobileDialing(country, phone) {
function isValidNumber (line 8669) | function isValidNumber(phone, country, type) {
function formatE164 (line 8701) | function formatE164(country, phone) {
function formatInternational (line 8726) | function formatInternational(country, phone) {
function formatLocal (line 8751) | function formatLocal(country, phone) {
function exampleLandlineNumber (line 8779) | function exampleLandlineNumber(country) {
function exampleMobileNumber (line 8798) | function exampleMobileNumber(country) {
function cleanPhone (line 8817) | function cleanPhone(phone) {
function countryCodeToName (line 8836) | function countryCodeToName(countryCode) {
FILE: dist/phone-format.js
function c (line 514) | function c() {
function a (line 636) | function a(a, b) {
function b (line 639) | function b(a) {
function c (line 697) | function c() {
function b (line 927) | function b(a, b) {
function c (line 931) | function c(a, b) {
function b (line 979) | function b() {
function c (line 983) | function c() {
function d (line 1003) | function d() {
function a (line 3110) | function a(a) {
function e (line 5030) | function e(c) {
function countryForE164Number (line 8623) | function countryForE164Number(phone) {
function formatNumberForMobileDialing (line 8644) | function formatNumberForMobileDialing(country, phone) {
function isValidNumber (line 8667) | function isValidNumber(phone, country, type) {
function formatE164 (line 8699) | function formatE164(country, phone) {
function formatInternational (line 8724) | function formatInternational(country, phone) {
function formatLocal (line 8749) | function formatLocal(country, phone) {
function exampleLandlineNumber (line 8777) | function exampleLandlineNumber(country) {
function exampleMobileNumber (line 8796) | function exampleMobileNumber(country) {
function cleanPhone (line 8815) | function cleanPhone(phone) {
function countryCodeToName (line 8834) | function countryCodeToName(countryCode) {
FILE: lib/google-libraries.js
function c (line 514) | function c() {
function a (line 636) | function a(a, b) {
function b (line 639) | function b(a) {
function c (line 697) | function c() {
function b (line 927) | function b(a, b) {
function c (line 931) | function c(a, b) {
function b (line 979) | function b() {
function c (line 983) | function c() {
function d (line 1003) | function d() {
function a (line 3110) | function a(a) {
function e (line 5030) | function e(c) {
FILE: lib/phone-format-interface.js
function countryForE164Number (line 62) | function countryForE164Number(phone) {
function formatNumberForMobileDialing (line 83) | function formatNumberForMobileDialing(country, phone) {
function isValidNumber (line 106) | function isValidNumber(phone, country, type) {
function formatE164 (line 138) | function formatE164(country, phone) {
function formatInternational (line 163) | function formatInternational(country, phone) {
function formatLocal (line 188) | function formatLocal(country, phone) {
function exampleLandlineNumber (line 216) | function exampleLandlineNumber(country) {
function exampleMobileNumber (line 235) | function exampleMobileNumber(country) {
function cleanPhone (line 254) | function cleanPhone(phone) {
function countryCodeToName (line 273) | function countryCodeToName(countryCode) {
FILE: tests/jquery.js
function isArraylike (line 533) | function isArraylike( obj ) {
function Sizzle (line 745) | function Sizzle( selector, context, results, seed ) {
function createCache (line 859) | function createCache() {
function markFunction (line 877) | function markFunction( fn ) {
function assert (line 886) | function assert( fn ) {
function addHandle (line 908) | function addHandle( attrs, handler ) {
function siblingCheck (line 923) | function siblingCheck( a, b ) {
function createInputPseudo (line 950) | function createInputPseudo( type ) {
function createButtonPseudo (line 961) | function createButtonPseudo( type ) {
function createPositionalPseudo (line 972) | function createPositionalPseudo( fn ) {
function testContext (line 995) | function testContext( context ) {
function setFilters (line 2004) | function setFilters() {}
function toSelector (line 2075) | function toSelector( tokens ) {
function addCombinator (line 2085) | function addCombinator( matcher, combinator, base ) {
function elementMatcher (line 2138) | function elementMatcher( matchers ) {
function multipleContexts (line 2152) | function multipleContexts( selector, contexts, results ) {
function condense (line 2161) | function condense( unmatched, map, filter, context, xml ) {
function setMatcher (line 2182) | function setMatcher( preFilter, selector, matcher, postFilter, postFinde...
function matcherFromTokens (line 2275) | function matcherFromTokens( tokens ) {
function matcherFromGroupMatchers (line 2333) | function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
function winnow (line 2629) | function winnow( elements, qualifier, not ) {
function sibling (line 2953) | function sibling( cur, dir ) {
function createOptions (line 3031) | function createOptions( options ) {
function completed (line 3425) | function completed() {
function Data (line 3530) | function Data() {
function dataAttr (line 3721) | function dataAttr( elem, key, data ) {
function returnTrue (line 4061) | function returnTrue() {
function returnFalse (line 4065) | function returnFalse() {
function safeActiveElement (line 4069) | function safeActiveElement() {
function manipulationTarget (line 4941) | function manipulationTarget( elem, content ) {
function disableScript (line 4951) | function disableScript( elem ) {
function restoreScript (line 4955) | function restoreScript( elem ) {
function setGlobalEval (line 4968) | function setGlobalEval( elems, refElements ) {
function cloneCopyEvent (line 4979) | function cloneCopyEvent( src, dest ) {
function getAll (line 5013) | function getAll( context, tag ) {
function fixInput (line 5024) | function fixInput( src, dest ) {
function actualDisplay (line 5479) | function actualDisplay( name, doc ) {
function defaultDisplay (line 5501) | function defaultDisplay( nodeName ) {
function curCSS (line 5548) | function curCSS( elem, name, computed ) {
function addGetHookIf (line 5596) | function addGetHookIf( conditionFn, hookFn ) {
function computePixelPositionAndBoxSizingReliable (line 5636) | function computePixelPositionAndBoxSizingReliable() {
function vendorPropName (line 5741) | function vendorPropName( style, name ) {
function setPositiveNumber (line 5763) | function setPositiveNumber( elem, value, subtract ) {
function augmentWidthOrHeight (line 5771) | function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
function getWidthOrHeight (line 5810) | function getWidthOrHeight( elem, name, extra ) {
function showHide (line 5854) | function showHide( elements, show ) {
function Tween (line 6152) | function Tween( elem, options, prop, end, easing ) {
function createFxNow (line 6321) | function createFxNow() {
function genFx (line 6329) | function genFx( type, includeWidth ) {
function createTween (line 6349) | function createTween( value, prop, animation ) {
function defaultPrefilter (line 6363) | function defaultPrefilter( elem, props, opts ) {
function propFilter (line 6496) | function propFilter( props, specialEasing ) {
function Animation (line 6533) | function Animation( elem, properties, options ) {
function addToPrefiltersOrTransports (line 7581) | function addToPrefiltersOrTransports( structure ) {
function inspectPrefiltersOrTransports (line 7613) | function inspectPrefiltersOrTransports( structure, options, originalOpti...
function ajaxExtend (line 7640) | function ajaxExtend( target, src ) {
function ajaxHandleResponses (line 7660) | function ajaxHandleResponses( s, jqXHR, responses ) {
function ajaxConvert (line 7716) | function ajaxConvert( s, response, jqXHR, isSuccess ) {
function done (line 8174) | function done( status, nativeStatusText, responses, headers ) {
function buildParams (line 8418) | function buildParams( prefix, obj, traditional, add ) {
function getWindow (line 8912) | function getWindow( elem ) {
FILE: tests/phone-format-amd.js
function c (line 515) | function c() {
function a (line 637) | function a(a, b) {
function b (line 640) | function b(a) {
function c (line 698) | function c() {
function b (line 928) | function b(a, b) {
function c (line 932) | function c(a, b) {
function b (line 980) | function b() {
function c (line 984) | function c() {
function d (line 1004) | function d() {
function a (line 3111) | function a(a) {
function e (line 5031) | function e(c) {
function countryForE164Number (line 8624) | function countryForE164Number(phone) {
function formatNumberForMobileDialing (line 8645) | function formatNumberForMobileDialing(country, phone) {
function isValidNumber (line 8668) | function isValidNumber(phone, country, type) {
function formatE164 (line 8700) | function formatE164(country, phone) {
function formatInternational (line 8725) | function formatInternational(country, phone) {
function formatLocal (line 8750) | function formatLocal(country, phone) {
function exampleLandlineNumber (line 8778) | function exampleLandlineNumber(country) {
function exampleMobileNumber (line 8797) | function exampleMobileNumber(country) {
function cleanPhone (line 8816) | function cleanPhone(phone) {
function countryCodeToName (line 8835) | function countryCodeToName(countryCode) {
FILE: tests/qunit.js
function Test (line 36) | function Test( settings ) {
function run (line 273) | function run() {
function F (line 564) | function F() {}
function done (line 1085) | function done() {
function validTest (line 1158) | function validTest( test ) {
function extractStacktrace (line 1199) | function extractStacktrace( e, offset ) {
function sourceFromStacktrace (line 1237) | function sourceFromStacktrace( offset ) {
function escapeInnerText (line 1245) | function escapeInnerText( s ) {
function synchronize (line 1260) | function synchronize( callback, last ) {
function process (line 1268) | function process( last ) {
function saveGlobal (line 1289) | function saveGlobal() {
function checkPollution (line 1303) | function checkPollution( name ) {
function diff (line 1322) | function diff( a, b ) {
function extend (line 1338) | function extend( a, b ) {
function addEvent (line 1352) | function addEvent( elem, type, fn ) {
function id (line 1362) | function id( name ) {
function registerLoggingCallback (line 1367) | function registerLoggingCallback( key ) {
function runLoggingCallbacks (line 1374) | function runLoggingCallbacks( key, scope, args ) {
function bindCallbacks (line 1392) | function bindCallbacks( o, callbacks, args ) {
function useStrictEquality (line 1416) | function useStrictEquality( b, a ) {
function quote (line 1583) | function quote( str ) {
function literal (line 1586) | function literal( o ) {
function join (line 1589) | function join( pre, arr, post ) {
function array (line 1601) | function array( arr, stack ) {
function getText (line 1788) | function getText( elems ) {
function inArray (line 1809) | function inArray( elem, array ) {
function diff (line 1838) | function diff( o, n ) {
FILE: tests/require.js
function G (line 7) | function G(b){return"[object Function]"===K.call(b)}
function H (line 7) | function H(b){return"[object Array]"===K.call(b)}
function v (line 7) | function v(b,c){if(b){var d;for(d=0;d<b.length&&(!b[d]||!c(b[d],d,b));d+...
function T (line 7) | function T(b,c){if(b){var d;for(d=b.length-1;-1<d&&(!b[d]||!c(b[d],d,b))...
function t (line 7) | function t(b,c){return fa.call(b,c)}
function m (line 7) | function m(b,c){return t(b,c)&&b[c]}
function B (line 7) | function B(b,c){for(var d in b)if(t(b,d)&&c(b[d],d))break}
function U (line 7) | function U(b,c,d,e){c&&B(c,function(c,g){if(d||!t(b,g))e&&"object"===typ...
function u (line 8) | function u(b,c){return function(){return c.apply(b,arguments)}}
function ca (line 8) | function ca(b){throw b;}
function da (line 8) | function da(b){if(!b)return b;var c=ba;v(b.split("."),function(b){c=c[b]...
function C (line 8) | function C(b,c,d,e){c=Error(c+"\nhttp://requirejs.org/docs/errors.html#"...
function ga (line 8) | function ga(b){function c(a,k,b){var f,l,c,d,e,g,i,p,k=k&&k.split("/"),h...
Condensed preview — 22 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (4,327K chars).
[
{
"path": ".gitignore",
"chars": 31,
"preview": "*.DS_Store\n*.pyc\n\nnode_modules\n"
},
{
"path": "Gruntfile.js",
"chars": 3013,
"preview": " module.exports = function(grunt) {\n\n grunt.initConfig({\n\n // AMD definitions\n autowrap: {\n amd: {\n "
},
{
"path": "LICENSE",
"chars": 1083,
"preview": "The MIT License (MIT)\n\nCopyright (c) 2017 Matti Salokangas\n\nPermission is hereby granted, free of charge, to any person "
},
{
"path": "README.md",
"chars": 3978,
"preview": "# PhoneFormat.js\n\n#### A javascript phone formatter\n\n## Install\n\n### via Bower\n`bower install phoneformat.js`\n\n### via N"
},
{
"path": "bower.json",
"chars": 558,
"preview": "{\n \"name\": \"phoneformat\",\n \"main\": \"./dist/phone-format.js\",\n \"version\": \"1.0.9\",\n \"homepage\": \"https://github.com/a"
},
{
"path": "closure.txt",
"chars": 1371,
"preview": "// ==ClosureCompiler==\n// @compilation_level SIMPLE_OPTIMIZATIONS\n// @output_file_name phoneformat.js\n// @use_closure_li"
},
{
"path": "dist/phone-format-amd.js",
"chars": 620975,
"preview": "define(function(require, exports, module){\nvar COMPILED = !0, goog = goog || {};\ngoog.global = this || self;\ngoog.isDef "
},
{
"path": "dist/phone-format-exports.js",
"chars": 620961,
"preview": "(function(exports){\nvar COMPILED = !0, goog = goog || {};\ngoog.global = this || self;\ngoog.isDef = function(a) {\n retur"
},
{
"path": "dist/phone-format-global.js",
"chars": 620876,
"preview": ";(function(window) {\n\nvar COMPILED = !0, goog = goog || {};\ngoog.global = this || self;\ngoog.isDef = function(a) {\n ret"
},
{
"path": "dist/phone-format.js",
"chars": 620418,
"preview": "var COMPILED = !0, goog = goog || {};\ngoog.global = this || self;\ngoog.isDef = function(a) {\n return void 0 !== a;\n};\ng"
},
{
"path": "lib/global-wrap-end.js",
"chars": 435,
"preview": "\nwindow.PhoneFormat = {\n countryForE164Number: countryForE164Number,\n formatNumberForMobileDialing: formatNumberForMob"
},
{
"path": "lib/global-wrap-start.js",
"chars": 21,
"preview": ";(function(window) {\n"
},
{
"path": "lib/google-libraries.js",
"chars": 602881,
"preview": "var COMPILED = !0, goog = goog || {};\ngoog.global = this || self;\ngoog.isDef = function(a) {\n return void 0 !== a;\n};\ng"
},
{
"path": "lib/phone-format-interface.js",
"chars": 17536,
"preview": "/*\n\nCompiled Wednesday July 30, 2014 at 2:15pm America/New_York\n\nVersion: libphonenumber r680\n\n-------------------------"
},
{
"path": "package.json",
"chars": 479,
"preview": "{\n \"name\": \"phoneformat.js\",\n \"version\": \"1.0.9\",\n \"main\": \"dist/phone-format-exports.js\",\n \"devDependencies\": {\n "
},
{
"path": "tests/index.html",
"chars": 384,
"preview": "<!DOCTYPE html>\n<html>\n<head>\n <meta charset=\"utf-8\">\n <title>Phone Formatter Tests</title>\n <link rel=\"stylesheet\" h"
},
{
"path": "tests/jquery.js",
"chars": 247387,
"preview": "/*!\n * jQuery JavaScript Library v2.1.3\n * http://jquery.com/\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n *\n * Cop"
},
{
"path": "tests/phone-format-amd.js",
"chars": 620975,
"preview": "define(function(require, exports, module){\nvar COMPILED = !0, goog = goog || {};\ngoog.global = this || self;\ngoog.isDef "
},
{
"path": "tests/qunit.js",
"chars": 51704,
"preview": "/**\n * QUnit v1.10.0 - A JavaScript Unit Testing Framework\n *\n * http://qunitjs.com\n *\n * Copyright 2012 jQuery Foundati"
},
{
"path": "tests/require.js",
"chars": 15292,
"preview": "/*\n RequireJS 2.1.16 Copyright (c) 2010-2015, The Dojo Foundation All Rights Reserved.\n Available via the MIT or new BSD"
},
{
"path": "tests/test-runner.js",
"chars": 511,
"preview": "\"use strict\";\n\nrequire.config({\n paths: {\n 'QUnit': 'qunit'\n },\n shim: {\n 'QUnit': {\n exports: 'QUnit',\n "
},
{
"path": "tests/unit/phone-test.js",
"chars": 2123,
"preview": "'use strict';\ndefine(\n function() {\n return function(args) {\n var phoneFormat = args.phoneFormat;\n var cou"
}
]
About this extraction
This page contains the full source code of the albeebe/phoneformat.js GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 22 files (3.9 MB), approximately 1.0M tokens, and a symbol index with 227 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.